package org.drools.chance.factmodel;
import org.drools.chance.common.ChanceStrategyFactory;
import org.drools.chance.common.ImperfectField;
import org.drools.chance.common.ImperfectFieldImpl;
import org.drools.chance.degree.Degree;
import org.drools.chance.degree.DegreeType;
import org.drools.chance.distribution.ImpKind;
import org.drools.chance.distribution.ImpType;
import org.drools.factmodel.traits.TraitProxy;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
public abstract class ImperfectTraitProxy extends TraitProxy implements Externalizable {
protected ImperfectField<Boolean> holds;
protected ImperfectTraitProxy() {
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
super.writeExternal(out);
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
}
public ImperfectField<Boolean> getHolds() {
if ( holds == null ) {
System.err.println( "Had to create holds" );
holds = new ImperfectFieldImpl<Boolean>(
ChanceStrategyFactory.<Boolean>buildStrategies(
ImpKind.PROBABILITY,
ImpType.BASIC,
DegreeType.SIMPLE,
Boolean.class),
"true/1.0"
);
}
return holds;
}
public void setDegree( Degree deg ) {
getHolds().setValue(true, deg);
}
public Degree isA() {
return getHolds().getCurrent().getDegree( true );
}
}