
de.uni.freiburg.iig.telematik.jagal.ts.MarkingStatePairContainer Maven / Gradle / Ivy
package de.uni.freiburg.iig.telematik.jagal.ts;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import de.uni.freiburg.iig.telematik.jagal.ts.abstr.AbstractState;
public class MarkingStatePairContainer, O> extends StatePairContainer {
private Set> markedPairs = new HashSet>();
private Set> unmarkedPairs = new HashSet>();
public MarkingStatePairContainer(){
super();
}
public MarkingStatePairContainer(StatePair... statePairs){
super();
for(StatePair statePair: statePairs){
addStatePair(statePair);
}
}
public MarkingStatePairContainer(Collection> statePairs){
super();
for(StatePair statePair: statePairs){
addStatePair(statePair);
}
}
public Set> getMarkedStatePairs(){
return Collections.unmodifiableSet(markedPairs);
}
public Set> getUnmarkedStatePairs(){
return Collections.unmodifiableSet(unmarkedPairs);
}
public void markPair(S state1, S state2){
StatePair testPair = getStatePair(state1, state2);
if(testPair != null){
markedPairs.add(testPair);
unmarkedPairs.remove(testPair);
}
}
public boolean isMarked(S state1, S state2){
return markedPairs.contains(new StatePair(state1, state2));
}
public void markPair(StatePair statePair){
if(statePairs.contains(statePair)){
markedPairs.add(getEqualStatePair(statePair));
unmarkedPairs.remove(getEqualStatePair(statePair));
}
}
@Override
public boolean addStatePair(StatePair statePair){
boolean isNewElement = super.addStatePair(statePair);
if(isNewElement){
if(unmarkedPairs == null){
System.out.println("set null");
} else {
unmarkedPairs.add(statePair);
}
}
return isNewElement;
}
public static void main(String[] args){
MarkingStatePairContainer c = new MarkingStatePairContainer();
c.addStatePair(new State("s0"), new State("s5"));
System.out.println(c.getStatePairs());
StatePair p1 = new StatePair(new State("z4"), new State("z3"));
StatePair p2 = new StatePair(new State("z4"), new State("z2"));
System.out.println(p1.hashCode());
System.out.println(p2.hashCode());
// c.addStatePair(p1);
// System.out.println(c.containsStatePair(new State("s0"), new State("s1")));
System.out.println(c.containsStatePair(new State("s0"), new State("s5")));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy