From 5cc2138a0bcafb5070f2e433e6152181a4dd0c9e Mon Sep 17 00:00:00 2001 From: Laurent Fainsin Date: Sun, 10 Oct 2021 13:48:27 +0200 Subject: [PATCH] FIN TP4 --- eclipse-workspace/.metadata/.log | 40 + .../11/809ec3bbbd29001c1427db6275755878 | 187 + .../26/90e19699be29001c1427db6275755878 | 193 + .../2a/50ece4f9bd29001c1427db6275755878 | 194 + .../2a/60a542a1bd29001c1427db6275755878 | 130 + .../4/80d4e7f2bd29001c1427db6275755878 | 192 + .../50/40ed6ef74f29001c15a7c9c2336a037e | 127 + .../7a/60862ad3bd29001c1427db6275755878 | 190 + .../7e/00fb5ddabe29001c1427db6275755878 | 44 + .../91/701cacd34f29001c15a7c9c2336a037e | 124 + .../97/404058d9bd29001c1427db6275755878 | 191 + .../a/602f5c93be29001c1427db6275755878 | 193 + .../a2/00579c045029001c15a7c9c2336a037e | 133 + .../cf/7018d79cbe29001c1427db6275755878} | 64 +- .../e0/b0c68456be29001c1427db6275755878 | 191 + .../f8/e0aeac34be29001c1427db6275755878 | 65 + .../.projects/fr.n7.petrinet.design/.markers | Bin 2225 -> 2225 bytes .../fr.n7.petrinet.design/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.design/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.edit/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.edit/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.editor/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.editor/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.exemples/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.exemples/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.feature/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.feature/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.samples/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.samples/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.tests/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.tests/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.toTINA.ui/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.petrinet.toTINA.ui/.syncinfo.snap | Bin 16 -> 32 bytes .../.indexes/7/cc/89/47/1d/b9/history.index | Bin 579 -> 603 bytes .../.indexes/e4/cc/89/47/1d/b9/history.index | Bin 674 -> 698 bytes .../.projects/fr.n7.petrinet.toTINA/.markers | Bin 1406 -> 1406 bytes .../fr.n7.petrinet.toTINA/.markers.snap | Bin 16 -> 1113 bytes .../fr.n7.petrinet.toTINA/.syncinfo.snap | Bin 16 -> 32 bytes .../org.eclipse.jdt.core/state.dat | Bin 60398 -> 0 bytes .../.projects/fr.n7.petrinet/.markers | Bin 954 -> 954 bytes .../.projects/fr.n7.petrinet/.markers.snap | Bin 690 -> 32 bytes .../.projects/fr.n7.petrinet/.syncinfo.snap | Bin 16 -> 32 bytes .../org.eclipse.jdt.core/state.dat | Bin 0 -> 46684 bytes .../.projects/fr.n7.simplepdl.design/.markers | Bin 3497 -> 3497 bytes .../fr.n7.simplepdl.design/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.design/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.edit/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.edit/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.editor/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.editor/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.exemples/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.exemples/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.feature/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.feature/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.samples/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.samples/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.tests/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.tests/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toDOT.ui/.markers | Bin 1790 -> 1790 bytes .../fr.n7.simplepdl.toDOT.ui/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toDOT.ui/.syncinfo.snap | Bin 16 -> 32 bytes .../.projects/fr.n7.simplepdl.toDOT/.markers | Bin 1405 -> 1405 bytes .../fr.n7.simplepdl.toDOT/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toDOT/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toHTML.ui/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toHTML.ui/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toHTML/.markers.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl.toHTML/.syncinfo.snap | Bin 16 -> 32 bytes .../fr.n7.simplepdl/.indexes/96/history.index | Bin 0 -> 73 bytes .../.indexes/e4/fa/1/history.index | Bin 1011 -> 1299 bytes .../fr.n7.simplepdl/.indexes/history.index | Bin 3576 -> 3600 bytes .../.projects/fr.n7.simplepdl/.markers | Bin 3692 -> 3692 bytes .../.projects/fr.n7.simplepdl/.markers.snap | Bin 2254 -> 2494 bytes .../.projects/fr.n7.simplepdl/.syncinfo.snap | Bin 16 -> 32 bytes .../.root/.markers.snap | Bin 43 -> 59 bytes .../.root/{21.tree => 22.tree} | Bin 39782 -> 39782 bytes .../.safetable/org.eclipse.core.resources | Bin 1683 -> 2206 bytes .../org.eclipse.core.resources/21.snap | Bin 335 -> 0 bytes .../org.eclipse.core.resources/22.snap | Bin 0 -> 1342 bytes .../.settings/org.eclipse.ui.ide.prefs | 2 +- .../.launches/simplepdl2petrinet.launch | 3 +- .../.launches/toTINA.launch | 4 +- .../launchConfigurationHistory.xml | 4 +- .../org.eclipse.e4.workbench/workbench.xmi | 3395 +++++++++-------- .../org.eclipse.jdt.core/1610757853.index | Bin 35833 -> 36016 bytes .../org.eclipse.jdt.core/externalFilesCache | Bin 7007 -> 7976 bytes .../externalLibsTimeStamps | Bin 4867 -> 4867 bytes .../org.eclipse.jdt.core/savedIndexNames.txt | 2 +- .../org.eclipse.jdt.ui/jdt-images/0.png | Bin 715 -> 405 bytes .../org.eclipse.jdt.ui/jdt-images/1.png | Bin 494 -> 603 bytes .../org.eclipse.jdt.ui/jdt-images/2.png | Bin 0 -> 493 bytes .../org.eclipse.jdt.ui/jdt-images/3.png | Bin 0 -> 612 bytes .../org.eclipse.jdt.ui/jdt-images/4.png | Bin 0 -> 411 bytes .../2021/10/40/refactorings.history | 2 +- .../2021/10/40/refactorings.index | 3 + .../.cache/clean-cache.properties | 2 +- ...tance => .tmp8285188654093497702.instance} | 0 .../SavedExternalPluginList.txt | 2 +- eclipse-workspace/.metadata/version.ini | 2 +- .../Developpement_petrinet.xmi | 65 + .../gen/Developpement.net | 25 + .../src/fr/n7/petrinet/toTINA/main/toTINA.mtl | 2 +- .../models/Developpement_petrinet.xmi | 65 + .../simplepdl/manip/simplepdl2petrinet.java | 81 +- 104 files changed, 4178 insertions(+), 1739 deletions(-) create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/11/809ec3bbbd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/26/90e19699be29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/50ece4f9bd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/60a542a1bd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/80d4e7f2bd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/40ed6ef74f29001c15a7c9c2336a037e create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7a/60862ad3bd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7e/00fb5ddabe29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/91/701cacd34f29001c15a7c9c2336a037e create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/404058d9bd29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/602f5c93be29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/00579c045029001c15a7c9c2336a037e rename eclipse-workspace/{fr.n7.simplepdl/models/test.xmi => .metadata/.plugins/org.eclipse.core.resources/.history/cf/7018d79cbe29001c1427db6275755878} (53%) create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b0c68456be29001c1427db6275755878 create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f8/e0aeac34be29001c1427db6275755878 delete mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/org.eclipse.jdt.core/state.dat create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/org.eclipse.jdt.core/state.dat create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.indexes/96/history.index rename eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.root/{21.tree => 22.tree} (97%) delete mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/21.snap create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/22.snap create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/2.png create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/3.png create mode 100644 eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/4.png rename eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/{.tmp6998723412611004271.instance => .tmp8285188654093497702.instance} (100%) create mode 100644 eclipse-workspace/fr.n7.petrinet.exemples/Developpement_petrinet.xmi create mode 100644 eclipse-workspace/fr.n7.petrinet.exemples/gen/Developpement.net create mode 100644 eclipse-workspace/fr.n7.simplepdl/models/Developpement_petrinet.xmi diff --git a/eclipse-workspace/.metadata/.log b/eclipse-workspace/.metadata/.log index c5e54ec..ff7cf1a 100644 --- a/eclipse-workspace/.metadata/.log +++ b/eclipse-workspace/.metadata/.log @@ -31,3 +31,43 @@ java.lang.InterruptedException at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207) at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:220) at java.base/java.lang.Thread.run(Thread.java:829) +!SESSION 2021-10-10 00:17:29.406 ----------------------------------------------- +eclipse.buildId=4.17.0.I20200902-1800 +java.version=11.0.11 +java.vendor=Ubuntu +BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=fr_FR +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.emf.cdo.explorer 4 0 2021-10-10 00:27:51.311 +!MESSAGE InterruptedException +!STACK 0 +java.lang.InterruptedException + at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1343) + at java.base/java.util.concurrent.Semaphore.acquire(Semaphore.java:318) + at org.eclipse.net4j.util.lifecycle.Lifecycle.lock(Lifecycle.java:312) + at org.eclipse.net4j.util.lifecycle.Lifecycle.internalDeactivate(Lifecycle.java:118) + at org.eclipse.net4j.util.lifecycle.ShareableLifecycle.internalDeactivate(ShareableLifecycle.java:52) + at org.eclipse.net4j.util.lifecycle.Lifecycle.deactivate(Lifecycle.java:170) + at org.eclipse.net4j.util.lifecycle.LifecycleUtil.deactivate(LifecycleUtil.java:235) + at org.eclipse.net4j.util.lifecycle.LifecycleUtil.deactivate(LifecycleUtil.java:225) + at org.eclipse.emf.cdo.internal.explorer.bundle.OM.disposeManagers(OM.java:83) + at org.eclipse.emf.cdo.internal.explorer.bundle.OM$Activator.doStop(OM.java:136) + at org.eclipse.net4j.util.om.OSGiActivator.stop(OSGiActivator.java:92) + at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:871) + at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at org.eclipse.osgi.internal.framework.BundleContextImpl.stop(BundleContextImpl.java:863) + at org.eclipse.osgi.internal.framework.EquinoxBundle.stopWorker0(EquinoxBundle.java:1025) + at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.stopWorker(EquinoxBundle.java:370) + at org.eclipse.osgi.container.Module.doStop(Module.java:660) + at org.eclipse.osgi.container.Module.stop(Module.java:521) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1886) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1761) + at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:275) + at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:202) + at org.eclipse.osgi.container.Module.doStop(Module.java:660) + at org.eclipse.osgi.container.Module.stop(Module.java:521) + at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207) + at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:220) + at java.base/java.lang.Thread.run(Thread.java:829) diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/11/809ec3bbbd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/11/809ec3bbbd29001c1427db6275755878 new file mode 100644 index 0000000..c49bf0b --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/11/809ec3bbbd29001c1427db6275755878 @@ -0,0 +1,187 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + Arc arc = myFactory.createArc(); + arc.setOutgoing(false); + + + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc); + } + } + } + + + + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/26/90e19699be29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/26/90e19699be29001c1427db6275755878 new file mode 100644 index 0000000..18aba37 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/26/90e19699be29001c1427db6275755878 @@ -0,0 +1,193 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + System.out.println(predecessor.getName()); + + // creation des suffixs permettant la recherche des noeuds + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + // creation du read-arc + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/Developpement_petrinet.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/50ece4f9bd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/50ece4f9bd29001c1427db6275755878 new file mode 100644 index 0000000..44728fb --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/50ece4f9bd29001c1427db6275755878 @@ -0,0 +1,194 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + // creation des suffixs permettant la recherche des noeuds + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + // creation du read-arc + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + + + + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/60a542a1bd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/60a542a1bd29001c1427db6275755878 new file mode 100644 index 0000000..23e9b55 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/2a/60a542a1bd29001c1427db6275755878 @@ -0,0 +1,130 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/80d4e7f2bd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/80d4e7f2bd29001c1427db6275755878 new file mode 100644 index 0000000..a982e1c --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/4/80d4e7f2bd29001c1427db6275755878 @@ -0,0 +1,192 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + + + + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/40ed6ef74f29001c15a7c9c2336a037e b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/40ed6ef74f29001c15a7c9c2336a037e new file mode 100644 index 0000000..d2d6215 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/50/40ed6ef74f29001c15a7c9c2336a037e @@ -0,0 +1,127 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + System.out.println(" - " + name); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + idle.setName(name + "_started"); + idle.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + System.out.println(" + " + idle.getName() + " (" + idle.getTokens() + ")"); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7a/60862ad3bd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7a/60862ad3bd29001c1427db6275755878 new file mode 100644 index 0000000..4cf25dc --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7a/60862ad3bd29001c1427db6275755878 @@ -0,0 +1,190 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(2); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc); + } + } + } + + + + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7e/00fb5ddabe29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7e/00fb5ddabe29001c1427db6275755878 new file mode 100644 index 0000000..2dbe4c0 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/7e/00fb5ddabe29001c1427db6275755878 @@ -0,0 +1,44 @@ +[comment encoding = UTF-8 /] +[module toTINA('http://petrinet')] + +[template public networkToTINA(aNetwork : Network)] +[comment @main/] +[file (aNetwork.name + '.net', false, 'UTF-8')] +net [aNetwork.name/] +[let places : OrderedSet(Place) = aNetwork.getPlaces() ] + [if (places->size() > 0)] + [for (place : Place | places)] +pl [place.name/] ([place.tokens/]) + [/for] + [else] + [/if] +[/let] +[let transitions : OrderedSet(Transition) = aNetwork.getTransitions() ] + [if (transitions->size() > 0)] + [for (transition : Transition | transitions)] +[transition.afficher()/] + [/for] + [else] + [/if] +[/let] +[/file] +[/template] + +[query public getPlaces(n: Network) : OrderedSet(Place) = + n.nodes + ->select( e | e.oclIsTypeOf(Place) ) + ->collect( e | e.oclAsType(Place) ) + ->asOrderedSet() +/] + +[query public getTransitions(n: Network) : OrderedSet(Transition) = + n.nodes + ->select( e | e.oclIsTypeOf(Transition) ) + ->collect( e | e.oclAsType(Transition) ) + ->asOrderedSet() +/] + +[template public afficher(t : Transition) post (trim()) ] +[comment][let outgoing = t.getArcs()->select( e | e.isOutgoing() ) /][/comment] +tr [t.name/] [for (a : Arc | t.arcs)][if (not a.outgoing)][a.target.name/]*[a.weight/] [/if][/for]-> [for (a : Arc | t.arcs)][if (a.outgoing)][a.target.name/]*[a.weight/][/if][/for] +[/template] \ No newline at end of file diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/91/701cacd34f29001c15a7c9c2336a037e b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/91/701cacd34f29001c15a7c9c2336a037e new file mode 100644 index 0000000..8f0d125 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/91/701cacd34f29001c15a7c9c2336a037e @@ -0,0 +1,124 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + System.out.println(" - " + name); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(1); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(1); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + System.out.println(" + " + idle.getName() + " (" + idle.getTokens() + ")"); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/404058d9bd29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/404058d9bd29001c1427db6275755878 new file mode 100644 index 0000000..677c8e4 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/97/404058d9bd29001c1427db6275755878 @@ -0,0 +1,191 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + } + } + } + + + + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/602f5c93be29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/602f5c93be29001c1427db6275755878 new file mode 100644 index 0000000..974c90b --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a/602f5c93be29001c1427db6275755878 @@ -0,0 +1,193 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + System.out.println(predecessor.getName()); + + // creation des suffixs permettant la recherche des noeuds + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + // creation du read-arc + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/00579c045029001c15a7c9c2336a037e b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/00579c045029001c15a7c9c2336a037e new file mode 100644 index 0000000..66067c9 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/a2/00579c045029001c15a7c9c2336a037e @@ -0,0 +1,133 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + System.out.println(" - " + name); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + System.out.println(" + " + idle.getName() + " (" + idle.getTokens() + ")"); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/fr.n7.simplepdl/models/test.xmi b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/cf/7018d79cbe29001c1427db6275755878 similarity index 53% rename from eclipse-workspace/fr.n7.simplepdl/models/test.xmi rename to eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/cf/7018d79cbe29001c1427db6275755878 index 9e7734e..22698a8 100644 --- a/eclipse-workspace/fr.n7.simplepdl/models/test.xmi +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/cf/7018d79cbe29001c1427db6275755878 @@ -3,45 +3,63 @@ + - + + - - + + - + - - - - - - + + + + - + + + + + + + - - - - - + + + - - - + + + + + - + + + + + + + + + + + - - + + + + - + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b0c68456be29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b0c68456be29001c1427db6275755878 new file mode 100644 index 0000000..11609f2 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b0c68456be29001c1427db6275755878 @@ -0,0 +1,191 @@ +package simplepdl.manip; + +import java.io.IOException; +import java.util.Collections; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import petrinet.PetrinetPackage; +import petrinet.Place; +import petrinet.Transition; +import petrinet.Arc; +import petrinet.Network; +import petrinet.Node; +import petrinet.PetrinetFactory; +import simplepdl.Process; +import simplepdl.WorkDefinition; +import simplepdl.WorkSequence; +import simplepdl.WorkSequenceType; +import simplepdl.SimplepdlPackage; + +public class simplepdl2petrinet { + + public static void main(String[] args) { + + // Charger les package SimplePDL et Petrinet afin de les enregistrer dans le registre d'Eclipse. + SimplepdlPackage packageInstance = SimplepdlPackage.eINSTANCE; + PetrinetPackage packageInstance2 = PetrinetPackage.eINSTANCE; + + // Enregistrer l'extension ".xmi" comme devant être ouverte à + // l'aide d'un objet "XMIResourceFactoryImpl" + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("xmi", new XMIResourceFactoryImpl()); + + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (le modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI("pdl-sujet.xmi"); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + Process process = (Process) resource.getContents().get(0); + + // La fabrique pour fabriquer les éléments de PetriNET + PetrinetFactory myFactory = PetrinetFactory.eINSTANCE; + + // Créer un élément Network + Network network = myFactory.createNetwork(); + network.setName(process.getName()); + + // Conversion des WorkDefinition en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkDefinition) { + WorkDefinition wd = (WorkDefinition) o; + String name = wd.getName(); + + Place idle = myFactory.createPlace(); + idle.setName(name + "_idle"); + idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); + Place running = myFactory.createPlace(); + running.setName(name + "_running"); + running.setTokens(0); + Place finished = myFactory.createPlace(); + finished.setName(name + "_finished"); + finished.setTokens(0); + + Arc pause2start = myFactory.createArc(); + pause2start.setTarget(idle); + pause2start.setOutgoing(false); + pause2start.setWeight(1); + Arc start2running = myFactory.createArc(); + start2running.setTarget(running); + start2running.setOutgoing(true); + start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); + Transition start = myFactory.createTransition(); + start.setName(name + "_start"); + start.getArcs().add(pause2start); + start.getArcs().add(start2running); + start.getArcs().add(start2started); + + Arc running2finish = myFactory.createArc(); + running2finish.setTarget(running); + running2finish.setOutgoing(false); + running2finish.setWeight(1); + Arc finish2finished = myFactory.createArc(); + finish2finished.setTarget(finished); + finish2finished.setOutgoing(true); + finish2finished.setWeight(1); + Transition finish = myFactory.createTransition(); + finish.setName(name + "_finish"); + finish.getArcs().add(running2finish); + finish.getArcs().add(finish2finished); + + network.getNodes().add(idle); + network.getNodes().add(start); + network.getNodes().add(started); + network.getNodes().add(running); + network.getNodes().add(finish); + network.getNodes().add(finished); + } + } + + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + // creation des suffixs permettant la recherche des noeuds + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + // creation du read-arc + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + } + } + + // Créer le nouveau xmi (modèle convertit) + URI convURI = URI.createURI("models/test.xmi"); + Resource conv = resSet.createResource(convURI); + + // Ajouter le Network dans le nouveau modèle + conv.getContents().add(network); + + // Sauver la ressource + try { + conv.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f8/e0aeac34be29001c1427db6275755878 b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f8/e0aeac34be29001c1427db6275755878 new file mode 100644 index 0000000..22698a8 --- /dev/null +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.history/f8/e0aeac34be29001c1427db6275755878 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.design/.markers b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.design/.markers index 274460f0970c23ce5f1f8f9dc09540e7349a1d88..9f91ee86043cc75d75ebe5774486217604157732 100644 GIT binary patch delta 45 zcmdlexKVIJ2P5Nx$(@Y$o2{9vSlAgrfNB0@DQ3mZCm6jM8SN&&V-}x$mi-9;Fh~uM delta 49 zcmdlexKVIJ2P5PB$(@Y$o3q%w8QB>?fN8k)$}o@7P=WG#O+>)Nd!1mPS-0{$H9_!^ps}(O7^90Q{^B-T(jq delta 12 Tcmcc3a+qa;5u?~fZviF%99IL5 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.indexes/e4/cc/89/47/1d/b9/history.index b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.indexes/e4/cc/89/47/1d/b9/history.index index 3d8ee78218cd6d1b2e76cf75a81a5b7778bd3958..4bc843caed32a4eb500ba684bede25c4405ab649 100644 GIT binary patch delta 36 scmZ3)x{Gy!k)$}o@7P=WG#O+>)Nd!1mPS-0{$H9_!^ps}(Kw$80Q9H~{Qv*} delta 12 TcmdnRx`=gx5u?~f?|dcz8dC$U diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.markers b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.markers index d1a0dea1d15484fa602b16f5ae858f0e3293fa43..4604593daf7a8e9de4c795e8d226a20d6099f2ef 100644 GIT binary patch delta 35 ocmeyz^^a@Aaz@62$txIbHlJhKz{J4-22A;rC$Okae!{pH0O2DGfdBvi delta 35 ocmeyz^^a@Aaz@7d$txIbCLd(k%fSE!Oa+tIF{y5T!nlD60OOzwk^lez diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet.toTINA/.markers.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..b25888d4f9ef98825b4d37d4c99c9c6256801659 100644 GIT binary patch literal 1113 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 NYXX~rP#5UB`8#QCgM0u0 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.markers b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.markers index 830978d5e4498b489e31017d3cf3764d062f802c..d2485d933e708fdc53155f5d0dd5d6593fd8eae5 100644 GIT binary patch delta 48 wcmdnRzKeZ=2@|vBL^FlWzKo8Hg6YcLt_)znY{3YkCx$*_0SRuN#H7Ip02BWT@Bjb+ delta 48 wcmdnRzKeZ=2@}JgiDn9uS28{oOg*!tlK}$$GJ@!hp-zk}K+&$vlbAFZ0f8S5*8l(j diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.markers.snap index 52bc7d076370809b76af0d7ddca3283bf55b985a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 acmZ?R*xjhShe1S2b=vdAllRFvpz#6ORtg~b5XY~HL}^%%U_husCkl#?c#c3ql#LEAQi2i$&A{sTUEZ_svt8RSZ3Ii_ zc0=majZeS~LQH%WK0rqn{GJF2s0)jImhOLd|DW&qr<3EIFL3kr{j(n*KYYCd04=!J zn>nVRGE2cpO`$hRCws|Y-0zL{#)E#kKVhSOlNk?y_Oljj8<#T@N?K3MX2gVXF>q$8 zsDw?p>S<0+hD9q1HsBT=k*I<+I@NROj4nwB_LdfH=nVOs@2ANlwhLRo3k>(CWNU@^y zYb7sN`odHy!zm#TsEGTpR*6AJMQr1$oRX{kcAz78pxn5{AZtU52(AfJTB*prs6B5l zU!GZ3cTD1#NiZf+<}mVlpYNQcHR=d^ccZzl{EPH&RyWpI@kxXf`281?^w~H7 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.syncinfo.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.petrinet/.syncinfo.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 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 delta 49 zcmZ1}y;6EZHzVVe$vuqro5fhCva>UQ0Mn$&4jiJB1GsrMpJr5MW^|aG&m}SW2+vah DTs{r@ diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.design/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.design/.markers.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 acmZ?R*xjhShe1S2b=vdAllRFvpz#6ORtt<8 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.toDOT.ui/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.toDOT.ui/.markers.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 acmZ?R*xjhShe1S2b=vdAllRFvpz#6ORtmc`&m>sKW1FR2mtOC3!nf1 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.toDOT/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl.toDOT/.markers.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 acmZ?R*xjhShe1S2b=vdAllRFvpz#6ORtYZw_A Q9;{nqf-K&>6(`1klQNNv3S{hN|qx(OzhLM3GK|f|PviQt-f5GA#js{Jo_|6Xx6S$mR`1{tadWR`J;LHWju452Hm%FZ8sb*` z1Z!xRcX&6l`1)Tzz~Tu@ofaaChcD1d2YG-Yd=5(h&_SZhPaZPPVy^q`2@!XAoA=!x fCaw&WSQxJf)=(g`<}zFYC~kaK4J^LVbRRPS;gN8W delta 13 UcmbQt^_hKw38T{HP{w`C03eG5NdN!< diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.indexes/history.index b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.indexes/history.index index 7b7b95a4fc4bb367476c8fa2ede3ae72c6e30715..d15f78b42cd29735592c87da296eb831758fdd4f 100644 GIT binary patch delta 36 scmew%Jwax|MoAWiK=nd@O$Hg!(^b delta 12 TcmbOr^Fw;VMn>k1r`&h}A<6{P diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.markers b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.markers index 24fe987fe71dd88c96766b091f343bc9c0d020ec..42e24d2bb6cb9990fcef8e17953ccddb2d356e5c 100644 GIT binary patch delta 104 zcmaDO^G0TZ8KcWab2dh9b&mH8V8HCU*@Mx8kr^nkc`}m^2V>A=0d|wg2YFX;Yc1r5 ds_~!vfa@v}KVb3!?z>3*K(L-WJjn+a diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.markers.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.markers.snap index ae98a72fe2c95e235342c133d0fcab106d769e6a..57f89ade9e43e7b74d58508a4a9a9beb038b44c0 100644 GIT binary patch delta 280 zcmX>nxKDV38)NcDcUDH8%s*FeFn|Gb%H{}0cSaVF$mCNjuAEFz@z}}lnf&=DGO#CS zBo?{mr2xg57fkkLuAh8|O^he=w}S*!Vcg_*%q9ZN7g1C`oE**8$fz)RBa5gANbP}$ z-=CHDFo;M6e(tH>U49Jcl3a*O{^#&Q4a$SM7occUDH8bajsR3}C?Qx;cW;oskPF!o*-Tc_ovoVsK_|K~8Fbi;r_r zYGO%#kzQ6}St3va6I7Sj=4^l9SIfi}Iw4oN9zB z6`lNn*`%Ja99b=6KLclCQF>`^YF$<4H#- zv;ljXDGXU9Qx1x!B@C^K!J%A`lA{-%Uz8o3T3DKzmyFfR`bb{Jt_#h>TsfI}lUK2D zGm4`7!4~4QQWU45#)k|pr-f7&V0E4`LFa*VA~|vLA{JprF_6Z2$lO diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.syncinfo.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/fr.n7.simplepdl/.syncinfo.snap index 91d6c541512db06197e1b732473d567ce4b92d6a..0b368ce14fbcdffc79d020bc00b88646cda52674 100644 GIT binary patch literal 32 acmZ?R*xjhShe1S2b=vdAllRFvpz#6ORtEy%g5}SLXZaDw|4G$(r delta 168 zcmaF1jp^AoCK(oHCME_jka_^2VI;H3Mj2HnMuE*vPG{H|g(f%DNNiU3ienR3`1u#2 zM))X@R)Vr$Y@QRal97>dvRjbX=Dk5xY>a}FEg~C$s+}MzSUeD_xx^-)k6b!=LXe2K aBD+6CUg|!OW`?pKPd>;lwYewimIDA!{UewF diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 05db1a82ffbe10859588b383b133371abd204cd3..7199452df0ba722c8b26abdf70e255b4a27086b2 100644 GIT binary patch delta 129 zcmbQtJ5O+eE~}Bbm8rqx0;WWE3lnn#V^g!q4vaFBxmddxjW#!NPxbEd FV*t(XOGy9# diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/22.snap b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/22.snap new file mode 100644 index 0000000000000000000000000000000000000000..203141bf46bdfe5687d11793438d050aae1396b7 GIT binary patch literal 1342 zcmcIk&ui3B5T2K}+g7XCW-IGPkU;U`kJRd+H@k%*7NMXl#hb+TbxBOJAqjO+FP;@W z2wpsT@#Gig4*cX#$B%vi@Ce|Y-n z)v<~+49GA0B-z1TD(wmU2?2*T6DL}5QZI}H6>kJmg1qiUQoz3Qoq%fSMqZ3>j}&ju z#wts^NM+7?;HD|&f+egd?s&cCL8?`IgZ32rp8&?f&V~w7Of!+GG;_M4hhbBK!hXD8 zC8&LZtiEgVGELTZB~Z9{F>z&@`7A!9gq4eEnU6USudnvDbIC4m-@pCh=G*4( z63$VA!Cj`>%O#XhCkYEVR99&+QC4qZ@RA{ul#M>(Irik#L}uhmOvKFX~k;eFm+?{w07(O5vz53(8^e zg*eZcd9-!*R{-`ip5Q!kKKy(}5Su&HPg(_@oxg3sfJttEXK03I2>JA=K;tXgqvTsx zM){ZwFZeV*B6L810-&0?>5WtxMIYU8sBL4J%X~xI;4&t_6t&%QlXiZr!$G$===+YK z8vK{#?ytS0V)=6OUerF9%Wdp2^@DXUr+&xxNpC>$ZNTmL*VXT@*~B(qeP(Mu_-*xn E0dLL{MgRZ+ literal 0 HcmV?d00001 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs index f204514..a2fbced 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -1,5 +1,5 @@ PROBLEMS_FILTERS_MIGRATE=true eclipse.preferences.version=1 -platformState=1631777710672 +platformState=1631777710673 quickStart=false tipsAndTricks=true diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/simplepdl2petrinet.launch b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/simplepdl2petrinet.launch index b25a176..6039e3e 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/simplepdl2petrinet.launch +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/simplepdl2petrinet.launch @@ -7,7 +7,8 @@ + - + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/toTINA.launch b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/toTINA.launch index 79ea897..2d7d080 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/toTINA.launch +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/toTINA.launch @@ -4,7 +4,7 @@ - + @@ -17,6 +17,6 @@ - + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml index 9bbf6bb..80adeba 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml @@ -2,8 +2,8 @@ - + @@ -24,8 +24,8 @@ - + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/eclipse-workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi index 42bf923..5da0dc7 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -1,8 +1,8 @@ - - + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration - + @@ -11,9 +11,9 @@ topLevel shellMaximized - - - + + + persp.actionSet:org.eclipse.acceleo.ide.ui.editors.template.actionSet persp.actionSet:org.eclipse.ui.cheatsheets.actionSet @@ -35,34 +35,34 @@ persp.viewSC:org.eclipse.ui.views.ProblemView persp.actionSet:org.eclipse.debug.ui.launchActionSet persp.newWizSC:org.eclipse.ecoretools.emf.design.wizardID - - - + + + noFocus - + View categoryTag:Sirius - - + + View categoryTag:General - + View categoryTag:General - - - - + + + + View categoryTag:General - + View categoryTag:General @@ -70,7 +70,7 @@ - + persp.actionSet:org.eclipse.acceleo.ide.ui.editors.template.actionSet persp.actionSet:org.eclipse.ui.cheatsheets.actionSet @@ -83,53 +83,53 @@ persp.actionSet:org.eclipse.ui.actionSet.keyBindings persp.actionSet:org.eclipse.ui.actionSet.openFiles persp.newWizSC:org.eclipse.ecoretools.emf.design.wizardID - - - + + + noFocus - + View categoryTag:General NoClose - - + + View categoryTag:General NoClose - + View categoryTag:General - - - - - + + + + + View categoryTag:General NoClose - + View categoryTag:General - + General - + View categoryTag:Ecore Tools - + View categoryTag:Ecore Tools - + View categoryTag:General @@ -138,7 +138,7 @@ - + persp.actionSet:org.eclipse.acceleo.ide.ui.editors.template.actionSet persp.actionSet:org.eclipse.ui.cheatsheets.actionSet @@ -186,57 +186,57 @@ persp.viewSC:org.eclipse.jdt.ui.PackageExplorer persp.viewSC:org.eclipse.pde.ui.TargetPlatformState persp.newWizSC:org.eclipse.pde.ds.ui.wizard - - + + org.eclipse.e4.primaryNavigationStack noFocus - + View categoryTag:General - + View categoryTag:General - + View categoryTag:Java - + View categoryTag:Plug-in Development - - - - - + + + + + View categoryTag:General - + View categoryTag:General - + org.eclipse.e4.secondaryDataStack General - + View categoryTag:General - + View categoryTag:Plug-in Development - + View categoryTag:General - + View categoryTag:General @@ -244,7 +244,7 @@ - + persp.actionSet:org.eclipse.acceleo.ide.ui.editors.template.actionSet persp.actionSet:org.eclipse.ui.cheatsheets.actionSet @@ -280,61 +280,61 @@ persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard persp.perspSC:org.eclipse.acceleo.ide.ui.AcceleoPerspective persp.actionSet:org.eclipse.ui.edit.text.actionSet.presentation - - - + + + View categoryTag:Java - - - - - + + + + + View categoryTag:General - + View categoryTag:General - - - + + + View categoryTag:Acceleo Model to Text - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + Minimized - + View categoryTag:Acceleo Model to Text - + View categoryTag:Acceleo Model to Text @@ -343,7 +343,7 @@ - + persp.actionSet:org.eclipse.acceleo.ide.ui.editors.template.actionSet persp.actionSet:org.eclipse.ui.cheatsheets.actionSet @@ -367,38 +367,38 @@ persp.newWizSC:org.eclipse.ecoretools.emf.design.wizardID persp.newWizSC:org.eclipse.sirius.presentation.DescriptionModelWizardID persp.newWizSC:org.eclipse.sirius.ui.specificationproject.wizard - - - + + + noFocus - + View categoryTag:Sirius - - + + View categoryTag:General - + View categoryTag:General - - - - + + + + View categoryTag:General - + View categoryTag:Acceleo Model to Text - + View categoryTag:General @@ -407,2351 +407,2352 @@ - - + + View categoryTag:Help - + View categoryTag:General - + View categoryTag:Help - + View categoryTag:Help - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:Help - - + + org.eclipse.e4.primaryDataStack EditorStack active - - + noFocus + + Editor removeOnHide org.eclipse.jdt.ui.CompilationUnitEditor - - + + Editor removeOnHide - org.eclipse.jdt.ui.CompilationUnitEditor + org.eclipse.emf.ecore.presentation.EcoreEditorID - - + + Editor removeOnHide - org.eclipse.jdt.ui.CompilationUnitEditor + org.eclipse.emf.ecore.presentation.EcoreEditorID - - + + Editor removeOnHide org.eclipse.emf.ecore.presentation.ReflectiveEditorID - - + + Editor removeOnHide - org.eclipse.emf.ecore.presentation.ReflectiveEditorID - - - - Editor - removeOnHide - org.eclipse.emf.ecore.presentation.ReflectiveEditorID + org.eclipse.ui.DefaultTextEditor active - + View categoryTag:Sirius - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:Ecore Tools - + ViewMenu menuContribution:menu - + - + View categoryTag:Ecore Tools - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:Java - + View categoryTag:Plug-in Development - + ViewMenu menuContribution:menu - + - + View categoryTag:Plug-in Development - + View categoryTag:General - + ViewMenu menuContribution:menu - + - + View categoryTag:Java - + ViewMenu menuContribution:menu - + - + View categoryTag:Acceleo Model to Text - + ViewMenu menuContribution:menu - + - + View categoryTag:General - + View categoryTag:General - + View categoryTag:Acceleo Model to Text - + ViewMenu menuContribution:menu - + - + View categoryTag:Acceleo Model to Text - + ViewMenu menuContribution:menu - + - - + + toolbarSeparator - + - + Draggable - + - + toolbarSeparator - + - + Draggable - + toolbarSeparator - + - + Draggable - + Draggable - + Draggable - + Draggable - + toolbarSeparator - + - + Draggable - + - + Draggable - + Draggable - + + Draggable + + + Draggable + + toolbarSeparator - + - + toolbarSeparator - + - + Draggable - + stretch SHOW_RESTORE_MENU - + Draggable HIDEABLE SHOW_RESTORE_MENU - - + + stretch - + Draggable - + Draggable - - + + TrimStack Draggable - - + + TrimStack Draggable - - - - - - - - - - - - - + + + + + + + + + + + + + platform:gtk - - - - + + + + platform:gtk - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - + + - - - - - - - - + + + + + + + + - - + + - - - + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - + + + + + + + platform:gtk - - - - - + + + + + - - + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + - - - - - - - - + + + + + + + + locale:fr - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + platform:gtk - + platform:gtk - + platform:gtk - - - - - - + + + + + + - - + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - + + - - - - - - + + + + + + - - + + - - - - - - - - + + + + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor removeOnHide - + View categoryTag:Acceleo Model to Text - + View categoryTag:Acceleo Model to Text - + View categoryTag:Acceleo Model to Text - + View categoryTag:Ant - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:Debug - + View categoryTag:CDO - + View categoryTag:CDO - + View categoryTag:CDO - + View categoryTag:CDO - + View categoryTag:CDO - + View categoryTag:CDO - + View categoryTag:EMF Compare - + View categoryTag:Ecore Tools - + View categoryTag:Ecore Tools - + View categoryTag:General - + View categoryTag:Help - + View categoryTag:Debug - + View categoryTag:Java - + View categoryTag:Java - + View categoryTag:Java - + View categoryTag:Java Browsing - + View categoryTag:Java Browsing - + View categoryTag:Java Browsing - + View categoryTag:Java Browsing - + View categoryTag:Java - + View categoryTag:General - + View categoryTag:Java - + View categoryTag:Java - + View categoryTag:ATL Profiler - + View categoryTag:ATL Profiler - + View categoryTag:Debug - + View categoryTag:Net4j - + View categoryTag:Net4j - + View categoryTag:Net4j Debug - + View categoryTag:Net4j Debug - + View categoryTag:OCL - + View categoryTag:Oomph - + View categoryTag:API Tools - + View categoryTag:Plug-in Development - + View categoryTag:Plug-in Development - + View categoryTag:Plug-in Development - + View categoryTag:Plug-in Development - + View categoryTag:Plug-in Development - + View categoryTag:Plug-in Development - + View categoryTag:General - + View categoryTag:General - + View categoryTag:Sirius Profiler - + View categoryTag:Sirius - + View categoryTag:Team - + View categoryTag:Team - + View categoryTag:General - + View categoryTag:General - + View categoryTag:Help - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:General - + View categoryTag:Xtend - + View categoryTag:Xtext - + View categoryTag:Xtext - - + + glue move_after:PerspectiveSpacer SHOW_RESTORE_MENU - + move_after:Spacer Glue HIDEABLE SHOW_RESTORE_MENU - + glue move_after:SearchField SHOW_RESTORE_MENU - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.core/1610757853.index b/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.core/1610757853.index index 16309507650bc04ce54a51fa1a15ed2cce92e93a..a4f8cebdfd47de930080ce514efc78faf34173d2 100644 GIT binary patch delta 7159 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 delta 6617 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 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache b/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache index d05f27fe109d87cab44afde29b7c523d89d0447c..a5c8253ee56bc80a95aa5382e45c1609b0171cb9 100644 GIT binary patch delta 382 zcmca_w!)5$fq}uBp?xwVv&+QY8zw)JaGdC7Fj+{@aq=2Q)yYpqK{N-uUU7bDQF7|$ zEsRnulew69rJ(}xhI+<&26|;i28I>}CPoIjhNgy_`&kz;GG+ozbeO!3pG^*?)L75Z zT+he=tQtsJ7+B~Um>Er8C*(f)0lVB}L-xGM&YVt@9XMtI>C(xDOs2TNqP-45!KK7?n5MG5uwp{DFmY z;sut?>)FB>Cx`GmO|IwUpRB+sJ2_Fraq>nEImY722Z5}5&RLAplash~CNJZ0oV;IDcKvsuR5L$3_aC8z!|Aw2m2@dA=BbOvM_a+V^meNLCoILA$&ck`(0RJNE4#VM9 zN7M9E08K*3lMuNrIN8fLsFikUSG`cP-iUKK9y!$j_EPO2+>gA$; zDcKl-N*|uT%5^ zj^Ij9v%8|vBXAZHZV|C7aL-+3J%1w7P}%IMB7vF! zeAT<)bvWR$Yg|aQ)7XmC#drBuk*JyDUYGL%40OY=z#y<$-2i~O^iL!=r9ToCX-O%KQ&bITntu`6ia7wF9GA#si}hn*_>m7aV=H}0000< KMNUMnLSTYz@;=1? diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/1.png b/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/1.png index 221d50e4e63db33f969697d8ed47b45322dcf1f7..e091ec43dbd3ebfbaebbeeea4abe7d6f1d8e4bff 100644 GIT binary patch delta 563 zcmV-30?hsH1KR|UGk*dSNklbIwb;^0tSEwlpiALl zp^M-UNY$wk5tO>PsNkZL_y=^5($-B#P(g91pzR+Z=%P@mPDUe|Xnwuq{kZoy#JncK zp_||B+UD{7*NJuo)j{2P7=+K;KQs@(i-c~yi(Y_SbrLPPrb$b?CJuMSQ;8K zWqM!2G7JHy>ETz|X}4OQWYE>ZtK7;z0omEryHdzo2M(sAd&iT5K`4ItjnCWVfHcnM zH*$~r09kwO7zExPIl3QX={Odyo#-={igm0%-NLtG6`!`tH4gN2cN_r#BAM*HNoIcs;@(X(hSd6J01B-F@Mu$w-x}vn%4rKeJKQ@5sBOP z=R(8W*+W>oF@tDCLXv<|Oc4B_dmsLT`O^;{34=1J5i7c9Jb_;MzCz`vgKE|FSn-qm z>)eI@B?4gGyv#v-s#0m4^n4{P%Yc*utQk%#K)v2p1Qb|1S9;-nU)i?r7->0mNf2FU zjp@#U(JTbfJ65v{ zm>KOD7#JA-{bSg5rC?@C_>y#ncdy?u$O%X>%!ue_P!UyR#Bc#egNFhW3)5K}DM?;y zNeR}sKYlRmdi*s0?yFb7b|tQ0`SSBC6CWG*BW`x?T&ynOYxCKuFD&AmuA|9}EWYUa zt)C}eyj=6CW`9czvN(nde*OJttIos8eEZc)6mcak4)&w}|2w0r$1vdEzyGZ7KYe2O z`sFi<_?ut98UFtN$3xHn7DmR4x4(QbmSRJdy8iX&e+CA|uJp1>be_9L-3=FI+OqYKB v{+IZ>VcP|4>T!bx2Ofq72M*FS(Hj5&SPPlD$mpMw00000NkvXXu0mjf+o0?S diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/2.png b/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..672f75ec758497e1b72d5afc8daf76effeac1472 GIT binary patch literal 493 zcmV@VY7E)gTt^kkx0)`Xm73}N*-EW_iiOk?4OO=~Jr{(m&Klj+SMOCSX z41l&9F=jUw0nkbT<*$2Y?o?dvh}YK{{|ab*aq4d#K z9ObfG7=+6&5{X=5-w3L`f;vuL!GjY&7JZUY2N{d>+;1FrS{+e!J; jWwn=KwTI5Obl&;{hM1J=9V)On00000NkvXXu0mjfWK7!t literal 0 HcmV?d00001 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/3.png b/eclipse-workspace/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..5bec8a6a480e2cf47331ce0cae2e80b5989f246c GIT binary patch literal 612 zcmV-q0-ODbP)O>0v@6g_v|d-*D{NrRMF)cQpfDTuqcuvv)cLKJr{)Z#*f zA~r~+I|~(25K<9~U>B)w1>IH`3WACsATCN8MT%{y+C-C@m-ju_MM&s-{sYfu&Rou% zd*;p%0w@ga+D9zTDoW@ev)l@x;Yn{+C0V#wESG|MYLoF?PEBlCxlDxXJ$*Z6qPJhw z!Z9@0exdeb!TnQN5)8UFGE=&`-au)S6S?R;MGfV*??0sWZW|Dhu5M_N7-HQi^laK8 zqVXive=cSZ41Cq<-%P{n!!ORvK=8ZDs~YNc^q7c8Io45Xk*lHM^z zi-1JuWpVz_s}7%g`4}%APQYVZm5ix&z4MVKPiLk`QO<>9@o+NT50HRk86AP4*U+eb zx4}F;@?d^AFatm{)hl+)+i2>wla-}1G%YGfQNW%D*D^iZ)(M~+wQuPOU>^S@Xyf*o y%y9-?BH}DFA`tYI7;hzcH}l2MAA|b;0Dl1i1l9aP&Z|NI0000nGP$^s++T5}l45GcaBsByMZAC%` zx&>trEv;=qOGHCslVYTx6ipTyR6bMl>1ilI-!lqY`?h=ka}WP_1v((fYW5Dfg)oFH z!xaz1;h%sILXf0aNp!}MISh53L6Rw7kXpIIN;=1sFG!MX&peBJ)FVMhqx1{_7#JUg z=QN=o>oFM$hLkxZ-80ArLNGb)h8JEXfiIOwAw_3%gof$cM2_%HUKbeaN}1% ztqIv_N8|Ac0ASt>EbC%sA%qG5vc6zAvVx?08UWzhUIhRQTKl3ueMT3SNZ=)Q7Gtse z!2433YbWb;L}xF0Wep0SmqM*KB*>Bl{jv?Ucc89mBfYW)1ppwivwwZLL6c-Hyq0jB zPpcYv^y`8uE4#&-ZEWl6d|sBMg4S%tHP#M#3;*+HJ^ - + \ No newline at end of file diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/fr.n7.simplepdl/2021/10/40/refactorings.index b/eclipse-workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/fr.n7.simplepdl/2021/10/40/refactorings.index index abb30ea..32ea946 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/fr.n7.simplepdl/2021/10/40/refactorings.index +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/fr.n7.simplepdl/2021/10/40/refactorings.index @@ -13,3 +13,6 @@ 1633794227791 Delete element 1633817925558 Move file 1633818171927 Delete element +1633865744611 Delete element +1633865919357 Delete element +1633865970104 Copy file diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties b/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties index 9210a1a..966585e 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties @@ -1,2 +1,2 @@ #Cached timestamps -#Sun Oct 10 00:17:26 CEST 2021 +#Sun Oct 10 00:27:50 CEST 2021 diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.tmp6998723412611004271.instance b/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.tmp8285188654093497702.instance similarity index 100% rename from eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.tmp6998723412611004271.instance rename to eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.tmp8285188654093497702.instance diff --git a/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt b/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt index 524590f..7a35baa 100644 --- a/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt +++ b/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt @@ -1,4 +1,4 @@ -# List of external plug-in models previously loaded. Timestamp: 1633817862111 +# List of external plug-in models previously loaded. Timestamp: 1633863537523 file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.guava_27.1.0.v20190517-1946.jar file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.google.inject_3.0.0.v201605172100.jar file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.ibm.icu_67.1.0.v20200706-1749.jar diff --git a/eclipse-workspace/.metadata/version.ini b/eclipse-workspace/.metadata/version.ini index b4c9cf4..3d73f2a 100644 --- a/eclipse-workspace/.metadata/version.ini +++ b/eclipse-workspace/.metadata/version.ini @@ -1,3 +1,3 @@ -#Sun Oct 10 00:17:33 CEST 2021 +#Sun Oct 10 12:58:52 CEST 2021 org.eclipse.core.runtime=2 org.eclipse.platform=4.17.0.v20200902-1800 diff --git a/eclipse-workspace/fr.n7.petrinet.exemples/Developpement_petrinet.xmi b/eclipse-workspace/fr.n7.petrinet.exemples/Developpement_petrinet.xmi new file mode 100644 index 0000000..22698a8 --- /dev/null +++ b/eclipse-workspace/fr.n7.petrinet.exemples/Developpement_petrinet.xmi @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-workspace/fr.n7.petrinet.exemples/gen/Developpement.net b/eclipse-workspace/fr.n7.petrinet.exemples/gen/Developpement.net new file mode 100644 index 0000000..56c8406 --- /dev/null +++ b/eclipse-workspace/fr.n7.petrinet.exemples/gen/Developpement.net @@ -0,0 +1,25 @@ +net Developpement +pl Conception_idle (1) +pl Conception_started (0) +pl Conception_running (0) +pl Conception_finished (0) +pl Programmation_idle (1) +pl Programmation_started (0) +pl Programmation_running (0) +pl Programmation_finished (0) +pl RedactionTests_idle (1) +pl RedactionTests_started (0) +pl RedactionTests_running (0) +pl RedactionTests_finished (0) +pl RedactionDocs_idle (1) +pl RedactionDocs_started (0) +pl RedactionDocs_running (0) +pl RedactionDocs_finished (0) +tr Conception_start Conception_idle*1 -> Conception_running*1 Conception_started*1 +tr Conception_finish Conception_running*1 -> Conception_finished*1 +tr Programmation_start Programmation_idle*1 Conception_finished*1 -> Programmation_running*1 Programmation_started*1 Conception_finished*1 +tr Programmation_finish Programmation_running*1 -> Programmation_finished*1 +tr RedactionTests_start RedactionTests_idle*1 Conception_started*1 -> RedactionTests_running*1 RedactionTests_started*1 Conception_started*1 +tr RedactionTests_finish RedactionTests_running*1 Programmation_finished*1 -> RedactionTests_finished*1 Programmation_finished*1 +tr RedactionDocs_start RedactionDocs_idle*1 Conception_started*1 -> RedactionDocs_running*1 RedactionDocs_started*1 Conception_started*1 +tr RedactionDocs_finish RedactionDocs_running*1 Conception_finished*1 -> RedactionDocs_finished*1 Conception_finished*1 diff --git a/eclipse-workspace/fr.n7.petrinet.toTINA/src/fr/n7/petrinet/toTINA/main/toTINA.mtl b/eclipse-workspace/fr.n7.petrinet.toTINA/src/fr/n7/petrinet/toTINA/main/toTINA.mtl index 2dbe4c0..1eb0768 100644 --- a/eclipse-workspace/fr.n7.petrinet.toTINA/src/fr/n7/petrinet/toTINA/main/toTINA.mtl +++ b/eclipse-workspace/fr.n7.petrinet.toTINA/src/fr/n7/petrinet/toTINA/main/toTINA.mtl @@ -40,5 +40,5 @@ pl [place.name/] ([place.tokens/]) [template public afficher(t : Transition) post (trim()) ] [comment][let outgoing = t.getArcs()->select( e | e.isOutgoing() ) /][/comment] -tr [t.name/] [for (a : Arc | t.arcs)][if (not a.outgoing)][a.target.name/]*[a.weight/] [/if][/for]-> [for (a : Arc | t.arcs)][if (a.outgoing)][a.target.name/]*[a.weight/][/if][/for] +tr [t.name/] [for (a : Arc | t.arcs)][if (not a.outgoing)][a.target.name/]*[a.weight/] [/if][/for]-> [for (a : Arc | t.arcs)][if (a.outgoing)][a.target.name/]*[a.weight/] [/if][/for] [/template] \ No newline at end of file diff --git a/eclipse-workspace/fr.n7.simplepdl/models/Developpement_petrinet.xmi b/eclipse-workspace/fr.n7.simplepdl/models/Developpement_petrinet.xmi new file mode 100644 index 0000000..22698a8 --- /dev/null +++ b/eclipse-workspace/fr.n7.simplepdl/models/Developpement_petrinet.xmi @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-workspace/fr.n7.simplepdl/src/simplepdl/manip/simplepdl2petrinet.java b/eclipse-workspace/fr.n7.simplepdl/src/simplepdl/manip/simplepdl2petrinet.java index 8f0d125..8990466 100644 --- a/eclipse-workspace/fr.n7.simplepdl/src/simplepdl/manip/simplepdl2petrinet.java +++ b/eclipse-workspace/fr.n7.simplepdl/src/simplepdl/manip/simplepdl2petrinet.java @@ -15,6 +15,7 @@ import petrinet.Place; import petrinet.Transition; import petrinet.Arc; import petrinet.Network; +import petrinet.Node; import petrinet.PetrinetFactory; import simplepdl.Process; import simplepdl.WorkDefinition; @@ -58,17 +59,19 @@ public class simplepdl2petrinet { if (o instanceof WorkDefinition) { WorkDefinition wd = (WorkDefinition) o; String name = wd.getName(); - System.out.println(" - " + name); Place idle = myFactory.createPlace(); idle.setName(name + "_idle"); idle.setTokens(1); + Place started = myFactory.createPlace(); + started.setName(name + "_started"); + started.setTokens(0); Place running = myFactory.createPlace(); running.setName(name + "_running"); - running.setTokens(1); + running.setTokens(0); Place finished = myFactory.createPlace(); finished.setName(name + "_finished"); - finished.setTokens(1); + finished.setTokens(0); Arc pause2start = myFactory.createArc(); pause2start.setTarget(idle); @@ -78,10 +81,15 @@ public class simplepdl2petrinet { start2running.setTarget(running); start2running.setOutgoing(true); start2running.setWeight(1); + Arc start2started = myFactory.createArc(); + start2started.setTarget(started); + start2started.setOutgoing(true); + start2started.setWeight(1); Transition start = myFactory.createTransition(); start.setName(name + "_start"); start.getArcs().add(pause2start); start.getArcs().add(start2running); + start.getArcs().add(start2started); Arc running2finish = myFactory.createArc(); running2finish.setTarget(running); @@ -95,19 +103,78 @@ public class simplepdl2petrinet { finish.setName(name + "_finish"); finish.getArcs().add(running2finish); finish.getArcs().add(finish2finished); - - System.out.println(" + " + idle.getName() + " (" + idle.getTokens() + ")"); - + network.getNodes().add(idle); network.getNodes().add(start); + network.getNodes().add(started); network.getNodes().add(running); network.getNodes().add(finish); network.getNodes().add(finished); } } + // Conversion des WorkSequence en Node et Transition + for (Object o : process.getProcessElements()) { + if (o instanceof WorkSequence) { + WorkSequence ws = (WorkSequence) o; + WorkSequenceType type = ws.getLinkType(); + WorkDefinition predecessor = ws.getPredecessor(); + WorkDefinition successor = ws.getSuccessor(); + + // creation des suffixs permettant la recherche des noeuds + String predecessor_suffix = new String(); + String successor_suffix = new String(); + switch (type) { + case START_TO_START: + predecessor_suffix = "_started"; + successor_suffix = "_start"; + break; + case START_TO_FINISH: + predecessor_suffix = "_started"; + successor_suffix = "_finished"; + break; + case FINISH_TO_START: + predecessor_suffix = "_finished"; + successor_suffix = "_start"; + break; + case FINISH_TO_FINISH: + predecessor_suffix = "_finished"; + successor_suffix = "_finish"; + break; + default: + System.out.print("the fuck ?"); + break; + } + + // creation du read-arc + Arc arc1 = myFactory.createArc(); + arc1.setOutgoing(false); + arc1.setWeight(1); + Arc arc2 = myFactory.createArc(); + arc2.setOutgoing(true); + arc2.setWeight(1); + + for (Node node : network.getNodes()) { + if (node instanceof Place) { + Place place = (Place) node; + if (place.getName().equals(predecessor.getName() + predecessor_suffix)) { + arc1.setTarget(place); + arc2.setTarget(place); + } + } + if (node instanceof Transition) { + Transition transition = (Transition) node; + if (transition.getName().equals(successor.getName() + successor_suffix)) { + transition.getArcs().add(arc1); + transition.getArcs().add(arc2); + } + } + } + } + } + // Créer le nouveau xmi (modèle convertit) - URI convURI = URI.createURI("models/test.xmi"); + URI convURI = URI.createURI("models/Developpement_petrinet.xmi"); Resource conv = resSet.createResource(convURI); // Ajouter le Network dans le nouveau modèle