package hu.sztaki.ilab.longneck.process.block; import hu.sztaki.ilab.longneck.Record; import hu.sztaki.ilab.longneck.process.VariableSpace; import java.text.Normalizer; import java.text.Normalizer.Form; /** * * @author Molnár Péter <molnarp@sztaki.mta.hu> */ public class UnicodeNormalize extends AbstractAtomicBlock { /** The form of normalization, see http://unicode.org/reports/tr15/#Norm_Forms */ private Normalizer.Form form; @Override public void apply(Record record, VariableSpace parentScope) { for (String fieldName : applyTo) { String value = BlockUtils.getValue(fieldName, record, parentScope); if (value == null || "".equals(value)) { continue; } value = Normalizer.normalize(value, form); BlockUtils.setValue(fieldName, value, record, parentScope); } } public Form getForm() { return form; } public void setForm(Form form) { this.form = form; } public void setForm(String form) { this.form = Normalizer.Form.valueOf(form); } @Override public UnicodeNormalize clone() { return (UnicodeNormalize) super.clone(); } }