1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.pdfbox.filter; 18 19 import java.io.IOException; 20 import java.io.InputStream; 21 import java.io.OutputStream; 22 23 import org.apache.pdfbox.cos.COSDictionary; 24 25 /** 26 * This is the interface that will be used to apply filters to a byte stream. 27 * 28 * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a> 29 * @version $Revision: 1.7 $ 30 */ 31 public interface Filter 32 { 33 /** 34 * This will decode some compressed data. 35 * 36 * @param compressedData The compressed byte stream. 37 * @param result The place to write the uncompressed byte stream. 38 * @param options The options to use to encode the data. 39 * @param filterIndex The index to the filter being decoded. 40 * 41 * @throws IOException If there is an error decompressing the stream. 42 */ 43 public void decode( InputStream compressedData, OutputStream result, COSDictionary options, int filterIndex ) 44 throws IOException; 45 46 /** 47 * This will encode some data. 48 * 49 * @param rawData The raw data to encode. 50 * @param result The place to write to encoded results to. 51 * @param options The options to use to encode the data. 52 * @param filterIndex The index to the filter being encoded. 53 * 54 * @throws IOException If there is an error compressing the stream. 55 */ 56 public void encode( InputStream rawData, OutputStream result, COSDictionary options, int filterIndex ) 57 throws IOException; 58 }