Skip to content
Snippets Groups Projects
Commit a7ef5645 authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

working on split

parent 83ecdbef
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ aspect Navigation { ...@@ -2,7 +2,7 @@ aspect Navigation {
inh PetriNet PnObject.petriNet(); inh PetriNet PnObject.petriNet();
eq PetriNet.getChild().petriNet() = this; eq PetriNet.getChild().petriNet() = this;
java.util.Collection<Place> Transition.incomingPlaces() { syn java.util.Collection<Place> Transition.incomingPlaces() {
java.util.Set<Place> incomingPlaces = new java.util.HashSet<>(); java.util.Set<Place> incomingPlaces = new java.util.HashSet<>();
for (Arc incomingArc : getInArcList()) { for (Arc incomingArc : getInArcList()) {
incomingPlaces.add(incomingArc.getSource().asPlaceNode().place()); incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
...@@ -10,7 +10,7 @@ aspect Navigation { ...@@ -10,7 +10,7 @@ aspect Navigation {
return incomingPlaces; return incomingPlaces;
} }
java.util.Collection<Place> Transition.outgoingPlaces() { syn java.util.Collection<Place> Transition.outgoingPlaces() {
java.util.Set<Place> outgoingPlaces = new java.util.HashSet<>(); java.util.Set<Place> outgoingPlaces = new java.util.HashSet<>();
for (Arc outgoingArc : getOutArcList()) { for (Arc outgoingArc : getOutArcList()) {
outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place()); outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place());
......
aspect PrimitivesConversion {
syn fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI InputSignalTransition.convertToPnmlObject(){
return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertTransitionToPnmlObject(this);
}
syn fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI OutputSignalPlace.convertToPnmlObject(){
return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertPlaceToPnmlObject(this);
}
syn fr.lip6.move.pnml.ptnet.hlapi.ArcHLAPI Arc.convertToPnmlObject(){
return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertArcToPnmlObject(this);
}
}
\ No newline at end of file
package de.tudresden.inf.st.export;
public class ComplexElementsConverter {
}
package de.tudresden.inf.st.export;
import de.tudresden.inf.st.pnml.jastadd.model.Arc;
import de.tudresden.inf.st.pnml.jastadd.model.InputSignalTransition;
import de.tudresden.inf.st.pnml.jastadd.model.OutputSignalPlace;
import fr.lip6.move.pnml.ptnet.hlapi.ArcHLAPI;
import fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI;
import fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI;
public class PrimitiveElementsConverter {
public static TransitionHLAPI convertTransitionToPnmlObject(InputSignalTransition inputSignalTransition){
return null;
}
public static PlaceHLAPI convertPlaceToPnmlObject(OutputSignalPlace outputSignalPlace){
return null;
}
public static ArcHLAPI convertArcToPnmlObject(Arc arc){
return null;
}
}
package de.tudresden.inf.st.pnml; package de.tudresden.inf.st.pnml;
import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
import de.tudresden.inf.st.postprocessing.GlobalToLocalNetsPostProcessor;
import fr.lip6.move.pnml.framework.general.PNType;
import fr.lip6.move.pnml.framework.hlapi.HLAPIRootClass;
import fr.lip6.move.pnml.framework.utils.ModelRepository;
import fr.lip6.move.pnml.framework.utils.PNMLUtils;
import fr.lip6.move.pnml.framework.utils.exception.ImportException;
import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
import fr.lip6.move.pnml.ptnet.hlapi.PetriNetDocHLAPI;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class Main { public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class); private static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) { public static void main(String[] args) {
List<PetriNet> petriNets = parsePnml("src/main/resources/minimal_global.pnml");
}
private static List<PetriNet> parsePnml(String fileName) {
Path file = Paths.get(fileName);
HLAPIRootClass document = null;
try {
document = PNMLUtils.importPnmlDocument(file.toFile(), false);
logger.info(document.toPNML());
} catch (ImportException | InvalidIDException e) {
logger.error("Unable to import PNML document from file '{}'", fileName);
logger.error("Exception was thrown!", e);
System.exit(-1);
}
logger.info("Imported document workspace ID: {}", ModelRepository.getInstance().getCurrentDocWSId());
List<PetriNet> petriNets = new ArrayList<>();
PNType type = PNMLUtils.determinePNType(document);
switch (type) {
case PTNET:
PetriNetDocHLAPI ptDoc =
(PetriNetDocHLAPI) document;
for (fr.lip6.move.pnml.ptnet.PetriNet pmnlNet : ptDoc.getNets()) {
PnmlParser parser;
try {
parser = new PnmlParser(pmnlNet);
petriNets.add(parser.getPetriNet());
} catch (PnmlParseException e) {
logger.error("Parsing the Petri net using the PNML framawork failed.", e);
}
}
break;
case COREMODEL:
case SYMNET:
case HLPN:
case PTHLPN:
default:
logger.error("Petri net is of unsupported type {}.", type.getLiteral());
System.exit(-1);
}
return petriNets;
} }
} }
\ No newline at end of file
package de.tudresden.inf.st.postprocessing;
import de.tudresden.inf.st.pnml.PnmlConstants;
import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
import de.tudresden.inf.st.pnml.jastadd.model.Transition;
import java.util.Set;
public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
public static PetriNet disconnectNets(PetriNet petriNet){
Set<Transition> transitionSet = petriNet.allTransitions();
for(Transition transition : transitionSet){
if(transition.type().equals(PnmlConstants.TRANSITION_TYPE_TOPIC)){
// transition.incomingPlaces());
}
}
return null;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment