package hu.sztaki.ilab.longneck.process.block;
import hu.sztaki.ilab.longneck.Field;
import hu.sztaki.ilab.longneck.Record;
import hu.sztaki.ilab.longneck.process.VariableSpace;
/**
* Sets the a field to null.
*
* @author Péter Molnár <molnarp@sztaki.mta.hu>
*/
public class SetNull extends AbstractAtomicBlock {
@Override
public void apply(Record record, VariableSpace parentScope) {
for (String fname : applyTo) {
try {
BlockUtils.setValue(fname, null, record, parentScope);
} catch (NullPointerException ex) {
record.add(new Field(fname));
record.get(fname).setValue(null);
}
}
}
@Override
public SetNull clone() {
return (SetNull) super.clone();
}
}