package hu.sztaki.ilab.longneck.process.block; import hu.sztaki.ilab.longneck.Record; import hu.sztaki.ilab.longneck.process.VariableSpace; import hu.sztaki.ilab.longneck.process.constraint.CharacterCase; import hu.sztaki.ilab.longneck.process.constraint.CharacterTarget; /** * * @author Molnár Péter <molnarp@sztaki.mta.hu> */ public class SetCharacterCase extends AbstractAtomicBlock { /** The character case to apply. */ private CharacterCase characterCase; /** The characters to change. */ private CharacterTarget characters; @Override public void apply(Record record, VariableSpace parentScope) { for (String fieldName : applyTo) { String value = BlockUtils.getValue(fieldName, record, parentScope); // Skip null or empty fields if (value == null || "".equals(value)) { continue; } BlockUtils.setValue(fieldName, characters.apply(value, characterCase), record, parentScope); } } public CharacterCase getCase() { return characterCase; } public void setCase(CharacterCase characterCase) { this.characterCase = characterCase; } public CharacterTarget getCharacters() { return characters; } public void setCharacters(CharacterTarget characters) { this.characters = characters; } @Override public SetCharacterCase clone() { return (SetCharacterCase) super.clone(); } }