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

de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.IFNet Maven / Gradle / Ivy

Go to download

SEPIA provides implementations for various types of Petri nets. Along Place/Transition-nets, it supports Petri nets with distinguishable token colors and defines coloured workflow nets, where coloured tokens are interpreted as data elements used during process execution. To support information flow analysis of processes, SEPIA defines so-called IF-Nets, tailored for security-oriented workflow modeling which enable users to assign security-levels (HIGH, LOW) to transitions, data elements and persons/agents participating in the process execution.

The newest version!
package de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet;

import java.util.Set;

import de.invation.code.toval.types.Multiset;
import de.uni.freiburg.iig.telematik.sepia.event.CapacityEvent;
import de.uni.freiburg.iig.telematik.sepia.mg.ifnet.IFNetMarkingGraph;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractPlace;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.abstr.AbstractIFNet;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.abstr.AbstractIFNetTransition;


public class IFNet extends AbstractIFNet, 
										 IFNetFlowRelation, 
										 IFNetMarking, 
										 RegularIFNetTransition, 
										 DeclassificationTransition> {

	private static final long serialVersionUID = -2155147434115176455L;

	public IFNet() {
		super();
	}

	public IFNet(Set places, Set transitions, IFNetMarking initialMarking) {
		super(places, transitions, initialMarking);
	}

	@Override
	public IFNet newInstance() {
		return new IFNet();
	}
	
	@Override
	public IFNetMarking createNewMarking() {
		return new IFNetMarking();
	}	

	@Override
	protected IFNetPlace createNewPlace(String name, String label) {
		return new IFNetPlace(name, label);
	}
	
	@Override
	protected RegularIFNetTransition createNewRegularTransition(String name, String label, boolean isSilent) {
		return new RegularIFNetTransition(name, label, isSilent);
	}

	@Override
	protected DeclassificationTransition createNewDeclassificationTransition(String name, String label, boolean isSilent) {
		return new DeclassificationTransition(name, label, isSilent);
	}

	@Override
	protected AbstractIFNetTransition createNewTransition(String name, String label, boolean isSilent) {
		return createNewRegularTransition(name, label, isSilent);
	}




	@Override
	protected IFNetFlowRelation createNewFlowRelation(IFNetPlace place, AbstractIFNetTransition transition, Multiset constraint) {
		return new IFNetFlowRelation(place, transition, constraint);
	}

	@Override
	protected IFNetFlowRelation createNewFlowRelation(AbstractIFNetTransition transition, IFNetPlace place, Multiset constraint) {
		return new IFNetFlowRelation(transition, place, constraint);
	}

	@Override
	protected IFNetFlowRelation createNewFlowRelation(IFNetPlace place, AbstractIFNetTransition transition) {
		return new IFNetFlowRelation(place, transition);
	}

	@Override
	protected IFNetFlowRelation createNewFlowRelation(AbstractIFNetTransition transition, IFNetPlace place) {
		return new IFNetFlowRelation(transition, place);
	}

	@Override
	public void capacityChanged(CapacityEvent>> o) {}

	@Override
	public Class getMarkingGraphClass() {
		return IFNetMarkingGraph.class;
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy