1 /* 2 * RawCoder 3 * 4 * Author: Lasse Collin <lasse.collin (at) tukaani.org> 5 * 6 * This file has been put into the public domain. 7 * You can do whatever you want with this file. 8 */ 9 10 package org.tukaani.xz; 11 12 class RawCoder { 13 static void validate(FilterCoder[] filters) 14 throws UnsupportedOptionsException { 15 for (int i = 0; i < filters.length - 1; ++i) 16 if (!filters[i].nonLastOK()) 17 throw new UnsupportedOptionsException( 18 "Unsupported XZ filter chain"); 19 20 if (!filters[filters.length - 1].lastOK()) 21 throw new UnsupportedOptionsException( 22 "Unsupported XZ filter chain"); 23 24 int changesSizeCount = 0; 25 for (int i = 0; i < filters.length; ++i) 26 if (filters[i].changesSize()) 27 ++changesSizeCount; 28 29 if (changesSizeCount > 3) 30 throw new UnsupportedOptionsException( 31 "Unsupported XZ filter chain"); 32 } 33 } 34