1 9 package org.mmbase.datatypes.processors; 10 11 import org.mmbase.bridge.*; 12 import org.mmbase.util.transformers.*; 13 import org.mmbase.util.functions.*; 14 import java.io.StringWriter ; 15 16 25 26 public class ChecksumProcessorFactory implements ParameterizedCommitProcessorFactory, java.io.Serializable { 27 28 private static final long serialVersionUID = 1L; 29 30 protected static final Parameter[] PARAMS = new Parameter[] { 31 new Parameter.Wrapper(ChecksumFactory.PARAMS), 32 new Parameter("field", String .class, true) 33 }; 34 35 private static final ParameterizedTransformerFactory factory = new ChecksumFactory(); 36 37 40 public CommitProcessor createProcessor(Parameters parameters) { 41 final ByteToCharTransformer transformer = (ByteToCharTransformer) factory.createTransformer(parameters); 42 final String sourceField = (String ) parameters.get("field"); 43 return new CommitProcessor() { 44 private static final long serialVersionUID = 1L; 45 46 public void commit(Node node, Field field) { 47 if (node.isNull(sourceField)) { 48 node.setValue(field.getName(), null); 50 return; 51 } 52 StringWriter writer = new StringWriter (); 53 transformer.transform(node.getInputStreamValue(sourceField), writer); 54 node.setStringValue(field.getName(), writer.toString()); 55 } 56 public String toString() { 57 return transformer.toString() + " on " + sourceField; 58 } 59 }; 60 } 61 62 65 public Parameters createParameters() { 66 return new Parameters(PARAMS); 67 } 68 69 } 70 | Popular Tags |