
de.uni.freiburg.iig.telematik.jagal.ts.StatePairContainer 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.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 final Set> statePairs = new HashSet<>();
public StatePairContainer() {
}
public static , O> StatePairContainer newInstance(StatePair... statePairs) {
StatePairContainer container = new StatePairContainer<>();
for (StatePair statePair : statePairs) {
container.addStatePair(statePair);
}
return container;
}
public static , O> StatePairContainer newInstance(Collection> statePairs) {
StatePairContainer container = new StatePairContainer<>();
for (StatePair statePair : statePairs) {
container.addStatePair(statePair);
}
return container;
}
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