1 26 27 package it.stefanochizzolini.clown.bytes.filters; 28 29 import it.stefanochizzolini.clown.objects.PdfName; 30 import it.stefanochizzolini.clown.util.NotImplementedException; 31 32 39 public abstract class Filter 40 { 41 private static final Filter FlateDecode = new FlateFilter(); 45 47 54 public static Filter get( 55 PdfName name 56 ) 57 { 58 61 if(name == null) 62 return null; 63 64 if(name.equals(PdfName.FlateDecode) 65 || name.equals(PdfName.Fl)) 66 return FlateDecode; 67 else if(name.equals(PdfName.LZWDecode) 68 || name.equals(PdfName.LZW)) 69 throw new NotImplementedException("LZWDecode"); 70 else if(name.equals(PdfName.ASCIIHexDecode) 71 || name.equals(PdfName.AHx)) 72 throw new NotImplementedException("ASCIIHexDecode"); 73 else if(name.equals(PdfName.ASCII85Decode) 74 || name.equals(PdfName.A85)) 75 throw new NotImplementedException("ASCII85Decode"); 76 else if(name.equals(PdfName.RunLengthDecode) 77 || name.equals(PdfName.RL)) 78 throw new NotImplementedException("RunLengthDecode"); 79 else if(name.equals(PdfName.CCITTFaxDecode) 80 || name.equals(PdfName.CCF)) 81 throw new NotImplementedException("CCITTFaxDecode"); 82 else if(name.equals(PdfName.JBIG2Decode)) 83 throw new NotImplementedException("JBIG2Decode"); 84 else if(name.equals(PdfName.DCTDecode) 85 || name.equals(PdfName.DCT)) 86 throw new NotImplementedException("DCTDecode"); 87 else if(name.equals(PdfName.JPXDecode)) 88 throw new NotImplementedException("JPXDecode"); 89 else if(name.equals(PdfName.Crypt)) 90 throw new NotImplementedException("Crypt"); 91 92 return null; 93 } 94 98 protected Filter( 101 ) 102 {} 103 105 public abstract byte[] decode( 108 byte[] data, 109 int offset, 110 int length 111 ); 112 113 public abstract byte[] encode( 114 byte[] data, 115 int offset, 116 int length 117 ); 118 } | Popular Tags |