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"?>
|
||||
<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>
|
|
@ -1,3 +1,6 @@
|
|||
1633784238763 Delete resource 'fr.n7.simplepdl/SimplePDL.aird'
|
||||
1633784254258 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"?>
|
||||
<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>
|
|
@ -1,2 +1,5 @@
|
|||
1633785968241 Move 'simplepdl.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"?>
|
||||
<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>
|
|
@ -1,3 +1,6 @@
|
|||
1633784245596 Rename resource 'SimplePDL.ecore'
|
||||
1633784478504 Rename resource 'simplepdl class diagram.png'
|
||||
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.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
|
||||
|
|