
de.uni.freiburg.iig.telematik.jagal.ts.MarkingStatePairContainer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of JAGAL Show documentation
Show all versions of JAGAL Show documentation
JAGAL provides implementations for directed graphs (weighted and unweighted) and various types of transition systems as well as utils for graph traversal and modification.
The newest version!
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 final Set> markedPairs = new HashSet<>();
private final Set> unmarkedPairs = new HashSet<>();
public MarkingStatePairContainer(){
super();
}
public static , O> MarkingStatePairContainer newInstance(StatePair... statePairs) {
MarkingStatePairContainer container = new MarkingStatePairContainer<>();
for (StatePair statePair : statePairs) {
container.addStatePair(statePair);
}
return container;
}
public static , O> MarkingStatePairContainer newInstance(Collection> statePairs) {
MarkingStatePairContainer container = new MarkingStatePairContainer<>();
for (StatePair statePair : statePairs) {
container.addStatePair(statePair);
}
return container;
}
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