package hu.sztaki.ilab.longneck.process.block; import hu.sztaki.ilab.longneck.Record; import hu.sztaki.ilab.longneck.process.SourceInfo; import hu.sztaki.ilab.longneck.process.VariableSpace; import hu.sztaki.ilab.longneck.bootstrap.RepositoryItem; /** * Generic transformation block. * * Transformation block with custom transformation steps, that has an id and version, and * can be retrieved from repository. * * @author Molnar Peter <molnarp@sztaki.mta.hu> */ public class GenericBlock extends Sequence implements RepositoryItem { /** The id of this block in the repository. */ private String id; /** The block version. */ private String version; /** Allow error propagation. */ private boolean propagateFailure = false; /** The input constraints. */ private Check inputConstraints; /** The output constraints. */ private Check outputConstraints; @Override public void apply(Record record, VariableSpace parentScope) { // do nothing } public Check getInputConstraints() { return inputConstraints; } public void setInputConstraints(Check inputConstraints) { this.inputConstraints = inputConstraints; } public Check getOutputConstraints() { return outputConstraints; } public void setOutputConstraints(Check outputConstraints) { this.outputConstraints = outputConstraints; } @Override public String getId() { return id; } @Override public void setId(String id) { this.id = id; } @Override public String getVersion() { return version; } @Override public void setVersion(String version) { this.version = version; } public String getKey() { return String.format("%1$s:%2$s", id, version); } @Override public GenericBlock clone() { GenericBlock copy = (GenericBlock) super.clone(); // Version and Id are immutable strings // Copy input and output constraints if (inputConstraints != null) { copy.inputConstraints = inputConstraints.clone(); } if (outputConstraints != null) { copy.outputConstraints = outputConstraints.clone(); } return copy; } @Override public SourceInfo getSourceInfo() { return sourceInfo; } public boolean isPropagateFailure() { return propagateFailure; } public void setPropagateFailure(boolean propagateFailure) { this.propagateFailure = propagateFailure; } }