
de.uni.freiburg.iig.telematik.jagal.ts.labeled.LabeledTransitionSystem 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.labeled;
import java.util.Collection;
import de.invation.code.toval.validate.Validate;
import de.uni.freiburg.iig.telematik.jagal.ts.Event;
import de.uni.freiburg.iig.telematik.jagal.ts.exception.StateNotFoundException;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractLabeledTransitionSystem;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.exception.EventNotFoundException;
public class LabeledTransitionSystem extends AbstractLabeledTransitionSystem {
private static final long serialVersionUID = -7254836871349786579L;
public LabeledTransitionSystem() {
super();
}
public LabeledTransitionSystem(String name) {
super(name);
}
public LabeledTransitionSystem(Collection states) {
super(states);
}
public LabeledTransitionSystem(String name, Collection states) {
super(name, states);
}
public LabeledTransitionSystem(Collection states, Collection events) {
super(states, events);
}
public LabeledTransitionSystem(String name, Collection states, Collection events) {
super(name, states, events);
}
@Override
protected LabeledTransitionRelation createNewEdge(LTSState sourceVertex, LTSState targetVertex) {
return new LabeledTransitionRelation(sourceVertex, targetVertex);
}
@Override
public LTSState createNewState(String name, Object element) {
Validate.notNull(name);
return new LTSState(name, element);
}
@Override
public LabeledTransitionRelation createNewTransitionRelation(LTSState sourceState, LTSState targetState) {
Validate.notNull(sourceState);
Validate.notNull(targetState);
return new LabeledTransitionRelation(sourceState, targetState);
}
@Override
public LabeledTransitionRelation createNewTransitionRelation(String sourceStateName, String targetStateName, String eventName) throws EventNotFoundException, StateNotFoundException {
validateState(sourceStateName);
validateState(targetStateName);
validateEvent(eventName);
return new LabeledTransitionRelation(getState(sourceStateName), getState(targetStateName), getEvent(eventName));
}
@Override
public Event createNewEvent(String name, String label) {
Validate.notNull(name);
Validate.notNull(label);
return new Event(name, label);
}
@Override
public LabeledTransitionSystem createNewInstance() {
return new LabeledTransitionSystem();
}
@Override
public LabeledTransitionSystem clone() {
return (LabeledTransitionSystem) super.clone();
}
public static void main(String[] args) throws Exception{
LabeledTransitionSystem ts = new LabeledTransitionSystem();
ts.addState("s0");
ts.addState("s1");
ts.addState("s2");
ts.addState("s3");
ts.addState("s4");
ts.addState("s5");
ts.addEvent("a");
ts.addEvent("b");
ts.addEvent("c");
ts.addEvent("d");
ts.addEvent("e");
ts.addEvent("f");
ts.addStartState("s0");
ts.addEndState("s3");
ts.addEndState("s4");
ts.addRelation("s0", "s2", "a");
ts.addRelation("s2", "s3", "b");
ts.addRelation("s0", "s1", "f");
ts.addRelation("s1", "s4", "c");
ts.addRelation("s4", "s5", "d");
ts.addRelation("s5", "s4", "e");
// String[] sequence1 = {"a", "b"};
// System.out.println(ts.acceptsSequence(sequence1));
System.out.println(ts.isDFA());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy