1 23 24 package org.continuent.sequoia.common.sql.filters; 25 26 import org.continuent.sequoia.common.xml.DatabasesXmlTags; 27 28 38 public abstract class AbstractBlobFilter 39 { 40 private static final Base64Filter BASE64FILTER = new Base64Filter(); 41 private static final Base64ZipFilter BASE64_ZIP_FILTER = new Base64ZipFilter(); 42 private static final HexaBlobFilter HEXA_BLOB_FILTER = new HexaBlobFilter(); 43 44 57 public static AbstractBlobFilter getBlobFilterInstance( 58 String blobEncodingMethod) 59 { 60 if (blobEncodingMethod.equals(DatabasesXmlTags.VAL_base64)) 61 return BASE64FILTER; 62 if (blobEncodingMethod.equals(DatabasesXmlTags.VAL_base64zip)) 63 return BASE64_ZIP_FILTER; 64 else if (blobEncodingMethod.equals(DatabasesXmlTags.VAL_hexa)) 65 return HEXA_BLOB_FILTER; 66 else 67 throw new RuntimeException ("Unknown Blob encoder " + blobEncodingMethod); 68 } 69 70 76 public static AbstractBlobFilter getDefaultBlobFilter() 77 { 78 return BASE64FILTER; 79 } 80 81 88 public abstract String encode(byte[] data); 89 90 97 public abstract byte[] decode(String data); 98 99 104 public abstract String getXml(); 105 } | Popular Tags |