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

de.uni.freiburg.iig.telematik.jagal.ts.util.TSUtils Maven / Gradle / Ivy

package de.uni.freiburg.iig.telematik.jagal.ts.util;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

import de.uni.freiburg.iig.telematik.jagal.ts.abstr.AbstractState;
import de.uni.freiburg.iig.telematik.jagal.ts.abstr.AbstractTransitionRelation;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.LTSState;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractEvent;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractLTSState;
import de.uni.freiburg.iig.telematik.jagal.ts.labeled.abstr.AbstractLabeledTransitionRelation;


public class TSUtils {
	
	public static  boolean haveSameRelations(S s1, S s2){
		return s1.getIncomingEvents().equals(s2.getIncomingEvents()) && s1.getOutgoingEvents().equals(s2.getOutgoingEvents());
	}
	
	public static , O> Set getStates(Collection> relations){
		return getStates(new HashSet>(relations));
	}
	
	public static , O> Set getStates(Set> relations){
		Set result = new HashSet();
		for(AbstractTransitionRelation relation: relations){
			result.add(relation.getSource());
			result.add(relation.getTarget());
		}
		return result;
	}
	
	public static , O> Set> convert(Set> relations){
		Set> result = new HashSet>();
		for(AbstractLabeledTransitionRelation relation: relations){
			result.add((AbstractTransitionRelation) relation);
		}
		return result;
	}

}