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

working on split

parent 83ecdbef
Branches feature/better-placeholders
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@ aspect Navigation {
inh PetriNet PnObject.petriNet();
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<>();
for (Arc incomingArc : getInArcList()) {
incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
......@@ -10,7 +10,7 @@ aspect Navigation {
return incomingPlaces;
}
java.util.Collection<Place> Transition.outgoingPlaces() {
syn java.util.Collection<Place> Transition.outgoingPlaces() {
java.util.Set<Place> outgoingPlaces = new java.util.HashSet<>();
for (Arc outgoingArc : getOutArcList()) {
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;
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.LoggerFactory;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
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