de.uni.freiburg.iig.telematik.sepia.mg.abstr.AbstractMarkingGraph Maven / Gradle / Ivy
package de.uni.freiburg.iig.telematik.sepia.mg.abstr;
import java.util.Collection;
import de.uni.freiburg.iig.telematik.jagal.ts.Event;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractLabeledTransitionRelation;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractLabeledTransitionSystem;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractMarking;
public abstract class AbstractMarkingGraph, O extends Object, S extends AbstractMarkingGraphState, R extends AbstractLabeledTransitionRelation> extends AbstractLabeledTransitionSystem {
private static final long serialVersionUID = 5262052130079149612L;
private S initialState = null;
public AbstractMarkingGraph() {
super();
}
public AbstractMarkingGraph(String name) {
super(name);
}
public AbstractMarkingGraph(Collection states) {
super(states);
}
public AbstractMarkingGraph(String name, Collection states) {
super(name, states);
}
public AbstractMarkingGraph(Collection states, Collection events) {
super(states, events);
}
public AbstractMarkingGraph(String name, Collection states, Collection events) {
super(name, states, events);
}
public S getInitialState() {
return initialState;
}
public void setInitialState(String name) {
this.initialState = getState(name);
}
@Override
public String toString(){
StringBuilder relations = new StringBuilder();
boolean firstEntry = true;
for(R relation: getRelations()){
if(!firstEntry){
relations.append(" ");
}
relations.append(relation.toString());
relations.append('\n');
firstEntry = false;
}
return String.format(toStringFormat, getVertices(), startStates.keySet(), endStates.keySet(), events.keySet(), relations.toString());
}
@Override
protected abstract R createNewTransitionRelation(String sourceStateName, String targetStateName, String eventName) throws Exception;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy