
de.uni.freiburg.iig.telematik.jagal.ts.StatePairContainer 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.List;
import java.util.Set;
import de.invation.code.toval.misc.SetUtils;
import de.uni.freiburg.iig.telematik.jagal.ts.abstr.AbstractState;
public class StatePairContainer, O> {
protected Set> statePairs = new HashSet>();
public StatePairContainer(){}
public StatePairContainer(StatePair... statePairs){
for(StatePair statePair: statePairs){
addStatePair(statePair);
}
}
public StatePairContainer(Collection> statePairs){
for(StatePair statePair: statePairs){
addStatePair(statePair);
}
}
public Set> getStatePairs(){
return Collections.unmodifiableSet(statePairs);
}
public boolean addStatePair(S state1, S state2){
return addStatePair(StatePair.createStatePair(state1, state2));
}
public boolean addStatePair(StatePair statePair){
return statePairs.add(statePair);
}
public boolean containsStatePair(S state1, S state2){
return getStatePair(state1, state1) != null;
}
public StatePair getStatePair(S state1, S state2){
return getEqualStatePair(new StatePair(state1, state2));
}
protected StatePair getEqualStatePair(StatePair statePair){
for(StatePair pair: statePairs){
if(statePair.equals(pair)){
return pair;
}
}
return null;
}
public static , O> Set> getStatePairsFrom(Collection states){
Set stateSet = new HashSet(states);
Set> result = new HashSet>();
for(List statePair: SetUtils.getKElementarySets(stateSet, 2)){
result.add(new StatePair(statePair.get(0), statePair.get(1)));
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy