All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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