package hu.sztaki.ilab.longneck.process.constraint;
import hu.sztaki.ilab.longneck.Record;
import hu.sztaki.ilab.longneck.process.AbstractReference;
import hu.sztaki.ilab.longneck.process.VariableSpace;
import hu.sztaki.ilab.longneck.process.mapping.MappedRecord;
/**
*
* @author Molnár Péter <molnarp@sztaki.mta.hu>
*/
public class EntityReference extends AbstractReference implements Entity {
/** Referred entity instance. */
private Entity referredEntity = null;
@Override
public CheckResult check(Record record, VariableSpace scope) {
if (mapping.hasRules()) {
Record mapped = new MappedRecord(record, mapping);
return referredEntity.check(mapped, scope);
}
return referredEntity.check(record, scope);
}
@Override
public EntityReference clone() {
EntityReference copy = (EntityReference) super.clone();
copy.mapping = mapping.clone();
return copy;
}
public Entity getReferredEntity() {
return referredEntity;
}
public void setReferredEntity(Entity referredEntity) {
this.referredEntity = referredEntity;
}
}