Unary configurations of the abstract class UnaryConfig are positive or negative configurations. Positive configurations are just events. Negative configurations are negations of events, corresponding to ``not e''. A unary configuration is fixed when the presence method returns a value different from UNKNOWN.
abstract public class UnaryConfig extends Config
implements EventConsts
{
protected String eventName;
public String name(){ return eventName; }
public boolean equals(Config config){
return super.equals(config) &&
eventName.equals(((UnaryConfig)config).eventName);
}
public boolean fixed(Machine machine){
return (machine.getEvent(eventName)).
presence(machine)!=UNKNOWN;
}
}
Positive configurations of class PosConfig are just events and evaluation returns true if the event is generated in the machine.
public class PosConfig extends UnaryConfig
{
public PosConfig(String eventName){
this.eventName = eventName;
}
public Event event(Machine machine){
return machine.getEvent(eventName);
}
public String toString(){ return eventName; }
public boolean evaluate(Machine machine){
return machine.isGenerated(eventName);
}
}
Negative configurations of class NegConfig are negations of events and evaluation returns true if the event is not generated in the machine.
public class NegConfig extends UnaryConfig
{
public NegConfig(String eventName){
this.eventName = eventName;
}
public String toString(){ return "not " + eventName; }
public boolean evaluate(Machine machine){
return ! machine.isGenerated(eventName);
}
}