ajout TP3
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
quantity="-5"
|
||||||
|
name="Crayon"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
quantity="1"
|
||||||
|
name="00000"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
name="zeroResource"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
quantity="5"
|
||||||
|
name="Okay"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="Demandeur">
|
||||||
|
<requests
|
||||||
|
quantity="-5"
|
||||||
|
target="//@processElements.0"/>
|
||||||
|
<requests
|
||||||
|
quantity="10000000"
|
||||||
|
target="//@processElements.3"/>
|
||||||
|
</processElements>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl" xsi:schemaLocation="http://simplepdl simplepdl.ecore"/>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
--inv warningSeverity: false
|
||||||
|
--inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,47 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElements
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="0000"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,39 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="Developpement">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.4 //@processElements.6 //@processElements.7"
|
||||||
|
name="Conception"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.5"
|
||||||
|
name="Programmation"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.5 //@processElements.6"
|
||||||
|
name="RedactionTests"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.7"
|
||||||
|
name="RedactionDocs"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToStart"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToFinish"
|
||||||
|
predecessor="//@processElements.1"
|
||||||
|
successor="//@processElements.2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,49 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('[A-Za-z_][A-Za-z0-9_]*'))
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<petrinet:Network xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:petrinet="http://petrinet" xsi:schemaLocation="http://petrinet petrinet.ecore"/>
|
|
@ -0,0 +1,39 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,38 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
--inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,44 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv greedy: self.quantity <= self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl" xsi:schemaLocation="http://simplepdl simplepdl.ecore"/>
|
|
@ -0,0 +1,37 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,9 @@
|
||||||
|
import 'petrinet.ecore'
|
||||||
|
|
||||||
|
package petrinet
|
||||||
|
|
||||||
|
context Network
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="Developpement">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="Conception"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.4"
|
||||||
|
name="Programmation"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="RedactionTests"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="RedactionDocs"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToStart"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,23 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="Developpement">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.4 //@processElements.6"
|
||||||
|
name="Conception"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.5"
|
||||||
|
name="Programmation"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.5 //@processElements.6"
|
||||||
|
name="RedactionTests"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="RedactionDocs"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToStart"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToFinish"
|
||||||
|
predecessor="//@processElements.1"
|
||||||
|
successor="//@processElements.2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: true
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<petrinet:Network
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:petrinet="http://petrinet"
|
||||||
|
xsi:schemaLocation="http://petrinet petrinet.ecore">
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="debut"
|
||||||
|
tokens="1"/>
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="fin"/>
|
||||||
|
<nodes xsi:type="petrinet:Transition"
|
||||||
|
name="debut2fin">
|
||||||
|
<arcs weight="1"
|
||||||
|
target="//@nodes.0"/>
|
||||||
|
<arcs weight="1"
|
||||||
|
outgoing="true"
|
||||||
|
target="//@nodes.1"/>
|
||||||
|
</nodes>
|
||||||
|
</petrinet:Network>
|
|
@ -0,0 +1,14 @@
|
||||||
|
import 'petrinet.ecore'
|
||||||
|
|
||||||
|
package petrinet
|
||||||
|
|
||||||
|
context Network
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context Place
|
||||||
|
inv negativeQuantity: self.tokens >= 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,43 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="0A 2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="000"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A 2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,42 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A 2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,43 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,29 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
--context Process
|
||||||
|
--inv warningSeverity: false
|
||||||
|
--inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<petrinet:Network
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:petrinet="http://petrinet"
|
||||||
|
xsi:schemaLocation="http://petrinet petrinet.ecore">
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="okay"
|
||||||
|
tokens="10"/>
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="1"
|
||||||
|
tokens="1"/>
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="placeNeg"
|
||||||
|
tokens="-5"/>
|
||||||
|
<nodes xsi:type="petrinet:Transition"
|
||||||
|
name="debut2fin">
|
||||||
|
<arcs weight="-5"
|
||||||
|
target="//@nodes.1"/>
|
||||||
|
<arcs weight="1"
|
||||||
|
outgoing="true"
|
||||||
|
target="//@nodes.2"/>
|
||||||
|
</nodes>
|
||||||
|
</petrinet:Network>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'SimplePDL.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,46 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,7 @@
|
||||||
|
import 'petrinet.ecore'
|
||||||
|
|
||||||
|
package petrinet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,43 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,27 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl SimplePDL.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A 2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity > 0
|
||||||
|
inv greedy: self.quantity < self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
quantity="-5"
|
||||||
|
name="Crayon"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
name="00000"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:Resource"
|
||||||
|
quantity="5"
|
||||||
|
name="Okay"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="Demandeur">
|
||||||
|
<requests
|
||||||
|
quantity="-5"
|
||||||
|
target="//@processElements.0"/>
|
||||||
|
<requests
|
||||||
|
quantity="10000000"
|
||||||
|
target="//@processElements.2"/>
|
||||||
|
</processElements>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="Developpement">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="Conception"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.5"
|
||||||
|
name="Programmation"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.5"
|
||||||
|
name="RedactionTests"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="RedactionDocs"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToStart"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
linkType="finishToFinish"
|
||||||
|
predecessor="//@processElements.1"
|
||||||
|
successor="//@processElements.2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,40 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|_*)')
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,44 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv nameMin2Char: self.name.matches('..+')
|
||||||
|
|
||||||
|
context WorkDefinition
|
||||||
|
inv weirdName: not self.name.matches('([0-9]*|[a-zA-Z]*|_*)')
|
||||||
|
|
||||||
|
context Resource
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
|
||||||
|
context Request
|
||||||
|
inv negativeQuantity: self.quantity < 0
|
||||||
|
inv greedy: self.quantity > self.target.quantity
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: true
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<petrinet:Network
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:petrinet="http://petrinet"
|
||||||
|
xsi:schemaLocation="http://petrinet petrinet.ecore">
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="debut"
|
||||||
|
tokens="1"/>
|
||||||
|
<nodes xsi:type="petrinet:Place"
|
||||||
|
name="fin"/>
|
||||||
|
<nodes xsi:type="petrinet:Transition"
|
||||||
|
name="debut2fin">
|
||||||
|
<arcs weight="1"
|
||||||
|
target="//@nodes.0"/>
|
||||||
|
<arcs weight="1"
|
||||||
|
outgoing="true"
|
||||||
|
target="//@nodes.1"/>
|
||||||
|
</nodes>
|
||||||
|
</petrinet:Network>
|
|
@ -0,0 +1,43 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv uniqNames: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w1, w2 | w1 = w2 or w1.name <> w2.name)
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv notReflexive: self.predecessor <> self.successor
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv nameMin2Char: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | w.name.matches('..+'))
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv weirdName: self.processElements
|
||||||
|
->select(pe | pe.oclIsKindOf(WorkDefinition))
|
||||||
|
->collect(pe | pe.oclAsType(WorkDefinition))
|
||||||
|
->forAll(w | not w.name.matches('([0-9]*|[a-zA-Z]*|_*)'))
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A 2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import 'simplepdl.ecore'
|
||||||
|
|
||||||
|
package simplepdl
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv warningSeverity: false
|
||||||
|
inv withMessage('Explicit message in process ' + self.name + ' (withMessage)'): false
|
||||||
|
--inv errorSeverity: null
|
||||||
|
|
||||||
|
context Process
|
||||||
|
inv validName('Invalid name: ' + self.name):
|
||||||
|
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
|
||||||
|
|
||||||
|
context ProcessElement
|
||||||
|
def: process(): Process =
|
||||||
|
Process.allInstances()
|
||||||
|
->select(p | p.processElements->includes(self))
|
||||||
|
->asSequence()->first()
|
||||||
|
|
||||||
|
context WorkSequence
|
||||||
|
inv successorAndPredecessorInSameProcess('Activities not in the same process : '
|
||||||
|
+ self.predecessor.name + ' in ' + self.predecessor.process().name+ ' and '
|
||||||
|
+ self.successor.name + ' in ' + self.successor.process().name
|
||||||
|
):
|
||||||
|
self.process() = self.successor.process()
|
||||||
|
and self.process() = self.predecessor.process()
|
||||||
|
|
||||||
|
endpackage
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="test">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="0test ntm">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<simplepdl:Process
|
||||||
|
xmi:version="2.0"
|
||||||
|
xmlns:xmi="http://www.omg.org/XMI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:simplepdl="http://simplepdl"
|
||||||
|
xsi:schemaLocation="http://simplepdl simplepdl.ecore"
|
||||||
|
name="ExempleProcess1">
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToSuccessors="//@processElements.1"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.0"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
linksToPredecessors="//@processElements.1 //@processElements.4"
|
||||||
|
linksToSuccessors="//@processElements.4"
|
||||||
|
name="A2"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkSequence"
|
||||||
|
predecessor="//@processElements.3"
|
||||||
|
successor="//@processElements.3"/>
|
||||||
|
<processElements
|
||||||
|
xsi:type="simplepdl:WorkDefinition"
|
||||||
|
name="A1"/>
|
||||||
|
</simplepdl:Process>
|
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<launchPerspectives/>\n
|
After Width: | Height: | Size: 231 B |
After Width: | Height: | Size: 261 B |
After Width: | Height: | Size: 273 B |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 240 B |
After Width: | Height: | Size: 208 B |
After Width: | Height: | Size: 233 B |
After Width: | Height: | Size: 249 B |
|
@ -1,3 +1,3 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<session version="1.0">
<refactoring comment="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" element1="/fr.n7.simplepdl/SimplePDL.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784238763"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" element1="/fr.n7.simplepdl/SimplePDL.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784254258"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/simplepdl.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/simplepdl.aird'" element1="/fr.n7.simplepdl/simplepdl.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784846447"/>
|
<session version="1.0">
<refactoring comment="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" element1="/fr.n7.simplepdl/SimplePDL.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784238763"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/SimplePDL.aird'" element1="/fr.n7.simplepdl/SimplePDL.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784254258"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/simplepdl.aird'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/simplepdl.aird'" element1="/fr.n7.simplepdl/simplepdl.aird" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633784846447"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/Developpement.xmi'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/Developpement.xmi'" element1="/fr.n7.simplepdl/Developpement.xmi" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633786946043"/>
<refactoring comment="Delete resource 'fr.n7.simplepdl/test.xmi'" deleteContents="false" description="Delete resource 'fr.n7.simplepdl/test.xmi'" element1="/fr.n7.simplepdl/test.xmi" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633786981058"/>
<refactoring comment="Delete resource 'fr.n7.petrinet/network1-ok.xmi'" deleteContents="false" description="Delete resource 'fr.n7.petrinet/network1-ok.xmi'" element1="/fr.n7.petrinet/network1-ok.xmi" flags="7" id="org.eclipse.ltk.core.refactoring.delete.resources" resources="1" stamp="1633791020843"/>
|
||||||
</session>
|
</session>
|
|
@ -1,3 +1,6 @@
|
||||||
1633784238763 Delete resource 'fr.n7.simplepdl/SimplePDL.aird'
|
1633784238763 Delete resource 'fr.n7.simplepdl/SimplePDL.aird'
|
||||||
1633784254258 Delete resource 'fr.n7.simplepdl/SimplePDL.aird'
|
1633784254258 Delete resource 'fr.n7.simplepdl/SimplePDL.aird'
|
||||||
1633784846447 Delete resource 'fr.n7.simplepdl/simplepdl.aird'
|
1633784846447 Delete resource 'fr.n7.simplepdl/simplepdl.aird'
|
||||||
|
1633786946043 Delete resource 'fr.n7.simplepdl/Developpement.xmi'
|
||||||
|
1633786981058 Delete resource 'fr.n7.simplepdl/test.xmi'
|
||||||
|
1633791020843 Delete resource 'fr.n7.petrinet/network1-ok.xmi'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<session version="1.0">
<refactoring comment="Move 'simplepdl.png' to 'fr.n7.petrinet'" description="Move 'simplepdl.png' to 'fr.n7.petrinet'" destination="/fr.n7.petrinet" element1="/fr.n7.simplepdl/simplepdl.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785968241" updateReferences="true"/>
<refactoring comment="Move 'petrinet.png' to 'fr.n7.petrinet'" description="Move 'petrinet.png' to 'fr.n7.petrinet'" destination="/fr.n7.petrinet" element1="/fr.n7.simplepdl/petrinet.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785979132" updateReferences="true"/>
|
<session version="1.0">
<refactoring comment="Move 'simplepdl.png' to 'fr.n7.petrinet'" description="Move 'simplepdl.png' to 'fr.n7.petrinet'" destination="/fr.n7.petrinet" element1="/fr.n7.simplepdl/simplepdl.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785968241" updateReferences="true"/>
<refactoring comment="Move 'petrinet.png' to 'fr.n7.petrinet'" description="Move 'petrinet.png' to 'fr.n7.petrinet'" destination="/fr.n7.petrinet" element1="/fr.n7.simplepdl/petrinet.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785979132" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.petrinet/network1-ko.xmi' to 'network1-ok.xmi'" description="Rename resource 'network1-ko.xmi'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="network1-ko.xmi" name="network1-ok.xmi" stamp="1633790913253" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.petrinet/network1-ko.xmi' to 'network1-ok.xmi'" description="Rename resource 'network1-ko.xmi'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="network1-ko.xmi" name="network1-ok.xmi" stamp="1633791025127" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.petrinet/simplepdl.ocl' to 'petrinet.ocl'" description="Rename resource 'simplepdl.ocl'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="simplepdl.ocl" name="petrinet.ocl" stamp="1633791241560" updateReferences="true"/>
|
||||||
</session>
|
</session>
|
|
@ -1,2 +1,5 @@
|
||||||
1633785968241 Move 'simplepdl.png' to 'fr.n7.petrinet'
|
1633785968241 Move 'simplepdl.png' to 'fr.n7.petrinet'
|
||||||
1633785979132 Move 'petrinet.png' to 'fr.n7.petrinet'
|
1633785979132 Move 'petrinet.png' to 'fr.n7.petrinet'
|
||||||
|
1633790913253 Rename resource 'network1-ko.xmi'
|
||||||
|
1633791025127 Rename resource 'network1-ko.xmi'
|
||||||
|
1633791241560 Rename resource 'simplepdl.ocl'
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<session version="1.0">
<refactoring comment="Rename resource 'fr.n7.simplepdl/SimplePDL.ecore' to 'simplepdl.ecore'" description="Rename resource 'SimplePDL.ecore'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="SimplePDL.ecore" name="simplepdl.ecore" stamp="1633784245596" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.simplepdl/simplepdl class diagram.png' to 'simplepdl.png'" description="Rename resource 'simplepdl class diagram.png'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="simplepdl class diagram.png" name="simplepdl.png" stamp="1633784478504" updateReferences="true"/>
<refactoring comment="Move 'simplepdl.png' to 'fr.n7.simplepdl'" description="Move 'simplepdl.png' to 'fr.n7.simplepdl'" destination="/fr.n7.simplepdl" element1="/fr.n7.petrinet/simplepdl.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785976013" updateReferences="true"/>
|
<session version="1.0">
<refactoring comment="Rename resource 'fr.n7.simplepdl/SimplePDL.ecore' to 'simplepdl.ecore'" description="Rename resource 'SimplePDL.ecore'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="SimplePDL.ecore" name="simplepdl.ecore" stamp="1633784245596" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.simplepdl/simplepdl class diagram.png' to 'simplepdl.png'" description="Rename resource 'simplepdl class diagram.png'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="simplepdl class diagram.png" name="simplepdl.png" stamp="1633784478504" updateReferences="true"/>
<refactoring comment="Move 'simplepdl.png' to 'fr.n7.simplepdl'" description="Move 'simplepdl.png' to 'fr.n7.simplepdl'" destination="/fr.n7.simplepdl" element1="/fr.n7.petrinet/simplepdl.png" flags="7" id="org.eclipse.ltk.core.refactoring.move.resources" resources="1" stamp="1633785976013" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.simplepdl/SimplePDL.ocl' to 'simplepdl.ocl'" description="Rename resource 'SimplePDL.ocl'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="SimplePDL.ocl" name="simplepdl.ocl" stamp="1633786715919" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.simplepdl/process-developpement.xmi' to 'process-.xmi'" description="Rename resource 'process-developpement.xmi'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="process-developpement.xmi" name="process-.xmi" stamp="1633790938605" updateReferences="true"/>
<refactoring comment="Rename resource 'fr.n7.simplepdl/process-.xmi' to 'process-developpement.xmi'" description="Rename resource 'process-.xmi'" flags="7" id="org.eclipse.ltk.core.refactoring.rename.resource" input="process-.xmi" name="process-developpement.xmi" stamp="1633790952620" updateReferences="true"/>
|
||||||
</session>
|
</session>
|
|
@ -1,3 +1,6 @@
|
||||||
1633784245596 Rename resource 'SimplePDL.ecore'
|
1633784245596 Rename resource 'SimplePDL.ecore'
|
||||||
1633784478504 Rename resource 'simplepdl class diagram.png'
|
1633784478504 Rename resource 'simplepdl class diagram.png'
|
||||||
1633785976013 Move 'simplepdl.png' to 'fr.n7.simplepdl'
|
1633785976013 Move 'simplepdl.png' to 'fr.n7.simplepdl'
|
||||||
|
1633786715919 Rename resource 'SimplePDL.ocl'
|
||||||
|
1633790938605 Rename resource 'process-developpement.xmi'
|
||||||
|
1633790952620 Rename resource 'process-.xmi'
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
#safe table
|
|
||||||
#Sat Oct 09 15:28:53 CEST 2021
|
|
||||||
.orphans=0
|
|
||||||
.mainData=0
|
|
||||||
.contributors=0
|
|
||||||
.namespaces=0
|
|
||||||
.extraData=0
|
|
||||||
.contributions=0
|
|
||||||
.table=0
|
|
||||||
.crcff5ab06f.v1
|
|
|
@ -1,10 +0,0 @@
|
||||||
#safe table
|
|
||||||
#Sat Oct 09 15:28:53 CEST 2021
|
|
||||||
.orphans=1
|
|
||||||
.mainData=1
|
|
||||||
.contributors=1
|
|
||||||
.namespaces=1
|
|
||||||
.extraData=1
|
|
||||||
.contributions=1
|
|
||||||
.table=1
|
|
||||||
.crc30288a54.v1
|
|
|
@ -1,4 +1,4 @@
|
||||||
# List of external plug-in models previously loaded. Timestamp: 1633784179529
|
# List of external plug-in models previously loaded. Timestamp: 1633786721284
|
||||||
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.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.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
|
file:/mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09/plugins/com.ibm.icu_67.1.0.v20200706-1749.jar
|
||||||
|
|