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

de.uni.freiburg.iig.telematik.sepia.graphic.netgraphics.AbstractPNGraphics 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.graphic.netgraphics;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

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;

/**
 * 

* Abstract petri net graphics super class. It contains all net type specific graphical information needed to draw the petri net. *

* * @author Adrian Lange * * @param

* Type of Petri net places * @param * Type of Petri net transitions * @param * Type of Petri net relations * @param * Type of Petri net markings * @param * Type of Petri net place states */ public abstract class AbstractPNGraphics

, T extends AbstractTransition, F extends AbstractFlowRelation, M extends AbstractMarking, S extends Object> { private Map placeGraphics = new HashMap(); private Map> tokenGraphics = new HashMap>(); private Map transitionGraphics = new HashMap(); private Map arcGraphics = new HashMap(); private Map arcAnnotationGraphics = new HashMap(); private Map placeLabelAnnotationGraphics = new HashMap(); private Map transitionLabelAnnotationGraphics = new HashMap(); /** * @return the arcGraphics */ public Map getArcGraphics() { return arcGraphics; } public ArcGraphics getArcGraphics(String arcName) { return arcGraphics.get(arcName); } public boolean containsArcGraphics(String arcName){ return arcGraphics.containsKey(arcName); } public Map getArcAnnotationGraphics() { return arcAnnotationGraphics; } public boolean containsArcAnnotationGraphics(String arcName){ return arcAnnotationGraphics.containsKey(arcName); } public AnnotationGraphics getArcAnnotationGraphics(String arcName) { return arcAnnotationGraphics.get(arcName); } /** * @return the placeGraphics */ public Map getPlaceGraphics() { return placeGraphics; } public NodeGraphics getPlaceGraphics(String placeName) { return placeGraphics.get(placeName); } public boolean containsPlaceGraphics(String placeName){ return placeGraphics.containsKey(placeName); } /** * @return the placeLabelAnnotationGraphics */ public Map getPlaceLabelAnnotationGraphics() { return placeLabelAnnotationGraphics; } public AnnotationGraphics getPlaceLabelAnnotationGraphics(String placeName) { return placeLabelAnnotationGraphics.get(placeName); } public boolean containsPlaceLabelAnnotationGraphics(String placeName){ return placeLabelAnnotationGraphics.containsKey(placeName); } public Map> getTokenGraphics() { return tokenGraphics; } public Set getTokenGraphics(String placeName) { return tokenGraphics.get(placeName); } public boolean containsTokenGraphics(String placeName){ return tokenGraphics.containsKey(placeName); } /** * @return the transitionGraphics */ public Map getTransitionGraphics() { return transitionGraphics; } public NodeGraphics getTransitionGraphics(String transitionName) { return transitionGraphics.get(transitionName); } public boolean containsTransitionGraphics(String transitionName){ return transitionGraphics.containsKey(transitionName); } /** * @return the transitionLabelAnnotationGraphics */ public Map getTransitionLabelAnnotationGraphics() { return transitionLabelAnnotationGraphics; } public AnnotationGraphics getTransitionLabelAnnotationGraphics(String transitionName) { return transitionLabelAnnotationGraphics.get(transitionName); } public boolean containsTransitionLabelAnnotationGraphics(String transitionName){ return transitionLabelAnnotationGraphics.containsKey(transitionName); } public void setArcAnnotationGraphics(Map arcAnnotationGraphics) { this.arcAnnotationGraphics = arcAnnotationGraphics; } /** * @param arcGraphics * the arcGraphics to set */ public void setArcGraphics(Map arcGraphics) { this.arcGraphics = arcGraphics; } /** * @param placeLabelAnnotationGraphics * the placeLabelAnnotationGraphics to set */ public void setPlaceLabelAnnotationGraphics(Map placeLabelAnnotationGraphics) { this.placeLabelAnnotationGraphics = placeLabelAnnotationGraphics; } /** * @param placeGraphics * the placeGraphics to set */ public void setPlaceGraphics(Map placeGraphics) { this.placeGraphics = placeGraphics; } public void setTokenGraphics(Map> tokenGraphics) { this.tokenGraphics = tokenGraphics; } /** * @param transitionLabelAnnotationGraphics * the transitionLabelAnnotationGraphics to set */ public void setTransitionLabelAnnotationGraphics(Map transitionLabelAnnotationGraphics) { this.transitionLabelAnnotationGraphics = transitionLabelAnnotationGraphics; } /** * @param transitionGraphics * the transitionGraphics to set */ public void setTransitionGraphics(Map transitionGraphics) { this.transitionGraphics = transitionGraphics; } @Override public String toString() { StringBuilder str = new StringBuilder(); str.append("Graphics:\n"); str.append(" placeGraphics# " + placeGraphics.size()); if (placeGraphics.size() > 0) str.append(":\n" + map2Str(placeGraphics) + "\n"); else str.append("\n"); str.append(" transitionGraphics# " + transitionGraphics.size()); if (transitionGraphics.size() > 0) str.append(":\n" + map2Str(transitionGraphics) + "\n"); else str.append("\n"); str.append(" arcGraphics# " + arcGraphics.size()); if (arcGraphics.size() > 0) str.append(":\n" + map2Str(arcGraphics) + "\n"); else str.append("\n"); str.append(" tokenGraphics# " + tokenGraphics.size()); if (tokenGraphics.size() > 0) str.append(":\n" + map2Str(tokenGraphics) + "\n"); else str.append("\n"); str.append(" arcAnnotationGraphics# " + arcAnnotationGraphics.size()); if (arcAnnotationGraphics.size() > 0) str.append(":\n" + map2Str(arcAnnotationGraphics) + "\n"); else str.append("\n"); str.append(" placeLabelAnnotationGraphics# " + placeLabelAnnotationGraphics.size()); if (placeLabelAnnotationGraphics.size() > 0) str.append(":\n" + map2Str(placeLabelAnnotationGraphics) + "\n"); else str.append("\n"); str.append("transitionLabelAnnotationGraphics# " + transitionLabelAnnotationGraphics.size()); if (transitionLabelAnnotationGraphics.size() > 0) str.append(":\n" + map2Str(transitionLabelAnnotationGraphics) + "\n"); else str.append("\n"); return str.toString(); } protected static String map2Str(Map m) { boolean empty = true; StringBuilder str = new StringBuilder(); for (Entry pairs : m.entrySet()) { if (!empty) str.append("\n"); str.append(" " + pairs.getKey() + ": " + pairs.getValue()); empty = false; } return str.toString(); } }