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

de.uni.freiburg.iig.telematik.sepia.overlap.Overlap Maven / Gradle / Ivy

package de.uni.freiburg.iig.telematik.sepia.overlap;

import de.invation.code.toval.thread.ExecutorListener;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractFlowRelation;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractMarking;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractPlace;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractTransition;
import de.uni.freiburg.iig.telematik.sewol.log.LogEntry;

public class Overlap {
	
	public static <	P extends AbstractPlace, 
					T extends AbstractTransition, 
					F extends AbstractFlowRelation, 
					M extends AbstractMarking, 
					S extends Object,
					E extends LogEntry>

		void 
	
		initiateOverlapCalculation( OverlapCallableGenerator generator,
									ExecutorListener> listener)
								
		throws OverlapException {

		ThreadedOverlapCalculator calculator = new ThreadedOverlapCalculator(generator);
		calculator.addExecutorListener(listener);
		calculator.runCalculation();
	}

	public static <	P extends AbstractPlace, 
					T extends AbstractTransition, 
					F extends AbstractFlowRelation, 
					M extends AbstractMarking, 
					S extends Object,
					E extends LogEntry>

		OverlapResult 

		calculateOverlap(OverlapCallableGenerator generator)

		throws OverlapException {

		ThreadedOverlapCalculator calculator = new ThreadedOverlapCalculator(generator);
		calculator.runCalculation();
		return calculator.getResult();
	}

}