diff options
| author | cbrun | 2015-08-27 09:22:21 +0000 |
|---|---|---|
| committer | Cedric Brun | 2015-08-31 09:38:45 +0000 |
| commit | be1728d240339b637e9ff1974d7cdf342df2b5c4 (patch) | |
| tree | 3e5103ee4730292467dc4acbe2b242f21a811f10 | |
| parent | 0c1dbd65678f5400049aa0390975942b86163080 (diff) | |
| download | org.eclipse.sirius-be1728d240339b637e9ff1974d7cdf342df2b5c4.tar.gz org.eclipse.sirius-be1728d240339b637e9ff1974d7cdf342df2b5c4.tar.xz org.eclipse.sirius-be1728d240339b637e9ff1974d7cdf342df2b5c4.zip | |
[471547] Migrate Junit Test data expression from legacy to AQL
Bring the ratio of expressions migrated from Acceleo2 to AQL in the
JUnit test plugin to 96,8% , 99% of occurrences are now using AQL.
Bug: 471547
Change-Id: Iad1949256c4902be2f34176655be97bf6f6478e8
Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
62 files changed, 888 insertions, 850 deletions
diff --git a/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/variablesAccess/variablesAccess.odesign b/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/variablesAccess/variablesAccess.odesign index b7bdfb0cc6..ae68b581e4 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/variablesAccess/variablesAccess.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/variablesAccess/variablesAccess.odesign @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="ASCII"?> <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_2="http://www.eclipse.org/sirius/diagram/sequence/description/tool/2.0.0" name="Interaction" version="10.0.0.201505222000"> <ownedViewpoints name="Interactions" label="Interactions" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" name="Sequence Diagram Example with Combined Fragments Support" label="Sequence Diagram with Combined Fragments" titleExpression="Sequence Diagram with Combined Fragments on <%name%>" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> - <metamodel href="http://www.eclipse.org/sirius/sample/interactions#/"/> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" name="Sequence Diagram Example with Combined Fragments Support" label="Sequence Diagram with Combined Fragments" titleExpression="aql:'Sequence Diagram with Combined Fragments on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> + <metamodel href="http://www.eclipse.org/sirius/sample/interactions#/"/> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.1/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="ocl: let owner_ : Participant = if self.oclIsKindOf(Participant) then self.oclAsType(Participant) else self.oclAsType(Execution).owner.oclAsType(Participant) endif in let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = owner_ ) in let filteredEnds : Sequence(AbstractEnd) = if self.oclIsTypeOf(Participant) then _ends else let firstIndex : Integer = _ends->indexOf(self.oclAsType(Execution).start) in let lastIndex : Integer = _ends->indexOf(self.oclAsType(Execution).end) in if ((lastIndex-1)>=(firstIndex+1) and not firstIndex.oclIsInvalid() and not lastIndex.oclIsInvalid()) then _ends->subSequence(firstIndex+1, lastIndex-1) else _ends->select(false) endif endif in filteredEnds->select(end : AbstractEnd | end.oclIsKindOf(ExecutionEnd))->collect(execEnd : AbstractEnd | execEnd.oclAsType(ExecutionEnd).execution)->asSet()" semanticElements="<%self + start + end + owner%>" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.1/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="ocl: let owner_ : Participant = if self.oclIsKindOf(Participant) then self.oclAsType(Participant) else self.oclAsType(Execution).owner.oclAsType(Participant) endif in let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = owner_ ) in let filteredEnds : Sequence(AbstractEnd) = if self.oclIsTypeOf(Participant) then _ends else let firstIndex : Integer = _ends->indexOf(self.oclAsType(Execution).start) in let lastIndex : Integer = _ends->indexOf(self.oclAsType(Execution).end) in if ((lastIndex-1)>=(firstIndex+1) and not firstIndex.oclIsInvalid() and not lastIndex.oclIsInvalid()) then _ends->subSequence(firstIndex+1, lastIndex-1) else _ends->select(false) endif endif in filteredEnds->select(end : AbstractEnd | end.oclIsKindOf(ExecutionEnd))->collect(execEnd : AbstractEnd | execEnd.oclAsType(ExecutionEnd).execution)->asSet()" semanticElements="aql:OrderedSet{self, self.start, self.end, self.owner}" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="ocl: let owner_ : Participant = if self.oclIsKindOf(Participant) then self.oclAsType(Participant) else self.oclAsType(State).owner.oclAsType(Participant) endif in let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = owner_ ) in let filteredEnds : Sequence(AbstractEnd) = if self.oclIsTypeOf(Participant) then _ends else let firstIndex : Integer = _ends->indexOf(self.oclAsType(State).start) in let lastIndex : Integer = _ends->indexOf(self.oclAsType(State).end) in if ((lastIndex-1)>=(firstIndex+1) and not firstIndex.oclIsInvalid() and not lastIndex.oclIsInvalid()) then _ends->subSequence(firstIndex+1, lastIndex-1) else _ends->select(false) endif endif in filteredEnds->select(end : AbstractEnd | end.oclIsKindOf(StateEnd))->collect(execEnd : AbstractEnd | execEnd.oclAsType(StateEnd).state)->asSet()" semanticElements="<%self + start + end + owner%>" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="ocl: let owner_ : Participant = if self.oclIsKindOf(Participant) then self.oclAsType(Participant) else self.oclAsType(State).owner.oclAsType(Participant) endif in let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = owner_ ) in let filteredEnds : Sequence(AbstractEnd) = if self.oclIsTypeOf(Participant) then _ends else let firstIndex : Integer = _ends->indexOf(self.oclAsType(State).start) in let lastIndex : Integer = _ends->indexOf(self.oclAsType(State).end) in if ((lastIndex-1)>=(firstIndex+1) and not firstIndex.oclIsInvalid() and not lastIndex.oclIsInvalid()) then _ends->subSequence(firstIndex+1, lastIndex-1) else _ends->select(false) endif endif in filteredEnds->select(end : AbstractEnd | end.oclIsKindOf(StateEnd))->collect(execEnd : AbstractEnd | execEnd.oclAsType(StateEnd).state)->asSet()" semanticElements="aql:OrderedSet{self, self.start, self.end, self.owner}" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NORTH_SOUTH" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> </borderedNodeMappings> <borderedNodeMappings xsi:type="description_1:EndOfLifeMapping" name="EOL" preconditionExpression="<%eContainer("Interaction").messages.filter("DestroyParticipantMessage").receivingEnd[context == current("Participant")]%>" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.0/@ownedTools[name='Delete%20EndOfLife']" semanticCandidatesExpression="var:self" semanticElements="var:self" domainClass="interactions.Participant"> @@ -44,14 +44,14 @@ <edgeMappings xsi:type="description_1:BasicMessageMapping" name="Feature Access Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="ocl: Sequence{self, self.sendingEnd, self.receivingEnd, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif}" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetFinderExpression="ocl : let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif" sourceFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif" domainClass="interactions.FeatureAccessMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_green']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%name%> (read <%getReceivingContext.currentParticipant.name%>.<%feature.name%>)"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.name + ' (read ' + self.getReceivingContext().currentParticipant().name + '.' + self.feature.name + ')'"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> <conditionnalStyles predicateExpression="aql:self.isWrite"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_orange']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%name%> (write <%getReceivingContext.currentParticipant.name%>.<%feature.name%>)"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.name + ' (write ' + self.getReceivingContext().currentParticipant().name + '.' self.feature.name + ')'"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -60,7 +60,7 @@ <edgeMappings xsi:type="description_1:BasicMessageMapping" name="Call Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="ocl: Sequence{self, self.sendingEnd, self.receivingEnd, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif}" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']" targetFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif" sourceFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif" domainClass="interactions.CallMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%name%> (call <%getReceivingContext.currentParticipant.name%>.<%operation.name%>)"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.name + ' (call ' + self.getReceivingContext().currentParticipant().name + '.' + self.operation.name + ')'"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -68,7 +68,7 @@ <edgeMappings xsi:type="description_1:CreationMessageMapping" name="Create Participant Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="ocl: Sequence{self, self.sendingEnd, self.receivingEnd, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.receivingEnd._context) in let indexOfReceivingEnd : Integer = _ends->indexOf(self.receivingEnd) in if (indexOfReceivingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfReceivingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.receivingEnd._context else executionOnTarget endif else self.receivingEnd._context endif}" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']" targetFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.receivingEnd._context) in let indexOfReceivingEnd : Integer = _ends->indexOf(self.receivingEnd) in if (indexOfReceivingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfReceivingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.receivingEnd._context else executionOnTarget endif else self.receivingEnd._context endif" sourceFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif" domainClass="interactions.CreateParticipantMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd"> <style lineStyle="dash" targetArrow="InputFillClosedArrow" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%name%> (new <%receivingEnd.context.name%>)"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.name + ' (new ' + self.receivingEnd.context.name + ')'"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -81,7 +81,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="ocl: Sequence{self, self.sendingEnd, self.receivingEnd, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif}" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif" sourceFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="ocl: Sequence{self, self.sendingEnd, self.receivingEnd, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif, let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif}" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']" targetFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.recevingEnd._context) in let indexOfRecevingEnd : Integer = _ends->indexOf(self.recevingEnd) in if (indexOfRecevingEnd > 1) then let executionOnTarget : Execution = _ends->subSequence(1, indexOfRecevingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnTarget.oclIsInvalid() then self.RecevingEnd._context else executionOnTarget endif else self.recevingEnd._context endif" sourceFinderExpression="ocl: let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e._context = self.sendingEnd._context) in let indexOfSendingEnd : Integer = _ends->indexOf(self.sendingEnd) in if (indexOfSendingEnd > 1) then let executionOnSource : Execution = _ends->subSequence(1, indexOfSendingEnd-1)->select(ae : AbstractEnd | ae.oclIsKindOf(ExecutionEnd))->last().oclAsType(ExecutionEnd).execution in if executionOnSource.oclIsInvalid() then self.sendingEnd._context else executionOnSource endif else self.sendingEnd._context endif" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -89,7 +89,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.3/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finish" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.3/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finish" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -98,7 +98,7 @@ <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.0"/> </style> </containerMappings> - <containerMappings xsi:type="description_1:CombinedFragmentMapping" name="Combined Fragment" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Combined%20Fragment']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Combined%20Fragment']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self%" domainClass="interactions.CombinedFragment" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.finish" coveredLifelinesExpression="aql:self.coveredParticipants"> + <containerMappings xsi:type="description_1:CombinedFragmentMapping" name="Combined Fragment" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Combined%20Fragment']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Combined%20Fragment']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:self" domainClass="interactions.CombinedFragment" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.finish" coveredLifelinesExpression="aql:self.coveredParticipants"> <subContainerMappings xsi:type="description_1:OperandMapping" name="Operand" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@subSections[name='Operands']/@ownedTools[name='Delete%20Operand']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@toolSections.4/@subSections[name='Operands']/@ownedTools[name='Edit%20Operand']" semanticCandidatesExpression="aql:self.ownedOperands" semanticElements="var:self" domainClass="interactions.Operand" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="ocl : let _ends : Sequence(AbstractEnd) = Interaction.allInstances()->any(true).ends->asSequence()->select(e : AbstractEnd | e.oclIsKindOf(OperandEnd) or e.oclIsKindOf(CombinedFragmentEnd)) in let indexOfOperandEnd : Integer = _ends->indexOf(self.start) in let nextEnd : AbstractEnd = _ends->subSequence(indexOfOperandEnd+1, _ends->size())->first() in nextEnd"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" borderSizeComputationExpression="1" borderColor="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Dutch%20teal']" showIcon="false" labelExpression="[<%name%>]" labelColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Evening_Skyblue']" labelAlignment="LEFT" backgroundStyle="GradientTopToBottom" backgroundColor="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Paleolitico']" foregroundColor="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Paleolitico']"/> </subContainerMappings> @@ -113,7 +113,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -190,12 +190,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -471,12 +471,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -789,7 +789,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -854,7 +854,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:element.deleteCombinedFragment()"/> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_2:OperandCreationTool" name="Operand" precondition="<%$source!=null && $target!=null && $sourceView!=null && $targetView!=null $startingEndPredecessor !=null && $finishingEndPredecessor !=null %>" containerMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@containerMappings[name='Combined%20Fragment']/@subContainerMappings[name='Operand']"> + <ownedTools xsi:type="tool_2:OperandCreationTool" name="Operand" precondition="aql:source<>null and target<>null and sourceView<>null and targetView<>null startingEndPredecessor <>null and finishingEndPredecessor <>null " containerMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20Example%20with%20Combined%20Fragments%20Support']/@defaultLayer/@containerMappings[name='Combined%20Fragment']/@subContainerMappings[name='Operand']"> <variable name="container"/> <viewVariable name="containerView"/> <initialOperation> @@ -863,9 +863,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -885,7 +885,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -978,12 +978,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -1015,7 +1015,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -1035,7 +1035,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -1055,7 +1055,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -1075,7 +1075,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -1095,7 +1095,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -1109,7 +1109,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/table/unit/refresh/tables.odesign b/plugins/org.eclipse.sirius.tests.junit/data/table/unit/refresh/tables.odesign index d9571c0bcb..6d4039acd4 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/table/unit/refresh/tables.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/table/unit/refresh/tables.odesign @@ -2,7 +2,8 @@ <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" name="UML2 Tables tests" version="10.0.0.201505222000"> <ownedViewpoints documentation="Sample of some UML tables " name="UML2 tables for tests" modelFileExtension="uml"> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Colored Classes Table" domainClass="Model"> - <ownedLineMappings name="Model Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']/@ownedRepresentationCreationDescriptions[name='To%20Class%20and%20subClass%20with%20some%20attributes']" domainClass="Class" semanticCandidatesExpression="" headerLabelExpression="Class : <%name%>"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="Model Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']/@ownedRepresentationCreationDescriptions[name='To%20Class%20and%20subClass%20with%20some%20attributes']" domainClass="Class" semanticCandidatesExpression="" headerLabelExpression="aql:'Class : ' + self.name"> <defaultForeground> <foreGroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> </defaultForeground> @@ -34,7 +35,7 @@ <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="AA<%$0%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'AA' + arg0"/> </firstModelOperation> <mask mask="{0}"/> </directEdit> @@ -66,6 +67,7 @@ </ownedColumnMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="Model Association Cross Table" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="CT Classes" domainClass="Class" headerLabelExpression="aql:self.name"/> <ownedColumnMappings name="CT Classes Column" headerLabelExpression="aql:self.name" domainClass="Class"/> <intersection name="Associations" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Association%20Cross%20Table']/@ownedLineMappings[name='CT%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Association%20Cross%20Table']/@ownedColumnMappings.0" labelExpression="aql:self.name" useDomainClass="true" columnFinderExpression="aql:self.memberEnd->at(2).type" lineFinderExpression="aql:self.memberEnd->first().type" domainClass="Association"> @@ -74,7 +76,7 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eParent%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eParent"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Association" referenceName="packagedElement" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newAssociation"/> </subModelOperations> @@ -85,12 +87,14 @@ </intersection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="All Types and Instance" domainClass="Model"> - <ownedLineMappings name="All EClasses" domainClass="EClass" semanticCandidatesExpression="<%eAllContents().eClass.minimize.sort%>" headerLabelExpression="aql:self.name"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="All EClasses" domainClass="EClass" semanticCandidatesExpression="aql:self.eAllContents().eClass()->asSet()" headerLabelExpression="aql:self.name"> <ownedSubLines name="Instances" domainClass="EObject" semanticCandidatesExpression="<%$root.eAllContents($container.name)%>" headerLabelExpression="aql:self.name"/> </ownedLineMappings> <ownedColumnMappings name="Instances count" headerLabelExpression="Count" featureName="Count" labelExpression="<%$container.filter("EClass").$root.eAllContents($container.name).nSize%>"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="Model Generalization Cross Table" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="CT Generalization Classes" domainClass="Class" semanticCandidatesExpression="<%eAllContents().filter("Class").sort("name")%>" headerLabelExpression="aql:self.name"> <create name="Create Line Class"> <variables name="root" documentation="The semantic element of the table."/> @@ -98,7 +102,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="ClassLine<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'ClassLine' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -110,25 +114,25 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="ClassColumn<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'ClassColumn' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> </ownedColumnMappings> - <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedLineMappings[name='CT%20Generalization%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="<%eContents().filter("Generalization").general%>" lineFinderExpression="" semanticCandidatesExpression=""> + <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedLineMappings[name='CT%20Generalization%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="aql:self.generalization.general" lineFinderExpression="" semanticCandidatesExpression=""> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 == "X" && !generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = 'X' and self.generalization->select( e | e.general = columnSemantic)->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:columnSemantic"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 != "X" && generalization[general == $columnSemantic]%>"> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 <> 'X' and self.generalization->select( e | e.general = columnSemantic)"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.generalization->select( e | e.general = columnSemantic)"> <subModelOperations xsi:type="tool:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -140,7 +144,7 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 == "X" && !generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = 'X' and self.generalization->select( e | e.general = columnSemantic)->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:columnSemantic"/> </subModelOperations> @@ -151,19 +155,20 @@ </intersection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Class and subClass with some attributes" initialisation="true" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedRepresentationCreationDescriptions xsi:type="description_1:TableCreationDescription" name="To Class and subClass with some attributes" browseExpression="aql:self.eResource().getContents()->first()" tableDescription="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']"> <containerViewVariable name="containerView"/> <representationNameVariable name="tableName"/> </ownedRepresentationCreationDescriptions> - <ownedLineMappings name="Class lines" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram']" navigationDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram%20Navigation']" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class")[generalization == null]%>" headerLabelExpression=""> - <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"> + <ownedLineMappings name="Class lines" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram']" navigationDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram%20Navigation']" domainClass="Class" semanticCandidatesExpression="aql:self.eAllContents(uml::Class)->select( e | e.generalization->size() = 0)" headerLabelExpression=""> + <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"> <create documentation="Create a concrete subclass (only for abstract class)" name="Create concrete subclass" precondition="aql:self.isAbstract"> <variables name="root" documentation="The semantic element of the table."/> <variables name="element" documentation="The currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="SubclassOf<%$element.name%><%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'SubclassOf' + element.name + element.eContainer().ownedType->size()"/> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:element"/> </subModelOperations> @@ -172,25 +177,25 @@ </create> <create name="Create a class in the first package of the model"> <variables name="root" documentation="The semantic element of the table."> - <subVariables xsi:type="tool:AcceleoVariable" name="premierPackage" computationExpression="<%nestedPackage.nFirst%>"/> + <subVariables xsi:type="tool:AcceleoVariable" name="premierPackage" computationExpression="aql:self.nestedPackage->first()"/> </variables> <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:premierPackage"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$premierPackage.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + premierPackage.ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> <create name="Create a class in the selected package of the model"> <variables name="root" documentation="The semantic element of the table."> - <subVariables xsi:type="tool:SelectModelElementVariable" name="selectedPackage" candidatesExpression="<%eAllContents().filter("Package")%>" message="Select the correct package"/> + <subVariables xsi:type="tool:SelectModelElementVariable" name="selectedPackage" candidatesExpression="aql:self.eAllContents()->filter(uml::Package)" message="Select the correct package"/> </variables> <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:selectedPackage"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$selectedPackage.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + selectedPackage.ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -201,7 +206,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -211,7 +216,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="OtherClass<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'OtherClass' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -221,7 +226,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="SubclassOf<%$element.name%><%$container.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'SubclassOf' + element.name + container.ownedType->size()"/> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:element"/> </subModelOperations> @@ -231,7 +236,7 @@ <delete documentation="Delete all classes of the parent package" name="Delete all brothers classes" forceRefresh="true"> <variables name="element" documentation="The currently edited element."/> <variables name="root" documentation="The semantic element corresponding to the current table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$element.eContainer%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:For" expression="aql:self.ownedType"> <subModelOperations xsi:type="tool:RemoveElement"/> </subModelOperations> @@ -244,7 +249,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName="newClass"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$element.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + element.ownedType->size()"/> </subModelOperations> </firstModelOperation> </ownedCreateLine> @@ -254,17 +259,17 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName="newClass"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="AbstractClass<%$element.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'AbstractClass' + element.ownedType->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="isAbstract" valueExpression="aql:true"/> </subModelOperations> </firstModelOperation> </ownedCreateLine> <ownedColumnMappings name="Class name" headerLabelExpression="Name" initialWidth="200" canEdit="aql:self.isAbstract" featureName="name" labelExpression="aql:self.name"/> <ownedColumnMappings name="Is class abstract" headerLabelExpression="IsAbstract" featureName="isAbstract" labelExpression="aql:self.isAbstract"/> - <ownedColumnMappings name="Visibility of class" headerLabelExpression="Visibility" featureName="visibility" labelExpression="<%visibility%>"/> + <ownedColumnMappings name="Visibility of class" headerLabelExpression="Visibility" featureName="visibility" labelExpression="aql:self.visibility"/> <ownedColumnMappings name="CollaborationUse" headerLabelExpression="Representation" featureName="representation" labelExpression=""/> <ownedColumnMappings name="OwnedUseCase" headerLabelExpression="OwnedUseCase" featureName="ownedUseCase" labelExpression=""/> - <ownedColumnMappings name="BehaviorDirectEdit" headerLabelExpression="BehaviorDirectEdit" featureName="classifierBehavior" labelExpression="<%classifierBehavior.name%>"> + <ownedColumnMappings name="BehaviorDirectEdit" headerLabelExpression="BehaviorDirectEdit" featureName="classifierBehavior" labelExpression="aql:self.classifierBehavior.name"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -298,7 +303,7 @@ <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%!(ownedComment)%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.ownedComment->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Comment" referenceName="ownedComment" variableName="newComment"/> </subModelOperations> <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.ownedComment"> @@ -335,15 +340,16 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="Model all associations" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedRepresentationCreationDescriptions xsi:type="description_1:TableCreationDescription" name="To model all associations" browseExpression="aql:self.eResource().getContents()->first()" tableDescription="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']"> <containerViewVariable name="containerView"/> <representationNameVariable name="tableName"/> </ownedRepresentationCreationDescriptions> <ownedLineMappings name="Line Classes" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class").sort("name")%>" headerLabelExpression="aql:self.name"> - <ownedSubLines name="Associations" domainClass="Association" semanticCandidatesExpression="<%$root.eAllContents("Association")[memberEnd.nGet(0).type == $container]%>" headerLabelExpression="aql:self.name"/> + <ownedSubLines name="Associations" domainClass="Association" semanticCandidatesExpression="aql:root.eAllContents(uml::Association)->select( e | e.memberEnd->first().type = container)" headerLabelExpression="aql:self.name"/> </ownedLineMappings> <ownedColumnMappings name="Column Classes" headerLabelExpression="aql:self.name" domainClass="Class"/> - <intersection name="Associations" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']/@ownedSubLines[name='Associations']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="aql:self.name" columnFinderExpression="<%if (memberEnd) {%><%memberEnd.nGet(1).type%><%}%>" lineFinderExpression="" semanticCandidatesExpression="" domainClass="" preconditionExpression=""> + <intersection name="Associations" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']/@ownedSubLines[name='Associations']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="aql:self.name" columnFinderExpression="aql: self.memberEnd->first().type" lineFinderExpression="" semanticCandidatesExpression="" domainClass="" preconditionExpression=""> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -355,7 +361,7 @@ <mask mask="{0}"/> </directEdit> </intersection> - <intersection name="isAtLeastOneAssociation" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="X" useDomainClass="true" columnFinderExpression="<%if (memberEnd) {%><%memberEnd.nGet(1).type%><%}%>" lineFinderExpression="aql:self.memberEnd->first().type" domainClass="Association"> + <intersection name="isAtLeastOneAssociation" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="X" useDomainClass="true" columnFinderExpression="aql: self.memberEnd->first().type" lineFinderExpression="aql:self.memberEnd->first().type" domainClass="Association"> <create name="CreateAssociation"> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> @@ -378,12 +384,14 @@ </intersection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Property" domainClass="Model"> - <ownedLineMappings name="Property lines" semanticElements="<%self + lowerValue + upperValue%>" domainClass="Property" semanticCandidatesExpression="" headerLabelExpression="Property <%name%>"/> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="Property lines" semanticElements="aql:OrderedSet{self , self.lowerValue , self.upperValue}" domainClass="Property" semanticCandidatesExpression="" headerLabelExpression="aql:'Property ' + self.name"/> <ownedColumnMappings name="Property name" headerLabelExpression="Name" canEdit="" featureName="name" labelExpression="aql:self.name"/> - <ownedColumnMappings name="Property Lower" headerLabelExpression="Lower" canEdit="" featureName="lower" labelExpression="<%lower%>"/> - <ownedColumnMappings name="Property Upper" headerLabelExpression="Upper" featureName="upper" labelExpression="<%upper%>"/> + <ownedColumnMappings name="Property Lower" headerLabelExpression="Lower" canEdit="" featureName="lower" labelExpression="aql:self.lower"/> + <ownedColumnMappings name="Property Upper" headerLabelExpression="Upper" featureName="upper" labelExpression="aql:self.upper"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="Cross Table Colors" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="Line Color Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedRepresentationCreationDescriptions[name='To%20model%20all%20associations']" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class").sort("name")%>" headerLabelExpression="aql:self.name"> <defaultForeground> <foreGroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> @@ -407,13 +415,13 @@ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> </defaultBackground> </ownedColumnMappings> - <ownedColumnMappings name="Property Column Color" headerLabelExpression="aql:self.name" domainClass="Property" semanticCandidatesExpression="<%eAllContents("Property").nFirst%>"> + <ownedColumnMappings name="Property Column Color" headerLabelExpression="aql:self.name" domainClass="Property" semanticCandidatesExpression="aql:self.eAllContents(uml::Property)->first()"> <defaultBackground> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/> </defaultBackground> </ownedColumnMappings> - <intersection name="Associations Color" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="aql:self.name" useDomainClass="true" columnFinderExpression="<%memberEnd.nFirst.type%>" lineFinderExpression="<%memberEnd.nLast.type%>" semanticCandidatesExpression="" domainClass="Association" preconditionExpression=""> - <foregroundConditionalStyle predicateExpression="<%isLeaf%>"> + <intersection name="Associations Color" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="aql:self.name" useDomainClass="true" columnFinderExpression="aql:self.memberEnd->first().type" lineFinderExpression="aql:self.memberEnd->last().type" semanticCandidatesExpression="" domainClass="Association" preconditionExpression=""> + <foregroundConditionalStyle predicateExpression="aql:self.isLeaf"> <style> <labelFormat>bold</labelFormat> <foreGroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> @@ -428,15 +436,17 @@ <intersection name="Extends colors" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']/@ownedSubLines[name='Generalization%20colors']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="extend" columnFinderExpression="aql:self.general"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Simple hierarchy" domainClass="Model"> - <ownedLineMappings name="Class lines" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class")[generalization == null]%>" headerLabelExpression=""> - <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"> - <ownedSubLines name="SubClass lines 2" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"/> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="Class lines" domainClass="Class" semanticCandidatesExpression="aql:self.eAllContents(uml::Class)->select( e | e.generalization->size() = 0)" headerLabelExpression=""> + <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"> + <ownedSubLines name="SubClass lines 2" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"/> </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Class name" headerLabelExpression="Name" initialWidth="200" canEdit="aql:self.isAbstract" featureName="name" labelExpression="aql:self.name"/> <ownedColumnMappings name="Is class abstract" headerLabelExpression="IsAbstract" featureName="isAbstract" labelExpression="aql:self.isAbstract"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Reused hierarchy" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="Reused package lines" domainClass="Package" semanticCandidatesExpression="aql:self.packagedElement"> <ownedSubLines name="Class lines" domainClass="Class" semanticCandidatesExpression="aql:self.packagedElement" headerLabelExpression=""/> </ownedLineMappings> @@ -444,17 +454,20 @@ <ownedColumnMappings name="Is class abstract" headerLabelExpression="IsAbstract" featureName="isAbstract" labelExpression="aql:self.isAbstract"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="VariablesAccess" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="VA_LineClasses" domainClass="Class" semanticCandidatesExpression="<%eAllContents().filter("Class").sort("name")%>" headerLabelExpression="aql:self.name"/> <ownedColumnMappings name="VA_ColumnClasses" headerLabelExpression="aql:self.name" domainClass="Class" semanticCandidatesExpression="<%eAllContents().filter("Class").sort("name")%>"/> - <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='VariablesAccess']/@ownedLineMappings[name='VA_LineClasses']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='VariablesAccess']/@ownedColumnMappings.0" labelExpression="<%$line.target.name%> <%$lineSemantic.name%> <%$column.target.name%> <%$columnSemantic.name%>" columnFinderExpression="<%eContents().filter("Generalization").general%>"/> + <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='VariablesAccess']/@ownedLineMappings[name='VA_LineClasses']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='VariablesAccess']/@ownedColumnMappings.0" labelExpression="aql:line.target.name + ' ' + lineSemantic.name+ ' ' + column.target.name + ' ' +columnSemantic.name" columnFinderExpression="aql:self.generalization.general"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="TestInitialWidth" domainClass="Model" initialHeaderColumnWidth="200"> - <ownedLineMappings name="Class" domainClass="Class" semanticCandidatesExpression="feature:eContents" headerLabelExpression="Class <%name%>"/> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="Class" domainClass="Class" semanticCandidatesExpression="feature:eContents" headerLabelExpression="aql:'Class ' + self.name"/> <ownedColumnMappings name="ClassName" headerLabelExpression="Name" initialWidth="250" featureName="<%name%>" labelExpression="aql:self.name"/> <ownedColumnMappings name="ClassIsAbstract" headerLabelExpression="isAbstract" initialWidth="100" featureName="isAbstract" labelExpression="aql:self.isAbstract"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="TestColumnWithoutHeaderLabelExpression" domainClass="Model" initialHeaderColumnWidth="200"> - <ownedLineMappings name="Class" domainClass="Class" semanticCandidatesExpression="feature:eContents" headerLabelExpression="Class <%name%>"/> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <ownedLineMappings name="Class" domainClass="Class" semanticCandidatesExpression="feature:eContents" headerLabelExpression="aql:'Class ' + self.name"/> <ownedColumnMappings name="ClassName" headerLabelExpression="" initialWidth="250" featureName="<%name%>" labelExpression="aql:self.name"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_2:DiagramDescription" name="Classes" initialisation="true" domainClass="Model"> @@ -493,6 +506,7 @@ </defaultLayer> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Virtual columns" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <ownedLineMappings name="Model Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']/@ownedRepresentationCreationDescriptions[name='To%20Class%20and%20subClass%20with%20some%20attributes']" domainClass="Class" semanticCandidatesExpression="" headerLabelExpression="feature:name"/> <ownedColumnMappings name="name" headerLabelExpression="name" featureName="name"/> <ownedColumnMappings name="computedColumn" headerLabelExpression="ComputedLabel_featureName*" featureName="*" labelExpression="ComputedLabel"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/table/unit/vp-2734/vp-2734.odesign b/plugins/org.eclipse.sirius.tests.junit/data/table/unit/vp-2734/vp-2734.odesign index df3eb26a92..a82e51f444 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/table/unit/vp-2734/vp-2734.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/table/unit/vp-2734/vp-2734.odesign @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="ASCII"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" version="10.0.0.201505222000"> <ownedViewpoints name="VP-2734"> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="vp-2734" showOnStartup="true" domainClass="EPackage"> - <ownedLineMappings name="classLine" semanticElements="<%current + eReferences%>" domainClass="EClass"/> + <ownedLineMappings name="classLine" semanticElements="aql:Sequence{self} + self.eReferences" domainClass="EClass"/> <ownedColumnMappings name="classColumn" domainClass="EClass"/> - <ownedColumnMappings name="classColumn2" headerLabelExpression="refs : <%name%>" domainClass="EClass"/> - <intersection name="superClass" canEdit="<%true%>" lineMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedLineMappings[name='classLine']" columnMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="<%eSuperTypes%>"> + <ownedColumnMappings name="classColumn2" headerLabelExpression="aql:'refs : ' + self.name" domainClass="EClass"/> + <intersection name="superClass" canEdit="aql:true" lineMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedLineMappings[name='classLine']" columnMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="aql:self.eSuperTypes"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%"x" == $0 || "X" == $0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:'x' = arg0 or 'X' = arg0"> <subModelOperations xsi:type="tool:SetValue" featureName="eSuperTypes" valueExpression="var:columnSemantic"/> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<% $0 == "" || $0 == null%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = '' or arg0 = null"> <subModelOperations xsi:type="tool:Unset" featureName="eSuperTypes" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -26,27 +26,27 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%"x" == $0 || "X" == $0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:'x' = arg0 or 'X' = arg0"> <subModelOperations xsi:type="tool:SetValue" featureName="eSuperTypes" valueExpression="var:columnSemantic"/> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<% $0 == "" || $0 == null%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = '' or arg0 = null"> <subModelOperations xsi:type="tool:Unset" featureName="eSuperTypes" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> <mask mask="{0}"/> </create> </intersection> - <intersection name="refOfType" canEdit="<%true%>" lineMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedLineMappings[name='classLine']" columnMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedColumnMappings.1" labelExpression="X" useDomainClass="true" columnFinderExpression="<%eType%>" lineFinderExpression="feature:eContainer" domainClass="EReference"> + <intersection name="refOfType" canEdit="aql:true" lineMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedLineMappings[name='classLine']" columnMapping="//@ownedViewpoints[name='VP-2734']/@ownedRepresentations[name='vp-2734']/@ownedColumnMappings.1" labelExpression="X" useDomainClass="true" columnFinderExpression="aql:self.eType" lineFinderExpression="feature:eContainer" domainClass="EReference"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eReferences.nFirst%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%"x" == $0 || "X" == $0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eReferences->first()"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:'x' = arg0 or 'X' = arg0"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:columnSemantic"/> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<% $0 == "" || $0 == null%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = '' or arg0 = null"> <subModelOperations xsi:type="tool:Unset" featureName="eType" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -56,11 +56,11 @@ <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eReferences.nFirst%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%"x" == $0 || "X" == $0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eReferences->first()"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:'x' = arg0 or 'X' = arg0"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:columnSemantic"/> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<% $0 == "" || $0 == null%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = '' or arg0 = null"> <subModelOperations xsi:type="tool:Unset" featureName="eType" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/directedit/vp912/vp912.odesign b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/directedit/vp912/vp912.odesign index ba9bac8cf6..545f8d72df 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/directedit/vp912/vp912.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/directedit/vp912/vp912.odesign @@ -32,7 +32,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="<%eContents.filter("EAttribute")%>"> + <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EAttribute)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/dnd/vp926/vp926.odesign b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/dnd/vp926/vp926.odesign index 7d57ae7360..5c2280e7fb 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/dnd/vp926/vp926.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/dnd/vp926/vp926.odesign @@ -1,26 +1,27 @@ <?xml version="1.0" encoding="ASCII"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/tree/description/1.0.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" name="VP926" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/tree/description/1.0.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" name="VP926" version="10.0.0.201505222000"> <ownedViewpoints name="V926"> <ownedRepresentations xsi:type="description_1:TreeDescription" name="Tree With DnD" domainClass="Company"> - <subItemMappings name="RichDepartment" domainClass="RichDepartment" semanticCandidatesExpression="<%eAllContents.filter("RichDepartment")%>"> + <metamodel href="vp926.ecore#/"/> + <subItemMappings name="RichDepartment" domainClass="RichDepartment" semanticCandidatesExpression="aql:self.eAllContents()->filter(employee::RichDepartment)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_green']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="Rich Employee" domainClass="Employee" semanticCandidatesExpression="<%eAllContents.filter("Employee")%>"> + <subItemMappings name="Rich Employee" domainClass="Employee" semanticCandidatesExpression="aql:self.eAllContents()->filter(employee::Employee)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> <directEdit mapping="//@ownedViewpoints[name='V926']/@ownedRepresentations[name='Tree%20With%20DnD']/@subItemMappings[name='RichDepartment']/@subItemMappings[name='Rich%20Employee']"> - <firstModelOperation xsi:type="tool:SetValue" featureName="name" valueExpression="_COPY<%$0%>"/> + <firstModelOperation xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'_COPY' + arg0"/> <mask mask="{0}"/> <element name="element"/> <root name="root"/> </directEdit> - <dropTools name="Drag" precondition="<%$element.filter("Employee") && $oldContainer.eContainer.filter("RichDepartment")%>" forceRefresh="true"> + <dropTools name="Drag" precondition="aql:element.oclIsKindOf(employee::Employee) and oldContainer.eContainer().oclIsKindOf(employee::RichDepartment)" forceRefresh="true"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="<%$newContainer.name%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:newContainer.name"/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -29,10 +30,10 @@ <precedingSiblings name="precedingSiblings" documentation="The list of all the preceding siblings in a Drag and Drop operation"/> </dropTools> </subItemMappings> - <dropTools name="From Poor To Rich Department" precondition="<%$element.filter("Employee") && $element.eContainer.filter("PoorDepartment")%>" forceRefresh="true" dragSource="PROJECT_EXPLORER"> + <dropTools name="From Poor To Rich Department" precondition="aql:element.oclIsKindOf(employee::Employee) and element.eContainer().oclIsKindOf(employee::PoorDepartment)" forceRefresh="true" dragSource="PROJECT_EXPLORER"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:MoveElement" newContainerExpression="var:newContainer" featureName="employees"/> - <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="<%self.wage * 2 %>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="aql:self.wage * 2 "/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -40,10 +41,10 @@ <newViewContainer name="newViewContainer"/> <precedingSiblings name="precedingSiblings" documentation="The list of all the preceding siblings in a Drag and Drop operation"/> </dropTools> - <dropTools name="From Rich To Rich Department" precondition="<%current.filter("Employee") && current.eContainer.filter("RichDepartment")%>" forceRefresh="true" dragSource="BOTH"> + <dropTools name="From Rich To Rich Department" precondition="aql:self.oclIsKindOf(employee::Employee) and self.eContainer().oclIsKindOf(employee::RichDepartment)" forceRefresh="true" dragSource="BOTH"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:MoveElement" newContainerExpression="var:newContainer" featureName="employees"/> - <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="<%$element.wage + 500 %>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="aql:element.wage + 500 "/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -52,21 +53,21 @@ <precedingSiblings name="precedingSiblings" documentation="The list of all the preceding siblings in a Drag and Drop operation"/> </dropTools> </subItemMappings> - <subItemMappings name="Poor Department" domainClass="PoorDepartment" semanticCandidatesExpression="<%eAllContents.filter("PoorDepartment")%>"> + <subItemMappings name="Poor Department" domainClass="PoorDepartment" semanticCandidatesExpression="aql:self.eAllContents()->filter(employee::PoorDepartment)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_orange']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="Poor Employee" domainClass="Employee" semanticCandidatesExpression="<%eAllContents.filter("Employee")%>"> + <subItemMappings name="Poor Employee" domainClass="Employee" semanticCandidatesExpression="aql:self.eAllContents()->filter(employee::Employee)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> </subItemMappings> - <dropTools name="From Poor To Poor Department" precondition="<%$element.filter("Employee") && $element.eContainer.filter("PoorDepartment") && self.target.name != "employe3"%>" forceRefresh="true" dragSource="BOTH"> + <dropTools name="From Poor To Poor Department" precondition="aql:element.oclIsKindOf(employee::Employee) and element.eContainer().oclIsKindOf(employee::PoorDepartment) and self.name <> 'employe3'" forceRefresh="true" dragSource="BOTH"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:MoveElement" newContainerExpression="var:newContainer" featureName="employees"/> - <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="<%self.wage - 10%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="aql:self.wage - 10"/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -74,10 +75,10 @@ <newViewContainer name="newViewContainer"/> <precedingSiblings name="precedingSiblings" documentation="The list of all the preceding siblings in a Drag and Drop operation"/> </dropTools> - <dropTools name="From Rich To Poor Department" precondition="<%$element.filter("Employee") && $element.eContainer.filter("RichDepartment")%>" forceRefresh="true" dragSource="BOTH"> + <dropTools name="From Rich To Poor Department" precondition="aql:element.oclIsKindOf(employee::Employee) and element.eContainer().oclIsKindOf(employee::RichDepartment)" forceRefresh="true" dragSource="BOTH"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:MoveElement" newContainerExpression="var:newContainer" featureName="employees"/> - <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="<%$element.wage /2 %>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="wage" valueExpression="aql:element.wage /2 "/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -86,10 +87,10 @@ <precedingSiblings name="precedingSiblings" documentation="The list of all the preceding siblings in a Drag and Drop operation"/> </dropTools> </subItemMappings> - <dropTools name=" To Company" precondition="<%$element.filter("Department")%>" forceRefresh="true" dragSource="BOTH"> + <dropTools name=" To Company" precondition="aql:element.oclIsKindOf(employee::Department)" forceRefresh="true" dragSource="BOTH"> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:MoveElement" newContainerExpression="var:newContainer" featureName="departments"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="<%$element.name%>_DROPPED"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:element.name + '_DROPPED'"/> </firstModelOperation> <oldContainer name="oldContainer"/> <newContainer name="newContainer"/> @@ -100,7 +101,7 @@ </ownedRepresentations> </ownedViewpoints> <userColorsPalettes name="Ecore Palette"> - <entries xsi:type="description:InterpolatedColor" name="Size Based Color"/> + <entries xsi:type="description:InterpolatedColor" name="Size Based Color" colorValueComputationExpression="[eContents()->size()/]"/> <entries xsi:type="description:UserFixedColor" red="250" green="190" blue="190" name="MomentIntervalColor"/> <entries xsi:type="description:UserFixedColor" red="250" green="240" blue="180" name="RoleColor"/> <entries xsi:type="description:UserFixedColor" red="180" green="230" blue="180" name="PartyPlaceThingColor"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/refresh/tree.odesign b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/refresh/tree.odesign index d8e26b8bba..8900c9ade4 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/refresh/tree.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/refresh/tree.odesign @@ -25,7 +25,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="<%eContents.filter("EAttribute")%>"> + <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EAttribute)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> @@ -75,7 +75,7 @@ <ownedJavaExtensions qualifiedClassName="org.eclipse.sirius.ecore.design.service.EcoreService"/> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides representation to document and review Ecore models." name="Review" modelFileExtension="ecore"> - <ownedRepresentations xsi:type="description_2:CrossTableDescription" endUserDocumentation="Document the concepts in a package." name="Documentation" titleExpression="Documentation for <%name%> package" domainClass="EPackage"> + <ownedRepresentations xsi:type="description_2:CrossTableDescription" endUserDocumentation="Document the concepts in a package." name="Documentation" titleExpression="aql:'Documentation for ' + self.name + ' package'" domainClass="EPackage"> <ownedLineMappings name="Doc EClassifiers" semanticElements="var:self" domainClass="EClassifier" semanticCandidatesExpression="feature:eContents" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"> <defaultBackground> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> @@ -110,13 +110,13 @@ </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%self.details[key=="documentation"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details" variableName="newDetail"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel'].details[key='documentation')"> <subModelOperations xsi:type="tool:SetValue" featureName="value" valueExpression="var:arg0"/> </subModelOperations> </firstModelOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/tools/tree.odesign b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/tools/tree.odesign index e90692811e..5a20eeb09a 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/tools/tree.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/tree/unit/tools/tree.odesign @@ -25,7 +25,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="<%eContents.filter("EAttribute")%>"> + <subItemMappings name="Attr" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EAttribute)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> @@ -90,7 +90,7 @@ </ownedRepresentationCreationDescriptions> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:TreeDescription" name="Tree on Class" domainClass="EClass"> - <subItemMappings name="Attr2" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="<%eContents.filter("EAttribute")%>"> + <subItemMappings name="Attr2" label="Attr" domainClass="EAttribute" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EAttribute)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/compositefilter/ticket2174/tc2174.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/compositefilter/ticket2174/tc2174.odesign index a3c7159b99..e012bddd07 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/compositefilter/ticket2174/tc2174.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/compositefilter/ticket2174/tc2174.odesign @@ -5,7 +5,7 @@ <metamodel href="http://www.eclipse.org/emf/2002/Ecore#/"/> <filters xsi:type="filter:CompositeFilterDescription" name="HideContents" label="Hide contents"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2'] //@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']"/> - <filters xsi:type="filter:VariableFilter" semanticConditionExpression="<%!filter("EOperation")%>"/> + <filters xsi:type="filter:VariableFilter" semanticConditionExpression="aql:not self.oclIsKindOf(ecore::EOperation)"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="HideAttributes" label="Hide attributes"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']"/> @@ -27,7 +27,7 @@ <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseHideContentsCondition" label="Collapse attributes and hide references with condition"> - <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']" semanticConditionExpression="<%name != "activateHideRef"%>"/> + <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']" semanticConditionExpression="aql:self.name <> 'activateHideRef'"/> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='tc2174']/@ownedRepresentations[name='tc2174']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']" semanticConditionExpression="<%name != "activateCollapseAtt"%>"/> </filters> <defaultLayer name="Default" label="default"> @@ -67,7 +67,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="class<%$container.eClassifiers.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'class' + container.eClassifiers->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -78,7 +78,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="class<%$container.eClassifiers.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'class' + container.eClassifiers->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/computelabel/testComputeLabelDiagram.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/computelabel/testComputeLabelDiagram.odesign index 669332ef40..17a5a80c97 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/computelabel/testComputeLabelDiagram.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/computelabel/testComputeLabelDiagram.odesign @@ -73,7 +73,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:self"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EPackage" referenceName="eSubpackages" variableName="package"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="new EPackage<%eContainer().eContents().filter("EPackage").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'new EPackage' + self.eContainer().eContents()->filter(ecore::EPackage)->size()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.cleanInterpreter()"/> </firstModelOperations> @@ -105,7 +105,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.cleanInterpreter()"/> </firstModelOperations> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/dynamicInstance/component.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/dynamicInstance/component.odesign index 683761407d..3d132fb890 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/dynamicInstance/component.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/dynamicInstance/component.odesign @@ -4,7 +4,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="ComponentDiagramWithPrefix" domainClass="component.Application"> <metamodel href="component.ecore#/"/> <defaultLayer name="Default"> - <edgeMappings name="ConnectionMapping" semanticCandidatesExpression="<%connections%>" sourceMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetFinderExpression="<%outputPorts%>" sourceFinderExpression="<%inputPorts%>" domainClass="component.Connection" useDomainElement="true"> + <edgeMappings name="ConnectionMapping" semanticCandidatesExpression="aql:self.connections" sourceMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetFinderExpression="aql:self.outputPorts" sourceFinderExpression="aql:self.inputPorts" domainClass="component.Connection" useDomainElement="true"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <beginLabelStyleDescription labelExpression="input"> @@ -18,16 +18,16 @@ </endLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="ComponentMapping" semanticCandidatesExpression="<%components%>" domainClass="component.Component"> - <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="<%ports%>" domainClass="component.Port"> + <containerMappings name="ComponentMapping" semanticCandidatesExpression="aql:self.components" domainClass="component.Component"> + <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="aql:self.ports" domainClass="component.Port"> <style xsi:type="style:DotDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </borderedNodeMappings> - <subContainerMappings name="SubComponentMapping" semanticCandidatesExpression="<%subComponents%>" domainClass="component.Component" reusedContainerMappings="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"> - <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="<%ports%>" domainClass="component.Port"> + <subContainerMappings name="SubComponentMapping" semanticCandidatesExpression="aql:self.subComponents" domainClass="component.Component" reusedContainerMappings="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"> + <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="aql:self.ports" domainClass="component.Port"> <style xsi:type="style:DotDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -63,7 +63,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:Switch"> - <cases conditionExpression="<%$container.eClass.name == "Application"%>"> + <cases conditionExpression="aql:container.eClass().name = 'Application'"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="component.Component" referenceName="components"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="component"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="component"/> @@ -97,7 +97,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="ComponentDiagramWithoutPrefix" domainClass="Application"> <metamodel href="component.ecore#/"/> <defaultLayer name="Default"> - <edgeMappings name="ConnectionMapping" semanticCandidatesExpression="<%connections%>" sourceMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetFinderExpression="<%outputPorts%>" sourceFinderExpression="<%inputPorts%>" domainClass="Connection" useDomainElement="true"> + <edgeMappings name="ConnectionMapping" semanticCandidatesExpression="aql:self.connections" sourceMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetMapping="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='PortMapping'] //@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@borderedNodeMappings[name='PortMapping']" targetFinderExpression="aql:self.outputPorts" sourceFinderExpression="aql:self.inputPorts" domainClass="Connection" useDomainElement="true"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <beginLabelStyleDescription labelExpression="input"> @@ -111,16 +111,16 @@ </endLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="ComponentMapping" semanticCandidatesExpression="<%components%>" domainClass="Component"> - <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="<%ports%>" domainClass="Port"> + <containerMappings name="ComponentMapping" semanticCandidatesExpression="aql:self.components" domainClass="Component"> + <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="aql:self.ports" domainClass="Port"> <style xsi:type="style:DotDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </borderedNodeMappings> - <subContainerMappings name="SubComponentMapping" semanticCandidatesExpression="<%subComponents%>" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"> - <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="<%ports%>" domainClass="Port"> + <subContainerMappings name="SubComponentMapping" semanticCandidatesExpression="aql:self.subComponents" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='Component%20Viewpoint']/@ownedRepresentations[name='ComponentDiagramWithoutPrefix']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"> + <borderedNodeMappings name="PortMapping" semanticCandidatesExpression="aql:self.ports" domainClass="Port"> <style xsi:type="style:DotDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -156,7 +156,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:Switch"> - <cases conditionExpression="<%$container.eClass.name == "Application"%>"> + <cases conditionExpression="aql:container.eClass().name = 'Application'"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Component" referenceName="components"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="component"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="component"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/editors/traceability/vp1038/vp1038.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/editors/traceability/vp1038/vp1038.odesign index 785bbafded..a45be559b3 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/editors/traceability/vp1038/vp1038.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/editors/traceability/vp1038/vp1038.odesign @@ -46,7 +46,7 @@ <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="Trace Table" domainClass="EPackage"> <ownedLineMappings domainClass="EPackage"> <ownedSubLines domainClass="EClass"> - <ownedSubLines domainClass="EReference" semanticCandidatesExpression="<%eContents.filter("EReference")%>"> + <ownedSubLines domainClass="EReference" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EReference)"> <ownedSubLines domainClass="EAnnotation" semanticCandidatesExpression="<%eContents.filter("EAnnotation")%>"/> </ownedSubLines> </ownedSubLines> @@ -56,18 +56,18 @@ <ownedRepresentations xsi:type="description_2:CrossTableDescription" name="Trace CrossTable" domainClass="EPackage"> <ownedLineMappings name="EPackage" domainClass="EPackage"> <ownedSubLines name="EClass" domainClass="EClass"> - <ownedSubLines name="EAttribute" domainClass="EAttribute" semanticCandidatesExpression="<%eContents.filter("EAttribute")%>"/> + <ownedSubLines name="EAttribute" domainClass="EAttribute" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EAttribute)"/> </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="EPackage" domainClass="EPackage"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_3:TreeDescription" name="Trace Tree" domainClass="EPackage"> - <subItemMappings name="EPackage" domainClass="EPackage" semanticCandidatesExpression="<%eAllContents.filter("EPackage")%>"> + <subItemMappings name="EPackage" domainClass="EPackage" semanticCandidatesExpression="aql:self.eAllContents()->filter(ecore::EPackage)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </defaultStyle> - <subItemMappings name="EClass" domainClass="EClass" semanticCandidatesExpression="<%self.eClassifiers.filter("EClass")%>"> + <subItemMappings name="EClass" domainClass="EClass" semanticCandidatesExpression="aql:self.eClassifiers->filter(ecore::EClass)"> <defaultStyle> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.5/My.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.5/My.odesign index d526855b4c..0fef047353 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.5/My.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.5/My.odesign @@ -105,7 +105,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="DiagType6" titleExpression="aql:'DiagType6 of ' + self.name" domainClass="EPackage"> <nodeMappings name="DT6_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="EClass"> - <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="<%eReferences.eReferenceType%>" domainClass="EClass"> + <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="aql:self.eReferences.eReferenceType" domainClass="EClass"> <style xsi:type="style:SquareDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.6/My.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.6/My.odesign index d526855b4c..0fef047353 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.6/My.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/3.6/My.odesign @@ -105,7 +105,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="DiagType6" titleExpression="aql:'DiagType6 of ' + self.name" domainClass="EPackage"> <nodeMappings name="DT6_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="EClass"> - <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="<%eReferences.eReferenceType%>" domainClass="EClass"> + <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="aql:self.eReferences.eReferenceType" domainClass="EClass"> <style xsi:type="style:SquareDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/My.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/My.odesign index d526855b4c..0fef047353 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/My.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/data/My.odesign @@ -105,7 +105,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="DiagType6" titleExpression="aql:'DiagType6 of ' + self.name" domainClass="EPackage"> <nodeMappings name="DT6_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="EClass"> - <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="<%eReferences.eReferenceType%>" domainClass="EClass"> + <borderedNodeMappings name="DT6_ClassInRelation" semanticCandidatesExpression="aql:self.eReferences.eReferenceType" domainClass="EClass"> <style xsi:type="style:SquareDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/layouts.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/layouts.odesign index d993dd10a2..82b49e80c7 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/layouts.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/layouts.odesign @@ -4,7 +4,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Top/Bottom Container Ports And Edges" domainClass="EPackage"> <layout xsi:type="description_1:CompositeLayout"/> <defaultLayer name="Default"> - <edgeMappings name="EReference to EType" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetFinderExpression="<%eType.eStructuralFeatures%>"> + <edgeMappings name="EReference to EType" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetFinderExpression="aql:self.eType.eStructuralFeatures"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -20,7 +20,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> </borderedNodeMappings> - <subContainerMappings name="EClass Child" semanticCandidatesExpression="<%~eSuperTypes%>" domainClass="EClass" reusedBorderedNodeMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" reusedContainerMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@subContainerMappings[name='EClass%20Child']"> + <subContainerMappings name="EClass Child" semanticCandidatesExpression="aql:self.eInverse('eSuperTypes')" domainClass="EClass" reusedBorderedNodeMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" reusedContainerMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Top%2FBottom%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@subContainerMappings[name='EClass%20Child']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -114,7 +114,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Bottom/Top Container Ports And Edges" domainClass="EPackage"> <layout xsi:type="description_1:CompositeLayout" direction="bottomToTop"/> <defaultLayer name="Default"> - <edgeMappings name="EReference to EType" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetFinderExpression="<%eType.eStructuralFeatures%>"> + <edgeMappings name="EReference to EType" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetMapping="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" targetFinderExpression="aql:self.eType.eStructuralFeatures"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -130,7 +130,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> </borderedNodeMappings> - <subContainerMappings name="EClass Child" semanticCandidatesExpression="<%~eSuperTypes%>" domainClass="EClass" reusedBorderedNodeMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" reusedContainerMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@subContainerMappings[name='EClass%20Child']"> + <subContainerMappings name="EClass Child" semanticCandidatesExpression="aql:self.eInverse('eSuperTypes')" domainClass="EClass" reusedBorderedNodeMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@borderedNodeMappings[name='EStructuralFeature%20Port']" reusedContainerMappings="//@ownedViewpoints[name='ArrangeAll']/@ownedRepresentations[name='Bottom%2FTop%20Container%20Ports%20And%20Edges']/@defaultLayer/@containerMappings[name='EClass%20Container']/@subContainerMappings[name='EClass%20Child']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/pinning/description/tc1825.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/pinning/description/tc1825.odesign index 5938c75cab..4f344774d3 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/pinning/description/tc1825.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/pinning/description/tc1825.odesign @@ -40,7 +40,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Class<%eContainer.eContents.filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Class' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/vp3089/vp-3089.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/vp3089/vp-3089.odesign index ffc99ee9f6..e2a4fa98d7 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/vp3089/vp-3089.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layout/vp3089/vp-3089.odesign @@ -1,17 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="My" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="My" version="10.0.0.201505222000"> <ownedViewpoints name="VP-3089"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="VP-3089" domainClass="EPackage"> <defaultLayer name="Default"> <nodeMappings name="clazz" domainClass="EClass"> <borderedNodeMappings name="port" semanticCandidatesExpression="var:self" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="port_<%name%>" sizeComputationExpression="1" resizeKind="NSEW"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'port_' + self.name" sizeComputationExpression="1" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> </borderedNodeMappings> - <style xsi:type="style:SquareDescription" labelExpression="node_<%name%>" resizeKind="NSEW"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'node_' + self.name" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> @@ -19,13 +19,13 @@ </nodeMappings> <containerMappings name="c" domainClass="EClass"> <subNodeMappings name="sub" semanticCandidatesExpression="var:self" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="sub_<%name%>" sizeComputationExpression="2" resizeKind="NSEW"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'sub_' + self.name" sizeComputationExpression="2" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> </subNodeMappings> - <style xsi:type="style:FlatContainerStyleDescription" labelExpression="container_<%name%>"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:'container_' + self.name"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/layoutingMode/vp2120.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/layoutingMode/vp2120.odesign index ef27cf5ffa..8583546db5 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/layoutingMode/vp2120.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/layoutingMode/vp2120.odesign @@ -73,7 +73,7 @@ <element name="element"/> <elementView name="elementView"/> <initialOperation> - <firstModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%name%>_RENAMMED"/> + <firstModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:self.name + '_RENAMMED'"/> </initialOperation> </ownedTools> </toolSections> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/2182.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/2182.odesign index 8721b8ec1b..2054c9d838 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/2182.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/2182.odesign @@ -31,7 +31,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="RefToEAnnot TC1" deletionDescription="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20RefToAnnot']" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.4/@ownedTools[name='RefToEAnnotEdit']" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EAnnot%20TC1'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="<%eAnnotations%>" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.3/@ownedTools[name='Reconnect%20RefToEAnnot']"> + <edgeMappings name="RefToEAnnot TC1" deletionDescription="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20RefToAnnot']" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.4/@ownedTools[name='RefToEAnnotEdit']" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EAnnot%20TC1'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="aql:self.eAnnotations" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@toolSections.3/@ownedTools[name='Reconnect%20RefToEAnnot']"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> <centerLabelStyleDescription labelExpression="RefToEAnnot"> @@ -62,7 +62,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="A<%getRootContainer().eAllContents.filter("EAnnotation").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="aql:'A' + self.eResource().getContent()->first().eAllContents()->filter(ecore::EAnnotation)->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -77,7 +77,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -199,7 +199,7 @@ </toolSections> </defaultLayer> <additionalLayers name="Imbricated EdgeMapping" activeByDefault="true"> - <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/> <beginLabelStyleDescription labelExpression="aql:self.name"> @@ -210,7 +210,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="aql:'EMc ' + self.name"> @@ -218,7 +218,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelSize="12" labelExpression="aql:'EMb ' + self.name"> @@ -305,17 +305,17 @@ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> </style> </edgeMappings> - <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="<%eType + eContainer().eContents().filter("EAnnotation").references%>" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="aql:self.eType + self.eContainer().eContents()->filter(ecore::EAnnotation).references" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </edgeMappings> - <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> </style> </edgeMappings> - <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="<%eAnnotations%>"> + <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="aql:self.eAnnotations"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> </style> @@ -357,7 +357,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -501,7 +501,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </nodeMappings> - <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="EMc"> @@ -509,7 +509,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelExpression="EMb"> @@ -562,7 +562,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_diagram/2182-dnd.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_diagram/2182-dnd.odesign index 021935d43a..4e7d882d83 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_diagram/2182-dnd.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_diagram/2182-dnd.odesign @@ -54,7 +54,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="A<%getRootContainer().eAllContents.filter("EAnnotation").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="aql:'A' + self.eResource().getContent()->first().eAllContents()->filter(ecore::EAnnotation)->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -69,7 +69,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -200,7 +200,7 @@ </toolSections> </defaultLayer> <additionalLayers name="Imbricated EdgeMapping" activeByDefault="true"> - <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/> <centerLabelStyleDescription labelExpression="aql:'EMd ' + self.name"> @@ -208,7 +208,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="aql:'EMc ' + self.name"> @@ -216,7 +216,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@toolSections.0/@ownedTools[name='EMb']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@toolSections.0/@ownedTools[name='EMb']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelSize="12" labelExpression="aql:'EMb ' + self.name"> @@ -303,17 +303,17 @@ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> </style> </edgeMappings> - <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="<%eType + eContainer().eContents().filter("EAnnotation").references%>" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="aql:self.eType + self.eContainer().eContents()->filter(ecore::EAnnotation).references" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </edgeMappings> - <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> </style> </edgeMappings> - <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="<%eAnnotations%>"> + <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="aql:self.eAnnotations"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> </style> @@ -355,7 +355,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -499,7 +499,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </nodeMappings> - <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="EMc"> @@ -507,7 +507,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelExpression="EMb"> @@ -560,7 +560,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_model_content/2182-dnd.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_model_content/2182-dnd.odesign index a0c94f6865..1a7195fd33 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_model_content/2182-dnd.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/edges_on_edges/drag_and_drop/from_model_content/2182-dnd.odesign @@ -54,7 +54,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="A<%getRootContainer().eAllContents.filter("EAnnotation").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="aql:'A' + self.eResource().getContent()->first().eAllContents()->filter(ecore::EAnnotation)->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -69,7 +69,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -193,10 +193,10 @@ <newViewContainer name="newContainerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%$element.filter("EClass").nSize > 0%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:element.oclIsKindOf(ecore::EClass)"> <subModelOperations xsi:type="tool_1:MoveElement" newContainerExpression="var:newSemanticContainer" featureName="eClassifiers"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%$element.filter("EAnnotation").nSize > 0%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:element.oclIsKindOf(ecore::EAnnotation)"> <subModelOperations xsi:type="tool_1:MoveElement" newContainerExpression="var:newSemanticContainer" featureName="eAnnotations"/> </subModelOperations> </firstModelOperations> @@ -205,7 +205,7 @@ </toolSections> </defaultLayer> <additionalLayers name="Imbricated EdgeMapping" activeByDefault="true"> - <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMd TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMc%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/> <centerLabelStyleDescription labelExpression="aql:'EMd ' + self.name"> @@ -213,7 +213,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC1" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@edgeMappings[name='EMb%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="aql:'EMc ' + self.name"> @@ -221,7 +221,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@toolSections.0/@ownedTools[name='EMb']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMb TC1" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@additionalLayers[name='Imbricated%20EdgeMapping']/@toolSections.0/@ownedTools[name='EMb']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC1']/@defaultLayer/@edgeMappings[name='EMa%20TC1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelSize="12" labelExpression="aql:'EMb ' + self.name"> @@ -308,17 +308,17 @@ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> </style> </edgeMappings> - <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="<%eType + eContainer().eContents().filter("EAnnotation").references%>" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMa TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMb%20TC3']" targetFinderExpression="aql:self.eType + self.eContainer().eContents()->filter(ecore::EAnnotation).references" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </edgeMappings> - <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC3" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3'] //@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC3']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> </style> </edgeMappings> - <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="<%eAnnotations%>"> + <edgeMappings name="RefToEAnnot TC3" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@edgeMappings[name='EMa%20TC3']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC3']/@defaultLayer/@nodeMappings[name='EAnnot%20TC3']" targetFinderExpression="aql:self.eAnnotations"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> </style> @@ -360,7 +360,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -504,7 +504,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </nodeMappings> - <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer() + eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EMc TC4" preconditionExpression="aql:self.eOpposite = null" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMb%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:OrderedSet{self.eContainer()} + self.eContainer().eContents()->filter(ecore::EAnnotation).references->asSet()" domainClass="EReference" useDomainElement="true"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_purple']"/> <centerLabelStyleDescription labelExpression="EMc"> @@ -512,7 +512,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<% eContainer().eContents().filter("EAnnotation").references%>" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> + <edgeMappings name="EMb TC4" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.3/@ownedTools[name='EReference%20Name']" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@edgeMappings[name='EMa%20TC4']" targetMapping="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@nodeMappings[name='EC%20EClass%20TC4']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer().eContents()->filter(EAnnotation).references" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='doremi_2182']/@ownedRepresentations[name='doremi-2182_TC4']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectEReference']"> <style sizeComputationExpression="3"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_yellow']"/> <centerLabelStyleDescription labelExpression="EMb"> @@ -565,7 +565,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/trac1926.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/trac1926.odesign index 33c3a2bff2..707dd851ae 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/trac1926.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/mappings/trac1926.odesign @@ -12,19 +12,19 @@ <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@containerMappings[name='M3']"/> </filters> <defaultLayer name="DL"> - <nodeMappings name="M1" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("n")]%>" domainClass="EClass"> + <nodeMappings name="M1" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('n'))" domainClass="EClass"> <style xsi:type="style:SquareDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </nodeMappings> - <edgeMappings name="M2" sourceMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']" targetMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']" targetFinderExpression="<%eStructuralFeatures.eType.nMinimize%>"> + <edgeMappings name="M2" sourceMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']" targetMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']" targetFinderExpression="aql:self.eStructuralFeatures.eType->asSet()"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </edgeMappings> - <containerMappings name="M3" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("c")]%>" domainClass="EClass"> + <containerMappings name="M3" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('c'))" domainClass="EClass"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -34,7 +34,7 @@ </containerMappings> </defaultLayer> <additionalLayers name="OL1"> - <nodeMappings xsi:type="description_1:NodeMappingImport" name="MI1" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("n")]%>" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']"> + <nodeMappings xsi:type="description_1:NodeMappingImport" name="MI1" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('n'))" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']"> <style xsi:type="style:SquareDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -48,7 +48,7 @@ </style> </conditionnalStyles> </edgeMappingImports> - <containerMappings xsi:type="description_1:ContainerMappingImport" name="MI3" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("c")]%>" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@containerMappings[name='M3']"> + <containerMappings xsi:type="description_1:ContainerMappingImport" name="MI3" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('c'))" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@containerMappings[name='M3']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -60,7 +60,7 @@ </ownedRepresentations> <ownedRepresentationExtensions xsi:type="description_1:DiagramExtensionDescription" name="DE1" viewpointURI="viewpoint:/org.eclipse.sirius.tests.junit/trac1926" representationName="D1"> <layers name="OL2"> - <nodeMappings xsi:type="description_1:NodeMappingImport" name="MIE1" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("n")]%>" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']"> + <nodeMappings xsi:type="description_1:NodeMappingImport" name="MIE1" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('n'))" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@nodeMappings[name='M1']"> <style xsi:type="style:SquareDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -74,7 +74,7 @@ </style> </conditionnalStyles> </edgeMappingImports> - <containerMappings xsi:type="description_1:ContainerMappingImport" name="MIE3" semanticCandidatesExpression="<%eAllContents("EClass")[name.startsWith("c")]%>" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@containerMappings[name='M3']"> + <containerMappings xsi:type="description_1:ContainerMappingImport" name="MIE3" semanticCandidatesExpression="aql:self.eAllContents(ecore::EClass)->select( e | e.name.startsWith('c'))" importedMapping="//@ownedViewpoints[name='trac1926']/@ownedRepresentations[name='D1']/@defaultLayer/@containerMappings[name='M3']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/ecore_with_blank.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/ecore_with_blank.odesign index b8f3f74fa3..61ff9b8500 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/ecore_with_blank.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/ecore_with_blank.odesign @@ -19,7 +19,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> <fixes name="Remove Element"> <initialOperation> <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.target"> @@ -28,7 +28,7 @@ </initialOperation> </fixes> </ownedRules> - <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="The <%target.name%> class has more than 3 super types" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> + <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name + ' class has more than 3 super types'" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> </ownedRules> </validationSet> @@ -40,7 +40,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%containment && derived%>"> + <conditionnalStyles predicateExpression="aql:self.containment and self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.render()"> @@ -49,7 +49,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!containment && derived%>"> + <conditionnalStyles predicateExpression="aql:not self.containment and self.derived"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.render()"> @@ -74,7 +74,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.targetNode.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:view.targetNode->filter(ecore::EClass)->select( e | e.interface)->size() > 0"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -83,10 +83,10 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="Bi-directional EC_EReference " semanticCandidatesExpression="<%getEOppositeEReferences(eAllContents("EReference"))%>" semanticElements="<%self + eOpposite%>" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20External%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20External%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" targetExpression="" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="Bi-directional EC_EReference " semanticCandidatesExpression="aql:self.getEOppositeEReferences(self.eAllContents(ecore::EReference))" semanticElements="aql:Sequence{self} + Sequence{self.eOpposite}" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20External%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20External%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" targetExpression="" domainClass="EReference" useDomainElement="true"> <style targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%if (derived) {%>/<%}%><%getEOppositeEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql: if self.derived then '/' + self.getEOppositeEReferenceName() else self.getEOppositeEReferenceName() endif"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -137,7 +137,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%eContents.filter("EDataType")[eClass.name == "EDataType"]%>" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EDataType)->select( e | e.self.eClass().name = 'ecore::EDataType')" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -146,7 +146,7 @@ </style> </containerMappings> <containerMappings name="EC External EClass" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass) - self.eContents()->filter(ecore::EClass)" createElements="false" domainClass="EClass" dropDescriptions="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.1/@ownedTools[name='Drop%20attribute'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.1/@ownedTools[name='Drop%20operation']" childrenPresentation="List"> - <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="<%name%> in <%eResourceName%>" backgroundStyle="GradientTopToBottom"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="aql:self.name + ' in ' + self.eResource().getURI().lastSegment()" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> @@ -179,7 +179,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -284,7 +284,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -544,9 +544,9 @@ </subModelOperations> </firstModelOperation> </ownedCreateLine> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%if (filter("EStructuralFeature").derived) {%>/<%}%><%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql: if self.derived then '/' + self.name else self.name endif"/> </ownedRepresentations> - <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Drop%20EClass%20from%20treeview'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@additionalLayers[name='Blank%20Layer%20Package']/@toolSections.0/@ownedTools[name='Package%20from%20treeview%20and%20diagram']" name="Blank Entities" titleExpression="blank diagram for <%name%> package" domainClass="EPackage"> + <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Drop%20EClass%20from%20treeview'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@additionalLayers[name='Blank%20Layer%20Package']/@toolSections.0/@ownedTools[name='Package%20from%20treeview%20and%20diagram']" name="Blank Entities" titleExpression="aql:'blank diagram for ' + self.name + ' package'" domainClass="EPackage"> <filters xsi:type="filter:CompositeFilterDescription" name="Hide class content"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']/@subNodeMappings[name='EC%20EAttribute'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']/@subNodeMappings[name='Operation']"/> </filters> @@ -564,14 +564,14 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> - <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="The <%target.name%> class has more than 3 super types" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> + <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name + ' class has more than 3 super types'" targets="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> </ownedRules> </validationSet> <defaultLayer name="Default"> - <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="<%eClassifiers.filter("EClass").eStructuralFeatures.filter("EReference")[!eOpposite]%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.1/@ownedTools[name='ReconnectBlankEReference']"> + <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="aql:self.eClassifiers->filter(ecore::EClass).eStructuralFeatures->filter(ecore::EReference)->select( e | e.eOpposite = null)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.1/@ownedTools[name='ReconnectBlankEReference']"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="aql:self.render()"> @@ -587,10 +587,10 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="Blank Bi-directional EC_EReference " semanticCandidatesExpression="<%getEOppositeEReferences(eClassifiers.filter("EClass").eStructuralFeatures.filter("EReference"))%>" semanticElements="<%self + eOpposite%>" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" targetExpression="" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="Blank Bi-directional EC_EReference " semanticCandidatesExpression="aql:self.getEOppositeEReferences(self.eClassifiers->filter(ecore::EClass).eStructuralFeatures->filter(ecore::EReference))" semanticElements="aql:Sequence{self} + Sequence{self.eOpposite}" sourceMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" targetExpression="" domainClass="EReference" useDomainElement="true"> <style targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%if (derived) {%>/<%}%><%getEOppositeEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql: if self.derived then '/' + self.getEOppositeEReferenceName() else self.getEOppositeEReferenceName() endif"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -603,7 +603,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EClass")%>" createElements="false" domainClass="EClass" childrenPresentation="List"> + <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="EC EAttribute" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> <style xsi:type="style:BundledImageDescription" labelExpression="aql:self.render()" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -634,7 +634,7 @@ </style> </conditionnalStyles> </containerMappings> - <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EEnum")%>" createElements="false" domainClass="EEnum" childrenPresentation="List"> + <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EEnum)" createElements="false" domainClass="EEnum" childrenPresentation="List"> <subNodeMappings name="EC EEnumLiteral" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="ocl:eLiterals" domainClass="EEnumLiteral"> <style xsi:type="style:BundledImageDescription" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -649,7 +649,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EDataType")%>" createElements="false" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EDataType)" createElements="false" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -692,7 +692,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -1055,7 +1055,7 @@ <ownedViewpoints endUserDocumentation="Provides representations to assess the quality of an Ecore model." name="Quality" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Dependencies" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="<%((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainer("EPackage").nMinimize - self%>"> + <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="aql:((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainerOrSelf(ecore::EPackage)->asSet() - OrderedSet{self}"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription> @@ -1063,7 +1063,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%self + eAllContents("EPackage")%>" domainClass="EPackage"> + <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:Sequence{self} + self.eAllContents(ecore::EPackage)" domainClass="EPackage"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelSize="10" labelExpression="aql:self.name + ' : ' + self.nsURI" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1169,7 +1169,7 @@ </containerMappings> </additionalLayers> <additionalLayers name="Uses"> - <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="<%eAllStructuralFeatures.filter("EReference").eType%>" sourceFinderExpression="" domainClass="EReference"> + <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="aql:self.eAllStructuralFeatures->filter(ecore::EReference).eType" sourceFinderExpression="" domainClass="EReference"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -1286,7 +1286,7 @@ </ownedRepresentationExtensions> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides representation to document and review Ecore models." name="Review" modelFileExtension="ecore"> - <ownedRepresentations xsi:type="description_2:CrossTableDescription" name="Tags" titleExpression="Tags for <%name%> package" domainClass="EPackage" initialHeaderColumnWidth="30"> + <ownedRepresentations xsi:type="description_2:CrossTableDescription" name="Tags" titleExpression="aql:'Tags for ' + self.name + ' package'" domainClass="EPackage" initialHeaderColumnWidth="30"> <ownedLineMappings name="Tags EClassifiers" semanticElements="var:self" domainClass="EClassifier" semanticCandidatesExpression="" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"> <defaultForeground labelSize="8"> <labelFormat>bold</labelFormat> @@ -1294,15 +1294,15 @@ </defaultForeground> <ownedSubLines name="Tag EStructural Features" domainClass="EStructuralFeature" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"/> </ownedLineMappings> - <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="<%getRootContainer.eAnnotations[source=="Tags"].details%>"/> - <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="TagValues"]%>" domainClass="EAnnotation"> + <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAnnotations->select( e | e.source='Tags').details"/> + <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="aql:self.eAllContents(EAnnotation)->select( e | e.source='TagValues')" domainClass="EAnnotation"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0.nSize == 0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0->size() = 0"> <subModelOperations xsi:type="tool:Unset" featureName="references" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1313,12 +1313,12 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="TagValues"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='TagValues')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="TagValues"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> <subModelOperations xsi:type="tool:SetValue" featureName="references" valueExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1330,12 +1330,12 @@ <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:self.eResource().getContents()->first()"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="Tags"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='Tags')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="Tags"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eAnnotations[source=="Tags"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eAnnotations->select( e | e.source='Tags')"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="NEWTAG"/> </subModelOperations> @@ -1343,7 +1343,7 @@ </firstModelOperation> </createColumn> </ownedRepresentations> - <ownedRepresentations xsi:type="description_2:CrossTableDescription" endUserDocumentation="Document the concepts in a package." name="Documentation" titleExpression="Documentation for <%name%> package" domainClass="EPackage"> + <ownedRepresentations xsi:type="description_2:CrossTableDescription" endUserDocumentation="Document the concepts in a package." name="Documentation" titleExpression="aql:'Documentation for ' + self.name + ' package'" domainClass="EPackage"> <ownedLineMappings name="Doc EClassifiers" semanticElements="var:self" domainClass="EClassifier" semanticCandidatesExpression="feature:eContents" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"> <defaultBackground> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> @@ -1355,7 +1355,7 @@ </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Doc Root" headerLabelExpression="Domain Documentation" domainClass="EPackage" semanticCandidatesExpression="aql:self.eResource().getContents()->at(1)"/> - <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="<%eContainer("EAnnotation").eContainer()%>" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>" domainClass="EStringToStringMapEntry"> + <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="aql:self.eContainerOrSelf(ecore::EAnnotation).eContainer()" semanticCandidatesExpression="aql:self.eAllContents(ecore::EAnnotation)->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel').details->select(d | d.key='documentation')" domainClass="EStringToStringMapEntry"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -1372,19 +1372,19 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="http://www.eclipse.org/emf/2002/GenModel"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%self.details[key=="documentation"].nSize == 0%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details" variableName="newDetail"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel'].details[key='documentation')"> <subModelOperations xsi:type="tool:SetValue" featureName="value" valueExpression="var:arg0"/> </subModelOperations> </firstModelOperation> @@ -1396,7 +1396,7 @@ <ownedViewpoints endUserDocumentation="Adds support for EMF GenModel configuration." name="Generation" modelFileExtension="genmodel"> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="GenPackage Attributes" domainClass="GenPackage"> <ownedLineMappings name="GenClass" domainClass="GenClass" headerLabelExpression="aql:self.ecoreClass.name"> - <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="<%eAllContents("GenFeature")[ecoreFeature.filter("EAttribute") || (ecoreFeature.filter("EReference") && !ecoreFeature.filter("EReference").containment && !ecoreFeature.filter("EReference").derived) ]%>" headerLabelExpression="aql:self.ecoreFeature.name"> + <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="aql:self.eAllContents(genmodel::GenFeature)->select( e | e.ecoreFeature->filter(ecore::EAttribute) or (e.ecoreFeature.oclIsKindOf(ecore::EReference) and not e.ecoreFeature->filter(ecore::EReference).containment and not ecoreFeature.derived) )" headerLabelExpression="aql:self.ecoreFeature.name"> <backgroundConditionalStyle predicateExpression="aql:self.propertyCategory = ''"> <style> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase1/description/base1.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase1/description/base1.odesign index 865acc2ca2..3dbaa5d2d4 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase1/description/base1.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase1/description/base1.odesign @@ -13,7 +13,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base1']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name+' class has more than 4 super types'" targets="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base1']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> @@ -23,14 +23,14 @@ <edgeMappings name="TEC_EReference Base1" labelDirectEdit="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="feature:eAllContents" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base1']" targetMapping="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base1']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> <conditionnalStyles predicateExpression="aql:self.containment"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -46,7 +46,7 @@ </edgeMappings> <containerMappings name="TEC EClass Base1" labelDirectEdit="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="TEC EAttribute" labelDirectEdit="//@ownedViewpoints[name='Base1WithTemplate']/@ownedRepresentations[name='Entities1']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> - <style xsi:type="style:BundledImageDescription" labelExpression="<%name%> : <%eType.name%>" labelAlignment="LEFT" sizeComputationExpression="1"> + <style xsi:type="style:BundledImageDescription" labelExpression="aql:self.name + ' : ' + self.eType.name" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -149,7 +149,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase2/description/base2.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase2/description/base2.odesign index 81ecd308d3..e12a5b3744 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase2/description/base2.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/modelers/ecore/javaextension/description/ViewpointTestProjectBase2/description/base2.odesign @@ -13,7 +13,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base2']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name+' class has more than 4 super types'" targets="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base2']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> @@ -23,14 +23,14 @@ <edgeMappings name="TEC_EReference Base2" labelDirectEdit="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="feature:eAllContents" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base2']" targetMapping="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@containerMappings[name='TEC%20EClass%20Base2']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> <conditionnalStyles predicateExpression="aql:self.containment"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -46,7 +46,7 @@ </edgeMappings> <containerMappings name="TEC EClass Base2" labelDirectEdit="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="TEC EAttribute Base2" labelDirectEdit="//@ownedViewpoints[name='Base2WithTemplate']/@ownedRepresentations[name='Entities2']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> - <style xsi:type="style:BundledImageDescription" labelExpression="<%name%> : <%eType.name%>" labelAlignment="LEFT" sizeComputationExpression="1"> + <style xsi:type="style:BundledImageDescription" labelExpression="aql:self.name + ' : ' + self.eType.name" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -149,7 +149,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/contribution_tests.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/contribution_tests.odesign index df623f360b..ff6585b613 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/contribution_tests.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/contribution_tests.odesign @@ -37,7 +37,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </nodeMappings> - <edgeMappings name="Ref" sourceMapping="//@ownedViewpoints[name='V']/@ownedRepresentations[name='D']/@defaultLayer/@nodeMappings[name='Class']" targetMapping="//@ownedViewpoints[name='V']/@ownedRepresentations[name='D']/@defaultLayer/@nodeMappings[name='Class']" targetFinderExpression="<%eAlStructuralFeatures.eType%>"> + <edgeMappings name="Ref" sourceMapping="//@ownedViewpoints[name='V']/@ownedRepresentations[name='D']/@defaultLayer/@nodeMappings[name='Class']" targetMapping="//@ownedViewpoints[name='V']/@ownedRepresentations[name='D']/@defaultLayer/@nodeMappings[name='Class']" targetFinderExpression="aql:self.eAlStructuralFeatures.eType"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction.odesign index a15924398d..ab8ec1910d 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction.odesign @@ -1,20 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_2="http://www.eclipse.org/sirius/diagram/sequence/description/tool/2.0.0" name="Interaction" version="10.0.0.201505222000"> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions" label="Interactions" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -46,7 +46,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -93,7 +93,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -101,7 +101,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -125,7 +125,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -831,7 +831,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -889,9 +889,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -911,7 +911,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -990,12 +990,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -1012,12 +1012,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -1079,7 +1079,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -1099,7 +1099,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -1123,7 +1123,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -1143,7 +1143,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -1163,7 +1163,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -1177,7 +1177,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -1249,7 +1249,7 @@ </defaultLayer> <additionalLayers name="Lost Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1284,7 +1284,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1317,7 +1317,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1351,7 +1351,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1386,7 +1386,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1422,7 +1422,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1460,7 +1460,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -1470,7 +1470,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -1533,7 +1533,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -1543,7 +1543,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -1593,7 +1593,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1626,7 +1626,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1660,7 +1660,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1695,7 +1695,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1731,7 +1731,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1774,20 +1774,20 @@ <ownedJavaExtensions qualifiedClassName="org.eclipse.sirius.sample.interactions.services.helpers"/> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions_Copy1" label="Interactions_Copy1" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -1819,7 +1819,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1866,7 +1866,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -1874,7 +1874,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1898,7 +1898,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -2604,7 +2604,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -2662,9 +2662,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -2684,7 +2684,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -2763,12 +2763,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -2785,12 +2785,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -2852,7 +2852,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -2872,7 +2872,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -2896,7 +2896,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -2916,7 +2916,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -2936,7 +2936,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -2950,7 +2950,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -3022,7 +3022,7 @@ </defaultLayer> <additionalLayers name="Lost Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3057,7 +3057,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3090,7 +3090,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3124,7 +3124,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3159,7 +3159,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3195,7 +3195,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3233,7 +3233,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -3243,7 +3243,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -3306,7 +3306,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -3316,7 +3316,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -3366,7 +3366,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3399,7 +3399,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3433,7 +3433,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3468,7 +3468,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3504,7 +3504,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3547,20 +3547,20 @@ <ownedJavaExtensions qualifiedClassName="org.eclipse.sirius.sample.interactions.services.helpers"/> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions_Copy2" label="Interactions_Copy2" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -3592,7 +3592,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -3639,7 +3639,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -3647,7 +3647,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -3671,7 +3671,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -4377,7 +4377,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -4435,9 +4435,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -4457,7 +4457,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -4536,12 +4536,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -4558,12 +4558,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -4625,7 +4625,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -4645,7 +4645,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -4669,7 +4669,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -4689,7 +4689,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -4709,7 +4709,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -4723,7 +4723,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -4795,7 +4795,7 @@ </defaultLayer> <additionalLayers name="Lost Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4830,7 +4830,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4863,7 +4863,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4897,7 +4897,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4932,7 +4932,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4968,7 +4968,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5006,7 +5006,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -5016,7 +5016,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -5079,7 +5079,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -5089,7 +5089,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -5139,7 +5139,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5172,7 +5172,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5206,7 +5206,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5241,7 +5241,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5277,7 +5277,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction_modified.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction_modified.odesign index da2cd72583..dec96a9aec 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction_modified.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/interaction_modified.odesign @@ -1,20 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/sequence/description/tool/2.0.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_2="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" name="Interaction" version="10.0.0.201505222000"> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions" label="Interactions" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.1/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.1/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -46,7 +46,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -93,7 +93,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -101,7 +101,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.6/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.6/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.6/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.6/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -176,7 +176,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -234,9 +234,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -256,7 +256,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -319,7 +319,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -990,12 +990,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -1012,12 +1012,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -1079,7 +1079,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -1099,7 +1099,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -1123,7 +1123,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -1143,7 +1143,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -1163,7 +1163,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -1177,7 +1177,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -1249,7 +1249,7 @@ </defaultLayer> <additionalLayers name="Lost+Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1284,7 +1284,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1317,7 +1317,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1351,7 +1351,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1386,7 +1386,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1422,7 +1422,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1460,7 +1460,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -1470,7 +1470,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -1533,7 +1533,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -1543,7 +1543,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -1593,7 +1593,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1626,7 +1626,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1660,7 +1660,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1695,7 +1695,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1731,7 +1731,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -1774,20 +1774,20 @@ <ownedJavaExtensions qualifiedClassName="org.eclipse.sirius.sample.interactions.services.helpers"/> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions_Copy1" label="Interactions_Copy1" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -1819,7 +1819,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1866,7 +1866,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -1874,7 +1874,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy1']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1898,7 +1898,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -2604,7 +2604,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -2662,9 +2662,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -2684,7 +2684,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -2763,12 +2763,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -2785,12 +2785,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -2852,7 +2852,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -2872,7 +2872,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -2896,7 +2896,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -2916,7 +2916,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -2936,7 +2936,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -2950,7 +2950,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -3022,7 +3022,7 @@ </defaultLayer> <additionalLayers name="Lost Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3057,7 +3057,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3090,7 +3090,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3124,7 +3124,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3159,7 +3159,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3195,7 +3195,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3233,7 +3233,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -3243,7 +3243,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -3306,7 +3306,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -3316,7 +3316,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -3366,7 +3366,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3399,7 +3399,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3433,7 +3433,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3468,7 +3468,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3504,7 +3504,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -3547,20 +3547,20 @@ <ownedJavaExtensions qualifiedClassName="org.eclipse.sirius.sample.interactions.services.helpers"/> </ownedViewpoints> <ownedViewpoints endUserDocumentation="Provides diagrams to model interactions between Ecore elements." name="Interactions_Copy2" label="Interactions_Copy2" modelFileExtension="interactions"> - <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="<%ends && $eventEnds%>"> + <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" endUserDocumentation="Sequence diagram for Ecore interactions." name="Sequence Diagram on Interaction" label="Sequence Diagram on Interaction" titleExpression="aql'Sequence Diagram on ' + self.name" domainClass="interactions.Interaction" endsOrdering="aql:self.ends->size() > 0 and eventEnds->size() > 0"> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseExec" label="Collapse Executions"> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution']"/> </filters> <defaultLayer name="Default"> <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="Participant" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Delete%20Participant']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.2/@ownedTools[name='Edit%20Participant']" semanticCandidatesExpression="aql:self.participants" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant"> <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Lifeline" semanticCandidatesExpression="var:self" semanticElements="var:self" synchronizationLock="true" domainClass="interactions.Participant" startingEndFinderExpression="var:self" finishingEndFinderExpression="var:self"> - <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="Execution" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.4/@ownedTools[name='Delete%20Execution']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.Execution" reusedBorderedNodeMappings="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='State']" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="" resizeKind="NORTH_SOUTH" width="2" height="5" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Interpolated%20blue%20for%20Executions']"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="<%currentParticipant.getDirectEventsOn(self)%>" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> + <borderedNodeMappings xsi:type="description_1:StateMapping" name="State" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Delete%20State']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.5/@ownedTools[name='Edit%20State']" semanticCandidatesExpression="aql:currentParticipant().getDirectEventsOn(self)" semanticElements="aql:OrderedSet{self}->including(self.start)->including(self.end)->including(self.currentParticipant())" synchronizationLock="true" domainClass="interactions.State" startingEndFinderExpression="aql:self.start" finishingEndFinderExpression="aql:self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Watery%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Skyblue']/@entries[name='High_Skyblue']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> <conditionnalStyles predicateExpression="aql:self.start = self.end"> <style xsi:type="style:EllipseNodeDescription" borderColor="//@userColorsPalettes[name='Skyblue']/@entries[name='Midnight_Skyblue']" labelSize="15" showIcon="false" labelColor="//@userColorsPalettes[name='Greens']/@entries[name='Flabber%20Green']" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='Dutch%20Seas']/@entries[name='Lavonne']" horizontalDiameterComputationExpression="12" verticalDiameterComputationExpression="3"/> @@ -3592,7 +3592,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="<%messages[sendingEnd == null && receivingEnd != null || sendingEnd !=null && receivingEnd == null ]%>" domainClass="interactions.Message"> + <nodeMappings name="Lost Message End" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages->select( e | e.sendingEnd = null and e.receivingEnd <> null or e.sendingEnd <>null and e.receivingEnd = null )" domainClass="interactions.Message"> <style xsi:type="style:DotDescription" labelExpression="" tooltipExpression="Lost end" sizeComputationExpression="1" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -3639,7 +3639,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="<%self.invocationMessage%>"> + <edgeMappings xsi:type="description_1:ReturnMessageMapping" name="Return Message" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.3/@ownedTools[name='Delete%20Message']" semanticCandidatesExpression="aql:self.messages" semanticElements="aql:self->asOrderedSet()->including(self.sendingEnd)->including(self.receivingEnd)->including(self.getSendingContext())->including(self.getReceivingContext())" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetMapping="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Participant']/@borderedNodeMappings[name='Lifeline']/@borderedNodeMappings[name='Execution'] //@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@nodeMappings[name='Lost%20Message%20End']" targetFinderExpression="aql:self.getReceivingContext()" sourceFinderExpression="aql:self.getSendingContext()" domainClass="interactions.ReturnMessage" useDomainElement="true" sendingEndFinderExpression="aql:self.sendingEnd" receivingEndFinderExpression="aql:self.receivingEnd" invocationMessageFinderExpression="aql:self.invocationMessage"> <style lineStyle="dot" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false"> @@ -3647,7 +3647,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%self + interaction%>" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> + <containerMappings xsi:type="description_1:InteractionUseMapping" name="Interaction Use" preconditionExpression="aql:self.coveredParticipants->size()" deletionDescription="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Delete%20Interaction%20Use']" labelDirectEdit="//@ownedViewpoints[name='Interactions_Copy2']/@ownedRepresentations[name='Sequence%20Diagram%20on%20Interaction']/@defaultLayer/@toolSections.7/@ownedTools[name='Edit%20IU%20Label']" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + Sequence{self.interaction}" synchronizationLock="true" domainClass="interactions.InteractionUse" startingEndFinderExpression="aql:self.startingEnd" finishingEndFinderExpression="aql:self.finishingEnd" coveredLifelinesExpression="aql:self.coveredParticipants" centerLabelExpression="aql:'call(' + self.interaction.name + ')'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelExpression="aql:self.type" labelAlignment="LEFT"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -3671,7 +3671,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Participant" referenceName="participants"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newParticipant<%eContainer("Interaction").participants.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newParticipant' + self.eContainerOrSelf(interactions::Interaction).participants->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -4377,7 +4377,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CombinedFragment" referenceName="combinedFragments" variableName="newCF"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="alt.<%eContainer.eContents.filter("CombinedFragment").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operator" valueExpression="aql:'alt.' + self.eContainer().eContents()->filter(interactions::CombinedFragment)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredParticipants" valueExpression="var:coverage"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition1"/> @@ -4435,9 +4435,9 @@ <parameters name="title" value="Operand Creation"/> <parameters name="enabled" value="aql:false"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("CombinedFragment")%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::CombinedFragment)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.Operand" referenceName="ownedOperands" variableName="newOperand"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="condition.<%eContainer.ownedOperands.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'condition.' + self.eContainer().ownedOperands->size()"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.OperandEnd" referenceName="ends" variableName="newOpEnd"> @@ -4457,7 +4457,7 @@ <parameters name="referenceOwner" value="aql:newOperand.eContainer()"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:newOperand"/> - <parameters name="predecessor" value="<%(($newOperand.start.precedingSibling.nReverse.filter("OperandEnd") && $newOperand.eContainer.ownedOperands.start).nFirst).owner%>"/> + <parameters name="predecessor" value="aql:((newOperand.start.precedingSiblings()->reverse()->filter(interactions::OperandEnd)->asSet()->intersection(newOperand.eContainer().ownedOperands.start)->first())).owner"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -4536,12 +4536,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.sendingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.receivingEnd"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.execution == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.execution = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -4558,12 +4558,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.start"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.end"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%filter("MixEnd").nSize == 0 ||filter("MixEnd").nSize != 0 && current.message == null%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:not self.oclIsKindOf(interactions::MixEnd) or (self.oclIsKindOf(interactions::MixEnd) and self.message = null)"> <subModelOperations xsi:type="tool_1:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -4625,7 +4625,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="executions"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.ExecutionEnd")[current.execution.start == current].nLast.execution%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::ExecutionEnd)->select(current | current.execution.start = current)->last().execution"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(State)"> @@ -4645,7 +4645,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="states"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.StateEnd")[current.state.start == current].nLast.state%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::StateEnd)->select(current | current.state.start = current)->last().state"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Message)"> @@ -4669,7 +4669,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="messages"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.sendingEnd.precedingSibling.filter("interactions.MessageEnd")[current.message.receivingEnd == current].nLast.message%>"/> + <parameters name="predecessor" value="aql:self.sendingEnd.precedingSiblings()->filter(interactions::MessageEnd)->select(current | current.message.receivingEnd = current)->last().message"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(InteractionUse)"> @@ -4689,7 +4689,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="interactionUses"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.InteractionUseEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::InteractionUseEnd)->select(current| current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(CombinedFragment)"> @@ -4709,7 +4709,7 @@ <parameters name="referenceOwner" value="aql:self.eContainerOrSelf(Interaction)"/> <parameters name="referenceName" value="combinedFragments"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.CombinedFragmentEnd")[current.owner.start == current].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::CombinedFragmentEnd)->select(current | current.owner.start = current)->last().owner"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.oclIsKindOf(Operand)"> @@ -4723,7 +4723,7 @@ <parameters name="referenceOwner" value="aql:self.eContainer(CombinedFragment)"/> <parameters name="referenceName" value="ownedOperands"/> <parameters name="element" value="var:self"/> - <parameters name="predecessor" value="<%self.start.precedingSibling.filter("interactions.OperandEnd")[current.owner.start == current && current(1).eContainer("interactions.CombinedFragment") == current().owner.eContainer("interactions.CombinedFragment")].nLast.owner%>"/> + <parameters name="predecessor" value="aql:self.start.precedingSiblings()->filter(interactions::OperandEnd)->select(op | op.owner.start = op and self.eContainerOrSelf(interactions::CombinedFragment) = op.owner.eContainerOrSelf(interactions::CombinedFragment))->last().owner)"/> </subModelOperations> </subModelOperations> </firstModelOperations> @@ -4795,7 +4795,7 @@ </defaultLayer> <additionalLayers name="Lost Found" label="Lost and found messages creation"> <toolSections name="Lost Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Sync/ASync Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4830,7 +4830,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Create" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4863,7 +4863,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Lost Destroy" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4897,7 +4897,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Lost Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4932,7 +4932,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -4968,7 +4968,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Lost Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5006,7 +5006,7 @@ </ownedTools> </toolSections> <toolSections name="Found Messages"> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Sync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -5016,7 +5016,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -5079,7 +5079,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="<%$container.filter("interactions.Participant")[$containerView.eContainer.filter("DNode")] + $container.filter("interactions.Execution")%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found ASync Call" precondition="aql:(container.oclIsKindOf(interactions::Participant) and containerView.eContainer().oclIsKindOf(diagram::DNode)) or container.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="container"/> <elementView name="containerView"/> <initialOperation> @@ -5089,7 +5089,7 @@ <parameters name="enabled" value="aql:false"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="interactions.CallMessage" referenceName="messages" variableName="callMsg"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="<%$container.currentParticipant.type.eOperations.nFirst%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="operation" valueExpression="aql:container.currentParticipant().type.eOperations->first()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:callMsg"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'m' + self.eContainerOrSelf(interactions::Interaction).messages->size()"/> @@ -5139,7 +5139,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canCreate($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Create" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementview.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContainer().eContainer().oclIsKindOf(diagram::DDiagram) and element.canCreate(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5172,7 +5172,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="<%$element.filter("interactions.Participant") && $elementView.eContainer.filter("DNode") && $elementView.eContainer.eContainer.filter("DDiagram") && $element.canDestroy($endBefore)%>" forceRefresh="true"> + <ownedTools xsi:type="tool_1:ToolDescription" name="Found Destroy" precondition="aql:element.oclIsKindOf(interactions::Participant) and elementView.eContainer().oclIsKindOf(diagram::DNode) and elementView.eContaienr().eContainer().oclIsKindOf(diagram::DDiagram) and element.canDestroy(endBefore)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5206,7 +5206,7 @@ </initialOperation> </ownedTools> <ownedTools xsi:type="tool_2:ToolGroup" name="Found Messages"> - <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Read" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5241,7 +5241,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Write" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> @@ -5277,7 +5277,7 @@ </firstModelOperations> </initialOperation> </tools> - <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="<%$element.filter("interactions.Participant")[$elementView.eContainer.filter("DNode")] + $element.filter("interactions.Execution")%>" forceRefresh="true"> + <tools xsi:type="tool_1:ToolDescription" name="Found Call" precondition="aql:(element.oclIsKindOf(interactions::Participant) and elementView.eContaienr().oclIsKindOf(diagram::DNode)) or element.oclIsKindOf(interactions::Execution)" forceRefresh="true"> <element name="element"/> <elementView name="elementView"/> <initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/v1.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/v1.odesign index 6e58f3f8cc..6afe5e58c9 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/v1.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/v1.odesign @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="G" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="G" version="10.0.0.201505222000"> <ownedViewpoints name="V"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="D" initialisation="true" showOnStartup="true" domainClass="ecore.EPackage" preconditionExpression="<%someCondition%>"> <defaultLayer name="Default"> @@ -10,7 +10,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_blue']"/> </style> </nodeMappings> - <nodeMappings name="Class" semanticCandidatesExpression="<%eClassifiers%>" domainClass="EClass"> + <nodeMappings name="Class" semanticCandidatesExpression="aql:self.eClassifiers" domainClass="EClass"> <borderedNodeMappings name="EAttribute" semanticCandidatesExpression="feature:eAllContents"> <style xsi:type="style:DotDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -39,7 +39,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="T"> <ownedLineMappings name="Class" domainClass="EClass"/> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql:self.name"/> </ownedRepresentations> </ownedViewpoints> </description:Group> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/various_changes.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/various_changes.odesign index 6e58f3f8cc..6afe5e58c9 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/various_changes.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/movida/various_changes.odesign @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="G" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="G" version="10.0.0.201505222000"> <ownedViewpoints name="V"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="D" initialisation="true" showOnStartup="true" domainClass="ecore.EPackage" preconditionExpression="<%someCondition%>"> <defaultLayer name="Default"> @@ -10,7 +10,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_blue']"/> </style> </nodeMappings> - <nodeMappings name="Class" semanticCandidatesExpression="<%eClassifiers%>" domainClass="EClass"> + <nodeMappings name="Class" semanticCandidatesExpression="aql:self.eClassifiers" domainClass="EClass"> <borderedNodeMappings name="EAttribute" semanticCandidatesExpression="feature:eAllContents"> <style xsi:type="style:DotDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -39,7 +39,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="T"> <ownedLineMappings name="Class" domainClass="EClass"/> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql:self.name"/> </ownedRepresentations> </ownedViewpoints> </description:Group> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/navigation/testNavigation.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/navigation/testNavigation.odesign index 79cec95927..aeb5bf0264 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/navigation/testNavigation.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/navigation/testNavigation.odesign @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="ASCII"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" version="10.0.0.201505222000"> <ownedViewpoints name="NavigationTest" modelFileExtension="uml"> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Package Diagram" initialisation="true" domainClass="Model" rootExpression=""> <defaultLayer name="Package"> @@ -19,7 +19,7 @@ </toolSections> </defaultLayer> </ownedRepresentations> - <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Class Diagram" initialisation="true" domainClass="Package" preconditionExpression="<%current.filter("Model").nSize==0%>" rootExpression=""> + <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Class Diagram" initialisation="true" domainClass="Package" preconditionExpression="aql:not self.oclIsKindOf(uml::Model)" rootExpression=""> <defaultLayer name="Class"> <nodeMappings name="Class" navigationDescriptions="//@ownedViewpoints[name='NavigationTest']/@ownedRepresentations[name='Class%20Diagram']/@defaultLayer/@toolSections.0/@ownedTools[name='Package%20Diagram']" semanticCandidatesExpression="feature:eAllContents" semanticElements="" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> @@ -29,7 +29,7 @@ </style> </nodeMappings> <toolSections name="Package"> - <ownedTools xsi:type="tool:DiagramNavigationDescription" name="Package Diagram" browseExpression="<%eContainer("Model")%>" navigationNameExpression="Navigate to <%$diagramName%>" diagramDescription="//@ownedViewpoints[name='NavigationTest']/@ownedRepresentations[name='Package%20Diagram']"> + <ownedTools xsi:type="tool:DiagramNavigationDescription" name="Package Diagram" browseExpression="<%eContainer("Model")%>" navigationNameExpression="aql:'Navigate to ' + diagramName" diagramDescription="//@ownedViewpoints[name='NavigationTest']/@ownedRepresentations[name='Package%20Diagram']"> <containerViewVariable name="containerView"/> <containerVariable name="container"/> <representationNameVariable name="diagramName"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/StyleCustomizations/StyleCustomizations_ExtensionA.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/StyleCustomizations/StyleCustomizations_ExtensionA.odesign index 4e9b6a58ca..0a8e39343d 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/StyleCustomizations/StyleCustomizations_ExtensionA.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/StyleCustomizations/StyleCustomizations_ExtensionA.odesign @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="StyleCustomizations_ExtensionA" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="StyleCustomizations_ExtensionA" version="10.0.0.201505222000"> <ownedViewpoints name="StyleCustomizations_ExtensionA" modelFileExtension="ecore"> <ownedRepresentationExtensions xsi:type="description_1:DiagramExtensionDescription" name="DiagramDescription_ExtA" viewpointURI="viewpoint:/(.*)/StyleCustomizations" representationName="DiagramDescription"> <layers name="ExtA"> @@ -16,12 +16,12 @@ </customization> </layers> <layers name="ExtA_PackageMappingWithCondStyle"> - <containerMappings xsi:type="description_1:ContainerMappingImport" name="EPackageMappingExtA" semanticCandidatesExpression="<%eSubpackages()%>" documentation="Same mapping as extended diagram but with new conditional style.
"> + <containerMappings xsi:type="description_1:ContainerMappingImport" name="EPackageMappingExtA" semanticCandidatesExpression="aql:self.oclAsType(ecore::EPackage).eSubpackages" documentation="Same mapping as extended diagram but with new conditional style.
"> <reusedNodeMappings href="StyleCustomizations.odesign#//@ownedViewpoints[name='StyleCustomizations']/@ownedRepresentations[name='DiagramDescription']/@defaultLayer/@containerMappings[name='EClassMapping']/@subNodeMappings[name='EAttributeMapping']"/> <reusedContainerMappings href="StyleCustomizations.odesign#//@ownedViewpoints[name='StyleCustomizations']/@ownedRepresentations[name='DiagramDescription']/@defaultLayer/@containerMappings[name='EClassMapping']"/> <reusedContainerMappings href="StyleCustomizations.odesign#//@ownedViewpoints[name='StyleCustomizations']/@ownedRepresentations[name='DiagramDescription']/@defaultLayer/@containerMappings[name='EPackageMapping']"/> <conditionnalStyles predicateExpression="true"> - <style xsi:type="style:FlatContainerStyleDescription"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP-3535/VP-3535.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP-3535/VP-3535.odesign index 439d567aaf..3f24608845 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP-3535/VP-3535.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP-3535/VP-3535.odesign @@ -812,7 +812,7 @@ </endLabelStyleDescription> </style> <conditionnalStyles predicateExpression="[container.oclAsType(EPackage).nsURI = 'bracket'/]"> - <style xsi:type="style:BracketEdgeStyleDescription" lineStyle="dash" sourceArrow="InputArrow" targetArrow="InputClosedArrow" sizeComputationExpression="<%eContents().nSize + 1%>"> + <style xsi:type="style:BracketEdgeStyleDescription" lineStyle="dash" sourceArrow="InputArrow" targetArrow="InputClosedArrow" sizeComputationExpression="aql:self.eContents()->size() + 1"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <beginLabelStyleDescription labelSize="6" labelExpression="['beginSuperType'+name/]" iconPath="/DesignerTestProject/image.bmp"> <labelFormat>italic</labelFormat> @@ -866,7 +866,7 @@ </endLabelStyleDescription> </style> <conditionnalStyles predicateExpression="[container.oclAsType(EPackage).nsURI = 'bracket'/]"> - <style xsi:type="style:BracketEdgeStyleDescription" lineStyle="dash" sourceArrow="InputArrow" targetArrow="InputClosedArrow" sizeComputationExpression="<%eContents().nSize + 1%>"> + <style xsi:type="style:BracketEdgeStyleDescription" lineStyle="dash" sourceArrow="InputArrow" targetArrow="InputClosedArrow" sizeComputationExpression="aql:self.eContents()->size() + 1"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <beginLabelStyleDescription labelSize="6" labelExpression="['beginSuperType'+name/]" iconPath="/DesignerTestProject/image.bmp"> <labelFormat>italic</labelFormat> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978-2.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978-2.odesign index 49b7d6dc1f..faea77f479 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978-2.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978-2.odesign @@ -4,13 +4,13 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="EdgeLabelRefreshPb" domainClass="EPackage"> <defaultLayer name="Default"> <nodeMappings name="EClassWithLabelInside" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + self.eReferences" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="defaultStyle<%eReferences.nFirst.name%>" labelPosition="node" width="10" height="3"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'defaultStyle' + self.eReferences->first().name" labelPosition="node" width="10" height="3"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> - <conditionnalStyles predicateExpression="<%eReferences.nFirst.name != "r1"%>"> - <style xsi:type="style:SquareDescription" labelExpression="condStyle<%eReferences.nFirst.name%>" labelPosition="node"> + <conditionnalStyles predicateExpression="aql:self.eReferences->first().name <> 'r1'"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'condStyle' + self.eReferences->first().name" labelPosition="node"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> @@ -18,13 +18,13 @@ </conditionnalStyles> </nodeMappings> <nodeMappings name="EClassWithLabelOutside" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + self.eReferences" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="defaultStyle<%eReferences.nFirst.name%>"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'defaultStyle' + self.eReferences->first().name"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> - <conditionnalStyles predicateExpression="<%eReferences.nFirst.name != "r1"%>"> - <style xsi:type="style:SquareDescription" labelExpression="condStyle<%eReferences.nFirst.name%>" labelPosition="node"> + <conditionnalStyles predicateExpression="aql:self.eReferences->first().name <> 'r1'"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'condStyle' + self.eReferences->first().name" labelPosition="node"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='yellow']"/> @@ -34,7 +34,7 @@ <edgeMappings name="SimpleEdge" semanticElements="aql:Sequence{self} + self.eReferences" sourceMapping="//@ownedViewpoints[name='EdgeLabelRefreshPb']/@ownedRepresentations[name='EdgeLabelRefreshPb']/@defaultLayer/@nodeMappings[name='EClassWithLabelInside']" targetMapping="//@ownedViewpoints[name='EdgeLabelRefreshPb']/@ownedRepresentations[name='EdgeLabelRefreshPb']/@defaultLayer/@nodeMappings[name='EClassWithLabelOutside']" targetFinderExpression="var:self"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription labelExpression="<%eReferences.nFirst.name%>"> + <centerLabelStyleDescription labelExpression="aql:self.eReferences->first().name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978.odesign index 9b18b34309..34e32411af 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/VP978/VP978.odesign @@ -4,7 +4,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="EdgeLabelRefreshPb" domainClass="EPackage"> <defaultLayer name="Default"> <nodeMappings name="EClassWithLabelInside" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + self.eReferences" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="defaultStyle<%eReferences.nFirst.name%>" labelPosition="node" width="10" height="3"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'defaultStyle' + self.eReferences->first().name" labelPosition="node" width="10" height="3"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> @@ -16,8 +16,8 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%eReferences.nFirst.name != "r1"%>"> - <style xsi:type="style:SquareDescription" labelExpression="condStyle<%eReferences.nFirst.name%>" labelPosition="node"> + <conditionnalStyles predicateExpression="aql:self.eReferences->first().name <> 'r1'"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'condStyle' + self.eReferences->first().name" labelPosition="node"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='purple']"/> @@ -25,7 +25,7 @@ </conditionnalStyles> </nodeMappings> <nodeMappings name="EClassWithLabelOutside" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:Sequence{self} + self.eReferences" domainClass="EClass"> - <style xsi:type="style:SquareDescription" labelExpression="defaultStyle<%eReferences.nFirst.name%>"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'defaultStyle' + self.eReferences->first().name"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> @@ -37,8 +37,8 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%eReferences.nFirst.name != "r1"%>"> - <style xsi:type="style:SquareDescription" labelExpression="condStyle<%eReferences.nFirst.name%>" labelPosition="node"> + <conditionnalStyles predicateExpression="aql:self.eReferences->first().name <> 'r1'"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'condStyle' + self.eReferences->first().name" labelPosition="node"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='yellow']"/> @@ -48,7 +48,7 @@ <edgeMappings name="edge" semanticElements="aql:Sequence{self} + self.eReferences" sourceMapping="//@ownedViewpoints[name='EdgeLabelRefreshPb']/@ownedRepresentations[name='EdgeLabelRefreshPb']/@defaultLayer/@nodeMappings[name='EClassWithLabelInside']" targetMapping="//@ownedViewpoints[name='EdgeLabelRefreshPb']/@ownedRepresentations[name='EdgeLabelRefreshPb']/@defaultLayer/@nodeMappings[name='EClassWithLabelOutside']" targetFinderExpression="var:self"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription labelExpression="defaultStyle<%eReferences.nFirst.name%>"> + <centerLabelStyleDescription labelExpression="aql:'defaultStyle' + self.eReferences->first().name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -60,10 +60,10 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%eReferences.nFirst.name != "r1"%>"> + <conditionnalStyles predicateExpression="aql:self.eReferences->first().name <> 'r1'"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription labelExpression="condStyle<%eReferences.nFirst.name%>"> + <centerLabelStyleDescription labelExpression="aql:'condStyle' + self.eReferences->first().name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/compartmentListEltsReorderingOnDirectEdit/vp1753.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/compartmentListEltsReorderingOnDirectEdit/vp1753.odesign index cf678d34b5..354f7b7b15 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/compartmentListEltsReorderingOnDirectEdit/vp1753.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/compartmentListEltsReorderingOnDirectEdit/vp1753.odesign @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="Ecore Editing Workbench V4.6Modif" version="10.0.0.201505222000"> <ownedViewpoints endUserDocumentation="Provides graphical and tabular modelers to design an Ecore model." name="DesignModifItemList" modelFileExtension="ecore"> - <ownedRepresentations xsi:type="description_1:DiagramDescription" endUserDocumentation="A graphical modeler for Ecore model similar to a UML class diagram." name="EntitiesModif" titleExpression="<%name%> package entities modif" domainClass="EPackage" enablePopupBars="true"> + <ownedRepresentations xsi:type="description_1:DiagramDescription" endUserDocumentation="A graphical modeler for Ecore model similar to a UML class diagram." name="EntitiesModif" titleExpression="aql:self.name + ' package entities modif'" domainClass="EPackage" enablePopupBars="true"> <defaultLayer name="Default"> <edgeMappings name="EC_EReference" preconditionExpression="aql:self.eOpposite = null" labelDirectEdit="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticElements="var:self" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@containerMappings[name='EC%20EClass']" targetMapping="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@containerMappings[name='EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true" reconnections="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@toolSections.3/@ownedTools[name='ReconnectEReference']"> <style> @@ -10,7 +10,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%containment && derived%>"> + <conditionnalStyles predicateExpression="aql:self.containment and self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.render()"> @@ -19,7 +19,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!containment && derived%>"> + <conditionnalStyles predicateExpression="aql:not self.containment and self.derived"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.render()"> @@ -44,7 +44,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.targetNode.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:view.targetNode->filter(ecore::EClass)->select( e | e.interface)->size() > 0"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -99,7 +99,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%eContents.filter("EDataType")[eClass.name == "EDataType"]%>" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='DesignModifItemList']/@ownedRepresentations[name='EntitiesModif']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EDataType)->select( e | e.self.eClass().name = 'ecore::EDataType')" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -133,7 +133,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -229,7 +229,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/full/uml2.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/full/uml2.odesign index ea5436fcf6..5e1f4c8bb6 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/full/uml2.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/full/uml2.odesign @@ -25,11 +25,11 @@ <containerViewVariable name="containerView"/> <representationNameVariable name="diagramName"/> </ownedTools> - <ownedTools xsi:type="tool:DiagramCreationDescription" name="Sequence Diagram" browseExpression="<%current.ownedBehavior.filter("Interaction").nLast%>" diagramDescription="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']"> + <ownedTools xsi:type="tool:DiagramCreationDescription" name="Sequence Diagram" browseExpression="aql:self.ownedBehavior->filter(interactions::Interaction)->last()" diagramDescription="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']"> <initialOperation> - <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$containerView.target%>"> + <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:containerView.target"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Interaction" referenceName="ownedBehavior"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%eContainer.name%> Interaction <%eContainer.ownedBehavior.filter("Interaction").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:self.eContainer().name + ' Interaction ' +self.eContainer().ownedBehavior->filter(interactions::Interaction)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -40,7 +40,7 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Diagram']/@toolSection/@subSections[name='drag%20%26%20drop']/@ownedTools[name='PD_D%26D_Package']" documentation="Diagram for Packages" name="Package Diagram" domainClass="Model" preconditionExpression=""> - <containerMappings name="PD_Package" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@toolSection/@ownedTools[name='Object%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Component%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Class%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Use%20Case%20Diagram']" preconditionExpression="<%$container == eContainer()%>" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EPackage)" documentation="Mapping to create packages." domainClass="Package" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Diagram']/@toolSection/@subSections[name='drag%20%26%20drop']/@ownedTools[name='PD_D%26D_Package']" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Diagram']/@containerMappings[name='PD_Package']"> + <containerMappings name="PD_Package" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@toolSection/@ownedTools[name='Object%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Component%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Class%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Use%20Case%20Diagram']" preconditionExpression="aql:container = self.eContainer()" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EPackage)" documentation="Mapping to create packages." domainClass="Package" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Diagram']/@toolSection/@subSections[name='drag%20%26%20drop']/@ownedTools[name='PD_D%26D_Package']" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Diagram']/@containerMappings[name='PD_Package']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelSize="10"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -56,7 +56,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Package" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Package<%eContainer().eContents.filter("Package").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Package' + self.eContainer().eContents()->filter(uml::Package)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -85,14 +85,14 @@ <ownedConcernDescriptions name="Default"/> <ownedConcernDescriptions name="Show Imports" filters="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@filters[name='Hide%20containment']"/> </concerns> - <layout xsi:type="description_1:OrderedTreeLayout" childrenExpression="<%eContents().filter("Package")%>" nodeMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']"/> + <layout xsi:type="description_1:OrderedTreeLayout" childrenExpression="aql:self.eContents()->filter(uml::Package)" nodeMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']"/> <nodeMappings name="PH_Package" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@toolSection/@ownedTools[name='Object%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Component%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Class%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Use%20Case%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='State%20Machine%20Diagram']/@toolSection/@ownedTools[name='StateMachine']" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> <style xsi:type="style:BundledImageDescription" labelSize="10" sizeComputationExpression="4"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> </style> - <conditionnalStyles predicateExpression="<%eContents.filter("Classifier").nSize > 0%>"> + <conditionnalStyles predicateExpression="aql:self.eContents()->filter(uml::Classifier)->size() > 0"> <style xsi:type="style:BundledImageDescription" labelSize="10"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -105,7 +105,7 @@ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </edgeMappings> - <edgeMappings name="PH_Import" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']" targetFinderExpression="<%importedPackage%>" sourceFinderExpression="feature:eContainer" domainClass="PackageImport" useDomainElement="true"> + <edgeMappings name="PH_Import" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Package%20Hierarchy']/@nodeMappings[name='PH_Package']" targetFinderExpression="aql:self.importedPackage" sourceFinderExpression="feature:eContainer" domainClass="PackageImport" useDomainElement="true"> <style lineStyle="dot"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <centerLabelStyleDescription showIcon="false"> @@ -120,7 +120,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="Package" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="New package <%eContainer.eContents.filter("Package").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'New package ' + self.eContainer().eContents()->filter(uml::Package)->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -141,7 +141,7 @@ <containerView/> <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool_1:MoveElement" newContainerExpression="<%eContainer("Model")%>" featureName="packagedElement"/> + <subModelOperations xsi:type="tool_1:MoveElement" newContainerExpression="aql:self.eContainerOrSelf(uml::Model)" featureName="packagedElement"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -172,7 +172,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </nodeMappings> - <edgeMappings name="UCD_Association" semanticCandidatesExpression="<%getRootContainer().eAllContents("Association")%>" semanticElements="<%memberEnd + current%>" documentation="Mapping to create associations between actors and use cases" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="<%memberEnd.type%>" sourceFinderExpression="<%memberEnd.type%>" targetExpression="var:self" domainClass="Association" useDomainElement="true"> + <edgeMappings name="UCD_Association" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::Association)" semanticElements="aql:OrderedSet{self.memberEnd,self}" documentation="Mapping to create associations between actors and use cases" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="aql:self.memberEnd.type" sourceFinderExpression="aql:self.memberEnd.type" targetExpression="var:self" domainClass="Association" useDomainElement="true"> <style targetArrow="NoDecoration" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:''"> @@ -180,15 +180,15 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="UCD_Extend" semanticCandidatesExpression="<%getRootContainer().eAllContents("Extend")%>" semanticElements="<%current + extension + extendedCase%>" documentation="Mapping to create Extends" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="<%extendedCase%>" sourceFinderExpression="<%extension%>" targetExpression="var:self" domainClass="Extend" useDomainElement="true" pathExpression=""> + <edgeMappings name="UCD_Extend" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::Extend)" semanticElements="aql:OrderedSet{self,self.extension,self.extendedCase}" documentation="Mapping to create Extends" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="aql:self.extendedCase" sourceFinderExpression="aql:self.extension" targetExpression="var:self" domainClass="Extend" useDomainElement="true" pathExpression=""> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> - <centerLabelStyleDescription labelSize="10" showIcon="false" labelExpression="<%"« extend »"%>"> + <centerLabelStyleDescription labelSize="10" showIcon="false" labelExpression="aql:'« extend »'"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="UCD_Include" semanticCandidatesExpression="<%getRootContainer().eAllContents("Include")%>" semanticElements="<%current + includingCase + addition%>" documentation="Mapping to create includes" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="aql:self.addition" sourceFinderExpression="aql:self.includingCase" targetExpression="var:self" domainClass="Include" useDomainElement="true"> + <edgeMappings name="UCD_Include" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::Include)" semanticElements="aql:OrderedSet{self ,self.includingCase ,self.addition}" documentation="Mapping to create includes" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@containerMappings[name='UCD_Subject']/@subNodeMappings[name='UCD_UseCase']" targetFinderExpression="aql:self.addition" sourceFinderExpression="aql:self.includingCase" targetExpression="var:self" domainClass="Include" useDomainElement="true"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <centerLabelStyleDescription labelSize="10" showIcon="false" labelExpression="« include »"> @@ -196,7 +196,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="UCD_Generalization" semanticCandidatesExpression="<%getRootContainer().eAllContents("Actor").generalization%>" semanticElements="" documentation="Mapping to create generalizations" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="var:self" domainClass="Generalization" useDomainElement="true"> + <edgeMappings name="UCD_Generalization" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::Actor).generalization" semanticElements="" documentation="Mapping to create generalizations" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@nodeMappings[name='UCD_Actor']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="var:self" domainClass="Generalization" useDomainElement="true"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:''"> @@ -204,8 +204,8 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="UCD_Subject" preconditionExpression="<%$container == eContainer()%>" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%eContents.filter("Component")%>" documentation="Display subjects of this diagram." domainClass="Component" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@toolSection/@subSections[name='drag%20%26%20drop']/@ownedTools[name='UC_D%26D_UseCase']"> - <subNodeMappings name="UCD_UseCase" preconditionExpression="<%subject.nContains($container)%>" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%nPut("e").nGet("e").getRootContainer().eAllContents("UseCase")[subject.nContains(current(1))]%>" documentation="Mapping to create Use Cases" domainClass="UseCase"> + <containerMappings name="UCD_Subject" preconditionExpression="aql:container = self.eContainer()" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Component)" documentation="Display subjects of this diagram." domainClass="Component" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@toolSection/@subSections[name='drag%20%26%20drop']/@ownedTools[name='UC_D%26D_UseCase']"> + <subNodeMappings name="UCD_UseCase" preconditionExpression="aql:self.subject->includes(container)" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::UseCase)->select( e | e.subject->includes(self))" documentation="Mapping to create Use Cases" domainClass="UseCase"> <style xsi:type="style:WorkspaceImageDescription" labelSize="10" sizeComputationExpression="14" labelPosition="node" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/org.eclipse.sirius.tests.junit/images/UseCase.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -230,7 +230,7 @@ <newViewContainer name="newContainerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool_1:For" expression="<%current.filter("UseCase")[!subject.nContains($newSemanticContainer)]%>"> + <subModelOperations xsi:type="tool_1:For" expression="aql:current->filter(uml::UseCase)->select( e | not e.subject->includes(newSemanticContainer))"> <subModelOperations xsi:type="tool_1:SetValue" featureName="subject" valueExpression="var:newSemanticContainer"/> </subModelOperations> </firstModelOperations> @@ -244,7 +244,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Actor" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Actor<%eContainer.eContents.filter("Actor").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Actor' + self.eContainer().eContents()->filter(uml::Actor)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -253,9 +253,9 @@ <variable name="container"/> <viewVariable name="containerView"/> <initialOperation> - <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$container.eContainer("Package")%>"> + <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(uml::Package)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="UseCase" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="UseCase<%eContainer("Package").name%><%eContainer("Package").eContents().filter("UseCase").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'UseCase' + self.eContainerOrSelf(uml::Package).name + self.eContainerOrSelf(uml::Package).eContents()->filter(uml::UseCase)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="subject" valueExpression="var:container"/> </subModelOperations> </firstModelOperations> @@ -267,12 +267,12 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Component" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%eContainer("Package").name%> Subject"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:self.eContainerOrSelf(Package).name + ' Subject'"/> </subModelOperations> </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Tool to create an Association between an Actor and an Use Case." name="Association" precondition="<%$preSource.filter("Actor").nSize() > 0 && $preTarget.filter("UseCase").nSize() > 0%>" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Association']"> + <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Tool to create an Association between an Actor and an Use Case." name="Association" precondition="aql:preSource.oclIsKindOf(uml::Actor) and preTarget.oclIsKindOf(uml::UseCase)" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Association']"> <sourceVariable name="source"/> <targetVariable name="target"/> <sourceViewVariable name="sourceView"/> @@ -286,12 +286,12 @@ <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Property" referenceName="ownedEnd"> <subModelOperations xsi:type="tool_1:SetValue" featureName="type" valueExpression="var:target"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Association_<%$source.name%>_to_<%$target.name%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Association_' + source.name + '_to_' + target.name"/> </subModelOperations> </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Create an Extend" name="Extend" precondition="<%($preSource + $preTarget).filter("UseCase").nSize() == 2%>" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Extend']"> + <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Create an Extend" name="Extend" precondition="preSource.oclIsKindOf(uml::UseCase) and preTarget.oclIsKindOf(uml::UseCase)" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Extend']"> <sourceVariable name="source"/> <targetVariable name="target"/> <sourceViewVariable name="sourceView"/> @@ -305,7 +305,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Create an Include" name="Include" precondition="<%($preSource + $preTarget).filter("UseCase").nSize() == 2%>" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Include']"> + <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Create an Include" name="Include" precondition="preSource.oclIsKindOf(uml::UseCase) and preTarget.oclIsKindOf(uml::UseCase)" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Include']"> <sourceVariable name="source"/> <targetVariable name="target"/> <sourceViewVariable name="sourceView"/> @@ -319,7 +319,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Tool to create a Generalization" name="Generalization" precondition="<%($preSource + $preTarget).filter("Actor").nSize() == 2%>" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Generalization']"> + <ownedTools xsi:type="tool:EdgeCreationDescription" documentation="Tool to create a Generalization" name="Generalization" precondition="aql:preSource.oclIsKindOf(uml::Actor) and preTarget.oclIsKindOf(uml::Actor)" edgeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Use%20Case%20Diagram']/@edgeMappings[name='UCD_Generalization']"> <sourceVariable name="source"/> <targetVariable name="target"/> <sourceViewVariable name="sourceView"/> @@ -335,15 +335,15 @@ </subSections> </toolSection> </ownedRepresentations> - <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Description to edit class diagrams" name="Class Diagram" domainClass="Package" preconditionExpression="<%filter("Model").nSize() > 0%>"> - <edgeMappings name="CD_Association_Class_To_Class" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Classifier").getAssociationP()%>" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> + <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Description to edit class diagrams" name="Class Diagram" domainClass="Package" preconditionExpression="aql:self.oclIsKindOf(uml::Model)"> + <edgeMappings name="CD_Association_Class_To_Class" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Classifier).getAssociationP()" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10" labelExpression="<%if (memberEnd.nGet(0).isNavigableP) {%><%memberEnd.nGet(0).name%><%}%><%if (memberEnd.nGet(0).isNavigableP && memberEnd.nGet(1).isNavigableP) {%> - <%}%><%if (memberEnd.nGet(1).isNavigableP) {%><%memberEnd.nGet(1).name%><%}%>"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(0).isNavigableP && $view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->first().isNavigableP() and view.target.memberEnd->at(2).isNavigableP()"> <style sourceArrow="InputArrow" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -351,7 +351,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(1).isNavigableP && !$view.target.memberEnd.nGet(0).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->at(2).isNavigableP() and not view.target.memberEnd->first().isNavigableP()"> <style sourceArrow="InputArrow" targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -359,7 +359,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!$view.target.memberEnd.nGet(0).isNavigableP && !$view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:not view.target.memberEnd->first().isNavigableP() and not view.target.memberEnd->at(2).isNavigableP()"> <style targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -368,14 +368,14 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="CD_Association_Class_To_Interface" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Classifier").getAssociationP()%>" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Association_Class_To_Interface" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Classifier).getAssociationP()" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10" labelExpression="<%if (memberEnd.nGet(0).isNavigableP) {%><%memberEnd.nGet(0).name%><%}%><%if (memberEnd.nGet(0).isNavigableP && memberEnd.nGet(1).isNavigableP) {%> - <%}%><%if (memberEnd.nGet(1).isNavigableP) {%><%memberEnd.nGet(1).name%><%}%>"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(0).isNavigableP && $view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->first().isNavigableP() and view.target.memberEnd->at(2).isNavigableP()"> <style sourceArrow="InputArrow" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -383,7 +383,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(1).isNavigableP && !$view.target.memberEnd.nGet(0).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->at(2).isNavigableP() and not view.target.memberEnd->first().isNavigableP()"> <style sourceArrow="InputArrow" targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -391,7 +391,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!$view.target.memberEnd.nGet(0).isNavigableP && !$view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:not view.target.memberEnd->first().isNavigableP() and not view.target.memberEnd->at(2).isNavigableP()"> <style targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -400,14 +400,14 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="CD_Association_Interface_To_Interface" semanticCandidatesExpression="<%$viewpoint.eAllContents("DSemanticDecorator").target.filter("Classifier").getAssociationP()%>" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Association_Interface_To_Interface" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Classifier).getAssociationP()" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10" labelExpression="<%if (memberEnd.nGet(0).isNavigableP) {%><%memberEnd.nGet(0).name%><%}%><%if (memberEnd.nGet(0).isNavigableP && memberEnd.nGet(1).isNavigableP) {%> - <%}%><%if (memberEnd.nGet(1).isNavigableP) {%><%memberEnd.nGet(1).name%><%}%>"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(0).isNavigableP && $view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->first().isNavigableP() and view.target.memberEnd->at(2).isNavigableP()"> <style sourceArrow="InputArrow" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -415,7 +415,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(1).isNavigableP && !$view.target.memberEnd.nGet(0).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->at(2).isNavigableP() and not view.target.memberEnd->first().isNavigableP()"> <style sourceArrow="InputArrow" targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -423,7 +423,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!$view.target.memberEnd.nGet(0).isNavigableP && !$view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:not view.target.memberEnd->first().isNavigableP() and not view.target.memberEnd->at(2).isNavigableP()"> <style targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -432,14 +432,14 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="CD_Association_Interface_To_Class" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Classifier").getAssociationP()%>" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Association_Interface_To_Class" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Classifier).getAssociationP()" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10" labelExpression="<%if (memberEnd.nGet(0).isNavigableP) {%><%memberEnd.nGet(0).name%><%}%><%if (memberEnd.nGet(0).isNavigableP && memberEnd.nGet(1).isNavigableP) {%> - <%}%><%if (memberEnd.nGet(1).isNavigableP) {%><%memberEnd.nGet(1).name%><%}%>"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(0).isNavigableP && $view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->first().isNavigableP() and view.target.memberEnd->at(2).isNavigableP()"> <style sourceArrow="InputArrow" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -447,7 +447,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(1).isNavigableP && !$view.target.memberEnd.nGet(0).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->at(2).isNavigableP() and not view.target.memberEnd->first().isNavigableP()"> <style sourceArrow="InputArrow" targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -455,7 +455,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!$view.target.memberEnd.nGet(0).isNavigableP && !$view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:not view.target.memberEnd->first().isNavigableP() and not view.target.memberEnd->at(2).isNavigableP()"> <style targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -464,14 +464,14 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="CD_Association_Interface_To_Enumeration" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Type").getAssociationP()%>" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Enumeration']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Association_Interface_To_Enumeration" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Type).getAssociationP()" semanticElements="aql:Sequence{self} + self.memberEnd" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Enumeration']" targetFinderExpression="aql:self.memberEnd->first().type" sourceFinderExpression="aql:self.memberEnd->at(2).type" targetExpression="var:self" domainClass="Association" useDomainElement="true" pathExpression=""> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10" labelExpression="<%if (memberEnd.nGet(0).isNavigableP) {%><%memberEnd.nGet(0).name%><%}%><%if (memberEnd.nGet(0).isNavigableP && memberEnd.nGet(1).isNavigableP) {%> - <%}%><%if (memberEnd.nGet(1).isNavigableP) {%><%memberEnd.nGet(1).name%><%}%>"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(0).isNavigableP && $view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->first().isNavigableP() and view.target.memberEnd->at(2).isNavigableP()"> <style sourceArrow="InputArrow" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -479,7 +479,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%$view.target.memberEnd.nGet(1).isNavigableP && !$view.target.memberEnd.nGet(0).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:view.target.memberEnd->at(2).isNavigableP() and not view.target.memberEnd->first().isNavigableP()"> <style sourceArrow="InputArrow" targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -487,7 +487,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!$view.target.memberEnd.nGet(0).isNavigableP && !$view.target.memberEnd.nGet(1).isNavigableP%>"> + <conditionnalStyles predicateExpression="aql:not view.target.memberEnd->first().isNavigableP() and not view.target.memberEnd->at(2).isNavigableP()"> <style targetArrow="NoDecoration" sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription labelSize="10"> @@ -496,42 +496,42 @@ </style> </conditionnalStyles> </edgeMappings> - <edgeMappings name="CD_Generalization_Class_To_Class" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Classifier").generalization%>" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="" domainClass="Generalization" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Generalization_Class_To_Class" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Classifier).generalization" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="" domainClass="Generalization" useDomainElement="true" pathExpression=""> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </edgeMappings> - <edgeMappings name="CD_Generalization_Interface_To_Interface" semanticCandidatesExpression="<%$viewpoint.eAllContents("DSemanticDecorator").target.filter("Interface").generalization%>" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="" domainClass="Generalization" useDomainElement="true" pathExpression=""> + <edgeMappings name="CD_Generalization_Interface_To_Interface" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Interface).generalization" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.general" sourceFinderExpression="aql:self.specific" targetExpression="" domainClass="Generalization" useDomainElement="true" pathExpression=""> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </edgeMappings> - <edgeMappings name="CD_InterfaceRealization" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Class").interfaceRealization%>" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.contract" sourceFinderExpression="<%implementingClassifier%>" targetExpression="" domainClass="InterfaceRealization" useDomainElement="true"> + <edgeMappings name="CD_InterfaceRealization" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(uml::Class).interfaceRealization" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.contract" sourceFinderExpression="aql:self.implementingClassifier" targetExpression="" domainClass="InterfaceRealization" useDomainElement="true"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </edgeMappings> - <edgeMappings name="CD_Dependency_Class_To_Class" preconditionExpression="<%filter("InterfaceRealization").nSize == 0%>" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Class").clientDependency%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> + <edgeMappings name="CD_Dependency_Class_To_Class" preconditionExpression="aql:self->filter(InterfaceRealization)->size() = 0" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(Class).clientDependency" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </edgeMappings> - <edgeMappings name="CD_Dependency_Class_To_Interface" preconditionExpression="<%filter("InterfaceRealization").nSize == 0%>" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Class").clientDependency%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> + <edgeMappings name="CD_Dependency_Class_To_Interface" preconditionExpression="aql:self->filter(InterfaceRealization)->size() = 0" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(Class).clientDependency" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </edgeMappings> - <edgeMappings name="CD_Dependency_Interface_To_Class" preconditionExpression="<%filter("InterfaceRealization").nSize == 0%>" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Interface").clientDependency%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> + <edgeMappings name="CD_Dependency_Interface_To_Class" preconditionExpression="aql:self->filter(InterfaceRealization)->size() = 0" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(Interface).clientDependency" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </edgeMappings> - <edgeMappings name="CD_Dependency_Interface_To_Interface" preconditionExpression="<%filter("InterfaceRealization").nSize == 0%>" semanticCandidatesExpression="<%$viewpoint.eAllContents("DecorateSemanticElement").target.filter("Interface").clientDependency%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> + <edgeMappings name="CD_Dependency_Interface_To_Interface" preconditionExpression="aql:self->filter(InterfaceRealization)->size() = 0" semanticCandidatesExpression="aql:viewpoint.eAllContents(viewpoint::DSemanticDecorator).target->filter(Interface).clientDependency" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface']" targetFinderExpression="aql:self.supplier" sourceFinderExpression="aql:self.client" targetExpression="var:self" domainClass="Dependency" useDomainElement="true"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </edgeMappings> - <containerMappings name="CD_Package" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@toolSection/@ownedTools[name='Object%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Class%20Diagram']" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%(eContents.filter("Package") + packageImport.importedPackage).nMinimize%>" documentation="Mapping to create packages" domainClass="Package" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Package']"> + <containerMappings name="CD_Package" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@toolSection/@ownedTools[name='Object%20Diagram'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Class%20Diagram']" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:(self.eContents()->filter(uml::Package) + self.packageImport.importedPackage)->asSet()" documentation="Mapping to create packages" domainClass="Package" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Class%20Diagram']/@containerMappings[name='CD_Package']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -539,16 +539,16 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> </containerMappings> - <containerMappings name="CD_Class" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Sequence%20Diagram']" preconditionExpression="<%(filter("Class") + filter("DataType")).nSize() > 0%>" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedType" documentation="Mapping to create classes" domainClass="Class" childrenPresentation="List"> - <subNodeMappings name="CD_Property" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%attribute%>" documentation="Mapping to create attributes" domainClass="Property"> - <style xsi:type="style:BundledImageDescription" labelExpression="<%visibility.visibilityToString%> <%name%> : <%type.name%>" labelAlignment="LEFT" sizeComputationExpression="2"> + <containerMappings name="CD_Class" detailDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@subSections[name='details']/@ownedTools[name='Sequence%20Diagram']" preconditionExpression="aql:self.oclIsKindOf(uml::Class) or self.oclIsKindOf(uml::DataType)" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedType" documentation="Mapping to create classes" domainClass="Class" childrenPresentation="List"> + <subNodeMappings name="CD_Property" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.attribute" documentation="Mapping to create attributes" domainClass="Property"> + <style xsi:type="style:BundledImageDescription" labelExpression="aql:self.visibility.visibilityToString() + ' ' + self.name + ' : ' + self.type.name" labelAlignment="LEFT" sizeComputationExpression="2"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </subNodeMappings> - <subNodeMappings name="CD_Operation" preconditionExpression="<%$container == eContainer%>" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%ownedOperation%>" domainClass="Operation"> - <style xsi:type="style:BundledImageDescription" labelExpression="<%name%>(<%parametersToString%>) : <%type.name%>" labelAlignment="LEFT" sizeComputationExpression="2"> + <subNodeMappings name="CD_Operation" preconditionExpression="aql:container = self.eContainer()" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedOperation" domainClass="Operation"> + <style xsi:type="style:BundledImageDescription" labelExpression="aql:self.name + '(' +self.parametersToString() + ') : ' + self.type.name" labelAlignment="LEFT" sizeComputationExpression="2"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -587,7 +587,7 @@ </style> </conditionnalStyles> </containerMappings> - <containerMappings name="CD_Enumeration" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%ownedType.filter("Enumeration")%>" semanticElements="" domainClass="Enumeration" childrenPresentation="List"> + <containerMappings name="CD_Enumeration" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedType->filter(uml::Enumeration)" semanticElements="" domainClass="Enumeration" childrenPresentation="List"> <subNodeMappings name="CD_EnumerationLiteral" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedLiteral" domainClass="EnumerationLiteral"> <style xsi:type="style:BundledImageDescription" labelAlignment="LEFT" sizeComputationExpression="2"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -619,7 +619,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Package" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Package<%eContainer().eContents().filter("Package").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Package' + self.eContainer().eContents()->filter(uml::Package)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -630,7 +630,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Class" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Class<%eContainer().eContents().filter("Class").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Class' + self.eContainer().eContents()->filter(uml::Class)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -641,7 +641,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Interface" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Interface<%eContainer().eContents().filter("Interface").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Interface' + self.eContainer().eContents()->filter(uml::Interface)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -652,7 +652,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Enumeration" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Enumeration<%eContainer.ownedType.filter("Enumeration").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Enumeration' + self.eContainer().ownedType->filter(uml::Enumeration)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -663,7 +663,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Property" referenceName="ownedAttribute"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Attribute<%eContainer().eContents().filter("Property").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Attribute' + self.eContainer().eContents()->filter(uml::Property)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -674,7 +674,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Operation" referenceName="ownedOperation"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Operation<%eContainer().eContents().filter("Operation").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Operation' + self.eContainer().eContents()->filter(uml::Operation)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -685,7 +685,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EnumerationLiteral" referenceName="ownedLiteral"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="EnumerationLiteral<%eContainer.ownedLiteral.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'EnumerationLiteral' + self.eContainer().ownedLiteral->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -699,11 +699,11 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:source.eContainer(ecore::EPackage)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Association" referenceName="packagedElement"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Property" referenceName="ownedEnd"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%$target.name.toL1Case%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:target.name.toLowerFirst()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="type" valueExpression="var:target"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Property" referenceName="ownedEnd"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%$source.name.toL1Case%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:source.name.toLowerFirst()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="type" valueExpression="var:source"/> </subModelOperations> <subModelOperations xsi:type="tool_1:SetValue" featureName="navigableOwnedEnd" valueExpression="aql:self.memberEnd->first()"/> @@ -754,7 +754,7 @@ </ownedTools> </subSections> <subSections name="wizard"> - <ownedTools xsi:type="tool_1:SelectionWizardDescription" documentation="Imports one or many packages." name="Import Package" precondition="<%$containerView.target.filter("Package").nSize() == 1%>" forceRefresh="true" candidatesExpression="<%getRootContainer.eAllContents("Package") - ($containerView.eContainer("ViewPoint").target.eAllContents("Package") + $containerView.target.packageImport.getImportedPackage + $containerView.target.ancestor.filter("Package"))%>" multiple="true"> + <ownedTools xsi:type="tool_1:SelectionWizardDescription" documentation="Imports one or many packages." name="Import Package" precondition="aql:containerView.target->filter(uml::Package)->size() = 1" forceRefresh="true" candidatesExpression="aql:self.eResource().getContent()->first().eAllContents(uml::Package) - (containerView.eContainerOrSelf(ViewPoint).target.eAllContents(uml::Package) + containerView.target.packageImport.getImportedPackage + containerView.target->ancestors()->filter(uml::Package))" multiple="true"> <element name="element"/> <containerView name="containerView"/> <container name="container"/> @@ -774,7 +774,7 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@toolSection/@ownedTools[name='Drop%20Interface%20on%20canvas']" name="Component Diagram" domainClass="Package"> - <nodeMappings name="CO_Interface" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%eContainer("Model").eAllContents("Interface")%>" createElements="false" domainClass="Interface"> + <nodeMappings name="CO_Interface" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eContainerOrSelf(uml::Model).eAllContents(uml::Interface)" createElements="false" domainClass="Interface"> <style xsi:type="style:BundledImageDescription" showIcon="false" shape="dot"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelFormat>italic</labelFormat> @@ -792,7 +792,7 @@ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='yellow']"/> </style> </edgeMappings> - <edgeMappings name="CO_Redefined" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetFinderExpression="<%redefinedPort%>" sourceFinderExpression="var:self" domainClass="Port"> + <edgeMappings name="CO_Redefined" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetFinderExpression="aql:self.redefinedPort" sourceFinderExpression="var:self" domainClass="Port"> <style lineStyle="dot"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <centerLabelStyleDescription showIcon="false"> @@ -800,7 +800,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="CO_RedefinedImport" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_ImportedComponent']/@borderedNodeMappings[name='CO_PortImport']" targetFinderExpression="<%redefinedPort%>" sourceFinderExpression="var:self" domainClass="Port"> + <edgeMappings name="CO_RedefinedImport" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']/@borderedNodeMappings[name='CO_Port']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_ImportedComponent']/@borderedNodeMappings[name='CO_PortImport']" targetFinderExpression="aql:self.redefinedPort" sourceFinderExpression="var:self" domainClass="Port"> <style lineStyle="dot"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <centerLabelStyleDescription showIcon="false"> @@ -808,14 +808,14 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="CO_Component" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%eContents.filter("Component")%>" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']"> + <containerMappings name="CO_Component" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Component)" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_Component']"> <borderedNodeMappings name="CO_Port" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.ownedAttribute" domainClass="Port"> <style xsi:type="style:BundledImageDescription" showIcon="false" sizeComputationExpression="2"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='yellow']"/> </style> - <conditionnalStyles predicateExpression="<%redefinedPort.nSize > 0%>"> + <conditionnalStyles predicateExpression="aql:self.redefinedPort->size() > 0"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -830,14 +830,14 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> </style> </containerMappings> - <containerMappings name="CO_ImportedComponent" semanticCandidatesExpression="<%eContainer("Model").eAllContents("Component") - eAllContents("Component")%>" createElements="false" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_ImportedComponent']"> + <containerMappings name="CO_ImportedComponent" semanticCandidatesExpression="aql:self.eContainerOrSelf(Model).eAllContents(uml::Component) - self.eAllContents(uml::Component)" createElements="false" domainClass="Component" reusedContainerMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Component%20Diagram']/@containerMappings[name='CO_ImportedComponent']"> <borderedNodeMappings name="CO_PortImport" semanticCandidatesExpression="aql:self.ownedAttribute" domainClass="Port"> <style xsi:type="style:BundledImageDescription" showIcon="false" sizeComputationExpression="2"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='yellow']"/> </style> - <conditionnalStyles predicateExpression="<%redefinedPort.nSize > 0%>"> + <conditionnalStyles predicateExpression="aql:self.redefinedPort->size() > 0"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -954,14 +954,14 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_blue']"/> </style> - <conditionnalStyles predicateExpression="<%filter("Pseudostate").nSize > 0%>"> + <conditionnalStyles predicateExpression="aql:self.oclIsKindOf(uml::Pseudostate)"> <style xsi:type="style:BundledImageDescription" labelSize="10" shape="ring"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_blue']"/> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%filter("FinalState").nSize > 0%>"> + <conditionnalStyles predicateExpression="aql:self.oclIsKindOf(uml::FinalState)"> <style xsi:type="style:BundledImageDescription" labelSize="10" shape="dot"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -1020,7 +1020,7 @@ <sourceViewVariable name="sourceView"/> <targetViewVariable name="targetView"/> <initialOperation> - <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$source.eContainer("Region")%>"> + <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:source.eContainerOrSelf(uml::Region)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Transition" referenceName="transition"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="New Transition"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="var:source"/> @@ -1029,9 +1029,9 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:DiagramCreationDescription" documentation="Create a new StateMachine" name="StateMachine" browseExpression="<%eContents.filter("StateMachine").nLast()%>" diagramDescription="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='State%20Machine%20Diagram']"> + <ownedTools xsi:type="tool:DiagramCreationDescription" documentation="Create a new StateMachine" name="StateMachine" browseExpression="aql:self.eContents()->filter(uml::StateMachine)->last())" diagramDescription="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='State%20Machine%20Diagram']"> <initialOperation> - <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$containerView.target%>"> + <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:containerView.target"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="StateMachine" referenceName="packagedElement"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="New StateMachine"/> </subModelOperations> @@ -1043,19 +1043,19 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Sequence Diagram" domainClass="Interaction"> - <nodeMappings name="SD_Lifeline" semanticCandidatesExpression="<%lifeline%>" domainClass="Lifeline"> - <borderedNodeMappings name="SD_ExecutionSpecification" semanticCandidatesExpression="<%coveredBy%>" domainClass="BehaviorExecutionSpecification" reusedBorderedNodeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']/@borderedNodeMappings[name='SD_ExecutionSpecification']"> + <nodeMappings name="SD_Lifeline" semanticCandidatesExpression="aql:self.lifeline" domainClass="Lifeline"> + <borderedNodeMappings name="SD_ExecutionSpecification" semanticCandidatesExpression="aql:self.coveredBy" domainClass="BehaviorExecutionSpecification" reusedBorderedNodeMappings="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']/@borderedNodeMappings[name='SD_ExecutionSpecification']"> <style xsi:type="style:WorkspaceImageDescription" showIcon="false" labelExpression="aql:''" sizeComputationExpression="1" labelPosition="node" resizeKind="NORTH_SOUTH" arcWidth="1" arcHeight="1" workspacePath="/org.eclipse.sirius.tests.junit/images/es.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </borderedNodeMappings> - <style xsi:type="style:CustomStyleDescription" sizeComputationExpression="<%6%>" labelPosition="node" resizeKind="NSEW" id="uml2.LifelineStyle"> + <style xsi:type="style:CustomStyleDescription" sizeComputationExpression="6" labelPosition="node" resizeKind="NSEW" id="uml2.LifelineStyle"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </nodeMappings> - <edgeMappings name="SD_Message_Lifeline_To_Lifeline" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="<%message%>" semanticElements="<%current + sendEvent + receiveEvent%>" documentation="Show all messages between two lifelines." sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']" targetFinderExpression="<%receiveEvent.covered%>" sourceFinderExpression="<%sendEvent.covered%>" targetExpression="var:self" domainClass="Message" useDomainElement="true" pathExpression=""> + <edgeMappings name="SD_Message_Lifeline_To_Lifeline" labelDirectEdit="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Reused%20Description']/@toolSection/@ownedTools[name='NamedElementDirectEdit']" semanticCandidatesExpression="aql:self.message" semanticElements="aql:OrderedSet{self , self.sendEvent , self.receiveEvent}" documentation="Show all messages between two lifelines." sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Sequence%20Diagram']/@nodeMappings[name='SD_Lifeline']" targetFinderExpression="aql:self.receiveEvent.covered" sourceFinderExpression="aql:self.sendEvent.covered" targetExpression="var:self" domainClass="Message" useDomainElement="true" pathExpression=""> <style routingStyle="manhattan"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> @@ -1085,19 +1085,19 @@ </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="MessageOccurrenceSpecification" referenceName="fragment"> <subModelOperations xsi:type="tool_1:SetValue" featureName="covered" valueExpression="var:source"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="message" valueExpression="<%$source.eContainer("Interaction").message.nLast%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="message" valueExpression="aql:source.eContainerOrSelf(interactions::Interaction).message->last()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="send event"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%message.nLast%>"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="sendEvent" valueExpression="<%interaction.fragment.nLast%>"/> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.message->last()"> + <subModelOperations xsi:type="tool_1:SetValue" featureName="sendEvent" valueExpression="aql:self.interaction.fragment->last()"/> </subModelOperations> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="MessageOccurrenceSpecification" referenceName="fragment"> <subModelOperations xsi:type="tool_1:SetValue" featureName="covered" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="message" valueExpression="<%$source.eContainer("Interaction").message.nLast%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="message" valueExpression="aql:source.eContainerOrSelf(interactions::Interaction).message->last()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="receive event"/> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%message.nLast%>"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="receiveEvent" valueExpression="<%interaction.fragment.nLast%>"/> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.message->last()"> + <subModelOperations xsi:type="tool_1:SetValue" featureName="receiveEvent" valueExpression="aql:self.interaction.fragment->last()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -1108,8 +1108,8 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:container.eContainerOrSelf(interactions::Interaction)"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="BehaviorExecutionSpecification" referenceName="fragment"/> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%($containerView + $containerView.ancestor)[target.filter("Lifeline").nSize() > 0].target%>"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredBy" valueExpression="<%eContainer("Interaction").fragment.nLast%>"/> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:(containerView + containerView->ancestors())->select( e | e.target->filter(uml::Lifeline)->size() > 0).target"> + <subModelOperations xsi:type="tool_1:SetValue" featureName="coveredBy" valueExpression="aql:self.eContainerOrSelf(interactions::Interaction).fragment->last()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -1118,17 +1118,17 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Diagrams to show instances and relation between them." name="Object Diagram" domainClass="Package"> - <edgeMappings name="OD_Slot" semanticCandidatesExpression="<%packagedElement.filter("InstanceSpecification").slot[value.filter("InstanceValue")]%>" semanticElements="<%current + definingFeature%>" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@containerMappings[name='OD_InstanceSpecification']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@containerMappings[name='OD_InstanceSpecification']" targetFinderExpression="<%value.filter("InstanceValue").instance%>" sourceFinderExpression="<%owningInstance%>" domainClass="Slot" useDomainElement="true"> + <edgeMappings name="OD_Slot" semanticCandidatesExpression="aql:self.packagedElement->filter(uml::InstanceSpecification).slot->select( e | e.value->filter(InstanceValue)->size() > 0)" semanticElements="aql:Sequence{self} + Sequence{self.definingFeature}" sourceMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@containerMappings[name='OD_InstanceSpecification']" targetMapping="//@ownedViewpoints[name='UML%20Analysis%20workspace']/@ownedRepresentations[name='Object%20Diagram']/@containerMappings[name='OD_InstanceSpecification']" targetFinderExpression="aql:self.value->filter(uml::InstanceValue).instance" sourceFinderExpression="aql:self.owningInstance" domainClass="Slot" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> - <centerLabelStyleDescription labelExpression="<%definingFeature.name%>"> + <centerLabelStyleDescription labelExpression="aql:self.definingFeature.name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> </edgeMappings> <containerMappings name="OD_InstanceSpecification" semanticCandidatesExpression="aql:self.packagedElement" semanticElements="" domainClass="InstanceSpecification" childrenPresentation="List"> - <subNodeMappings name="OD_SimpleSlot" semanticCandidatesExpression="feature:eAllContents" semanticElements="<%slot[!values.filter("InstanceValue")]%>" domainClass="Slot"/> - <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" borderSizeComputationExpression="1" labelExpression="<%name%> : <%classifier.nGet(0).name%>"> + <subNodeMappings name="OD_SimpleSlot" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:self.slot->select( e | e.values->filter(uml::InstanceValue)->size() = 0)" domainClass="Slot"/> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" borderSizeComputationExpression="1" labelExpression="aql:self.name + ' : ' + self.classifier->first().name"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> @@ -1148,7 +1148,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="InstanceSpecification" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="InstanceSpecification<%eContainer.packagedElement.filter("InstanceSpecification").nSize()%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'InstanceSpecification' + self.eContainer().packagedElement->filter(uml::InstanceSpecification)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/node/noderefresh.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/node/noderefresh.odesign index 4de5728987..895bc05445 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/node/noderefresh.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/node/noderefresh.odesign @@ -2,6 +2,7 @@ <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" version="10.0.0.201505222000"> <ownedViewpoints name="UML2" modelFileExtension="uml"> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Node Class Diagram" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="CD_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -12,6 +13,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Node Class Diagram with Import" domainClass="Package" reusedMappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20Diagram']/@nodeMappings[name='CD_Class']"/> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Node Class Diagram with Ports" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="CDP Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <borderedNodeMappings name="CDP Property" semanticCandidatesExpression="feature:eAllContents" domainClass="Property"> <style xsi:type="style:BundledImageDescription"> @@ -28,7 +30,8 @@ </nodeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Node Class Diagram with Semantic Candidates" domainClass="Package"> - <nodeMappings name="CD_Class" semanticCandidatesExpression="<%eContents.filter("Class")%>" domainClass="Class"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <nodeMappings name="CD_Class" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Class)" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -37,7 +40,8 @@ </nodeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Class Diagram with Semantic Candidates" domainClass="Package"> - <containerMappings name="CDSemantic_Class" semanticCandidatesExpression="<%eContents.filter("Class")%>" domainClass="Class"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <containerMappings name="CDSemantic_Class" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Class)" domainClass="Class"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -47,6 +51,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Class Diagram" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <containerMappings name="CD_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -58,6 +63,7 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Container Class Diagram with Import" domainClass="Package" reusedMappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20Diagram']/@containerMappings[name='CD_Class']"/> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Container Class Diagram with Ports" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <containerMappings name="CDPorts_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <borderedNodeMappings name="CDPorts_Property" semanticCandidatesExpression="feature:eAllContents" domainClass="Property"> <style xsi:type="style:BundledImageDescription"> @@ -75,6 +81,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Package Diagram" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <containerMappings name="Package" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -85,7 +92,8 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Package Diagram with Precondition" domainClass="Model"> - <containerMappings name="Package" preconditionExpression="<%name.endsWith("1")%>" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <containerMappings name="Package" preconditionExpression="aql:self.name.endsWith('1')" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -95,6 +103,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Package Diagram with Semantic Candidate" domainClass="Model" rootExpression=""> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <containerMappings name="Package" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EPackage)" domainClass="Package"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -105,6 +114,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Container Package Diagram with Recursive Package" domainClass="Model" rootExpression="aql:self.eContents()->filter(ecore::EPackage)"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <containerMappings name="Package Recur" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EPackage)" domainClass="Package" reusedContainerMappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Package%20Diagram%20with%20Recursive%20Package']/@containerMappings[name='Package%20Recur']"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -115,6 +125,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="ECD_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -132,6 +143,7 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram with Domain" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="ECD_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -149,6 +161,7 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Model Scaling Class Diagram" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="ECD_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -166,6 +179,7 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram with Container" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <edgeMappings name="ECD_PropertyEdge" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container']/@containerMappings[name='ECD_Class']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container']/@containerMappings[name='ECD_Class']" targetFinderExpression="aql:self.attribute.type"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> @@ -184,7 +198,8 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram with Container with Edge Mapping precondition" domainClass="Package"> - <edgeMappings name="ECD_PropertyEdge" preconditionExpression="<%$source.eClass().name =="Class" && $target.eClass().name =="Class"%>" semanticCandidatesExpression="feature:eAllContents" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container%20with%20Edge%20Mapping%20precondition']/@containerMappings[name='ECD_Class']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container%20with%20Edge%20Mapping%20precondition']/@containerMappings[name='ECD_Class']" targetFinderExpression="aql:self.attribute.type"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> + <edgeMappings name="ECD_PropertyEdge" preconditionExpression="aql:source.eClass().name ='Class' and target.eClass().name ='Class'" semanticCandidatesExpression="feature:eAllContents" semanticElements="" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container%20with%20Edge%20Mapping%20precondition']/@containerMappings[name='ECD_Class']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Edges%20Class%20Diagram%20with%20Container%20with%20Edge%20Mapping%20precondition']/@containerMappings[name='ECD_Class']" targetFinderExpression="aql:self.attribute.type"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -202,6 +217,7 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram with Container and Node" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="ECDCN_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -227,8 +243,9 @@ </containerMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" documentation="Test a simple class diagram with only a box representing a Class" name="Edges Class Diagram with Border to Node" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="ECDB_Class" semanticCandidatesExpression="feature:eAllContents" domainClass="Class"> - <borderedNodeMappings name="ECDB_BorderClass" semanticCandidatesExpression="<%eContainer("Class")%>" domainClass="Class"> + <borderedNodeMappings name="ECDB_BorderClass" semanticCandidatesExpression="aql:self.eContainerOrSelf(uml::Class)" domainClass="Class"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -251,13 +268,14 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Package Diagram With paths" initialisation="true" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="Package" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> - <conditionnalStyles predicateExpression="<%eContainer("Package").nSize == 0%>"> + <conditionnalStyles predicateExpression="aql:self.eContainerOrSelf(uml::Package)->size() = 0"> <style xsi:type="style:BundledImageDescription" sizeComputationExpression="4"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -273,7 +291,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="Browsing Path" semanticCandidatesExpression="var:self" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']" targetFinderExpression="<%eAllContents("Package").nLast%>" sourceFinderExpression="<%eAllContents("Package").nFirst%>" domainClass="Model" useDomainElement="true" pathExpression="<%eAllContents("Package")%>" pathNodeMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']"> + <edgeMappings name="Browsing Path" semanticCandidatesExpression="var:self" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']" targetFinderExpression="aql:self.eAllContents(uml::Package)->last()" sourceFinderExpression="aql:self.eAllContents(uml::Package)->first()" domainClass="Model" useDomainElement="true" pathExpression="aql:self.eAllContents(uml::Package)" pathNodeMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths']/@nodeMappings[name='Package']"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription> @@ -283,13 +301,14 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Package Diagram With paths and duplicate elements inside them" initialisation="true" domainClass="Model"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="Package" semanticCandidatesExpression="feature:eAllContents" domainClass="Package"> <style xsi:type="style:BundledImageDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> - <conditionnalStyles predicateExpression="<%eContainer("Package").nSize == 0%>"> + <conditionnalStyles predicateExpression="aql:self.eContainerOrSelf(uml::Package)->size() = 0"> <style xsi:type="style:BundledImageDescription" sizeComputationExpression="4"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -305,7 +324,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <edgeMappings name="Browsing Path" semanticCandidatesExpression="var:self" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']" targetFinderExpression="<%eAllContents("Package").nLast%>" sourceFinderExpression="<%eAllContents("Package").nFirst%>" domainClass="Model" useDomainElement="true" pathExpression="<%eAllContents("Package") + eAllContents("Package").nLast%>" pathNodeMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']"> + <edgeMappings name="Browsing Path" semanticCandidatesExpression="var:self" sourceMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']" targetFinderExpression="aql:self.eAllContents(uml::Package)->last()" sourceFinderExpression="aql:self.eAllContents(uml::Package)->first()" domainClass="Model" useDomainElement="true" pathExpression="aql:self.eAllContents(uml::Package) + Sequence{self.eAllContents(uml::Package)->last()}" pathNodeMapping="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Package%20Diagram%20With%20paths%20and%20duplicate%20elements%20inside%20them']/@nodeMappings[name='Package']"> <style lineStyle="dash"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription> @@ -315,14 +334,15 @@ </edgeMappings> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Node Class and Package Diagram with Ports" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <filters xsi:type="filter:CompositeFilterDescription" name="FilterPropertyStartingWithA"> - <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Class']/@borderedNodeMappings[name='CPDP%20Property']" semanticConditionExpression="<%!(name.startsWith("a"))%>"/> + <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Class']/@borderedNodeMappings[name='CPDP%20Property']" semanticConditionExpression="aql:not (self.name.startsWith('a'))"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="FilterClassAndPackageStartingWithA"> - <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Class'] //@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Package']" semanticConditionExpression="<%!(name.startsWith("a"))%>"/> + <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Class'] //@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@nodeMappings[name='CPDP%20Package']" semanticConditionExpression="aql:not (self.name.startsWith('a'))"/> </filters> - <nodeMappings name="CPDP Class" semanticCandidatesExpression="<%eContents().filter("Class")%>" domainClass="Class"> - <borderedNodeMappings name="CPDP Property" semanticCandidatesExpression="<%current.eAllContents[!startsWith("a")]%>" domainClass="Property"> + <nodeMappings name="CPDP Class" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Class)" domainClass="Class"> + <borderedNodeMappings name="CPDP Property" semanticCandidatesExpression="aql:self.eAllContents()->select( e | not e.toString().startsWith('a'))" domainClass="Property"> <style xsi:type="style:BundledImageDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -335,7 +355,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> - <nodeMappings name="CPDP Package" detailDescriptions="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@toolSection/@ownedTools[name='New%20diagram']" semanticCandidatesExpression="<%eContents().filter("Package")%>" domainClass="Package"> + <nodeMappings name="CPDP Package" detailDescriptions="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Node%20Class%20and%20Package%20Diagram%20with%20Ports']/@toolSection/@ownedTools[name='New%20diagram']" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Package)" domainClass="Package"> <style xsi:type="style:BundledImageDescription" sizeComputationExpression="20"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -351,20 +371,21 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Container Class and Package Diagram with Ports" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <filters xsi:type="filter:CompositeFilterDescription" name="FilterPropertyStartingWithA"> - <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']/@borderedNodeMappings[name='CCDP%20Property'] //@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']/@subNodeMappings[name='CCDP%20NodeProperty']/@borderedNodeMappings[name='CCDP%20NodeProperty%20BN']" semanticConditionExpression="<%!(name.startsWith("a"))%>"/> + <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']/@borderedNodeMappings[name='CCDP%20Property'] //@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']/@subNodeMappings[name='CCDP%20NodeProperty']/@borderedNodeMappings[name='CCDP%20NodeProperty%20BN']" semanticConditionExpression="aql:not (self.name.startsWith('a'))"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="FilterClassStartingWithA"> - <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']" semanticConditionExpression="<%!(name.startsWith("a"))%>"/> + <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@containerMappings[name='CCPD%20Class']" semanticConditionExpression="aql:not (self.name.startsWith('a'))"/> </filters> - <nodeMappings name="CPDP Package" detailDescriptions="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@toolSection/@ownedTools[name='New%20diagram']" semanticCandidatesExpression="<%eContents().filter("Package")%>" domainClass="Package"> + <nodeMappings name="CPDP Package" detailDescriptions="//@ownedViewpoints[name='UML2']/@ownedRepresentations[name='Container%20Class%20and%20Package%20Diagram%20with%20Ports']/@toolSection/@ownedTools[name='New%20diagram']" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Package)" domainClass="Package"> <style xsi:type="style:BundledImageDescription" sizeComputationExpression="20"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> </style> </nodeMappings> - <containerMappings name="CCPD Class" semanticCandidatesExpression="<%eContents().filter("Class")%>" domainClass="Class"> + <containerMappings name="CCPD Class" semanticCandidatesExpression="aql:self.eContents()->filter(uml::Class)" domainClass="Class"> <borderedNodeMappings name="CCDP Property" semanticCandidatesExpression="feature:eAllContents" domainClass="Property"> <style xsi:type="style:BundledImageDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -402,6 +423,7 @@ </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="LabelHiddenByDefault" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="PackageNode" semanticCandidatesExpression="aql:self.packagedElement" domainClass="http://www.eclipse.org/uml2/2.0.0/UML#//Package"> <borderedNodeMappings name="BorderedOnNodeClass" semanticCandidatesExpression="aql:self.ownedType" domainClass="http://www.eclipse.org/uml2/2.0.0/UML#//Class"> <style xsi:type="style:BundledImageDescription" hideLabelByDefault="true" resizeKind="NSEW"> @@ -444,7 +466,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="http://www.eclipse.org/uml2/2.0.0/UML#//Package" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="p<%eContainer.eAllContents.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'p' + self.eContainer().eAllContents()->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -453,13 +475,14 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="http://www.eclipse.org/uml2/2.0.0/UML#//Class" referenceName="ownedType"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="C<%eContainer.eAllContents.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'C' + self.eContainer().eAllContents()->size()"/> </firstModelOperations> </initialOperation> </ownedTools> </toolSection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="LabelVisibleByDefault" domainClass="Package"> + <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> <nodeMappings name="PackageNode" semanticCandidatesExpression="aql:self.packagedElement" domainClass="http://www.eclipse.org/uml2/2.0.0/UML#//Package"> <borderedNodeMappings name="BorderedOnNodeClass" semanticCandidatesExpression="aql:self.ownedType" domainClass="http://www.eclipse.org/uml2/2.0.0/UML#//Class"> <style xsi:type="style:BundledImageDescription" resizeKind="NSEW"> @@ -502,7 +525,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="http://www.eclipse.org/uml2/2.0.0/UML#//Package" referenceName="packagedElement"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="p<%eContainer.eAllContents.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'p' + self.eContainer().eAllContents()->size()"/> </firstModelOperations> </initialOperation> </ownedTools> @@ -511,7 +534,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="http://www.eclipse.org/uml2/2.0.0/UML#//Class" referenceName="ownedType"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="C<%eContainer.eAllContents.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'C' + self.eContainer().eAllContents()->size()"/> </firstModelOperations> </initialOperation> </ownedTools> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/VP-4407/VP-4407.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/VP-4407/VP-4407.odesign index 9f157738fc..0da4e08fa8 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/VP-4407/VP-4407.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/VP-4407/VP-4407.odesign @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="VP-4407" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="VP-4407" version="10.0.0.201505222000"> <ownedViewpoints name="VP-4407_Viewpoint" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="VP-4407_Diagram" domainClass="EPackage"> <defaultLayer name="Default"> <containerMappings name="Class" domainClass="EClass"> <borderedNodeMappings name="Attribute" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> - <style xsi:type="style:WorkspaceImageDescription" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/DesignerTestProject/StandardPortSmall.png"> + <style xsi:type="style:WorkspaceImageDescription" sizeComputationExpression="-1" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/DesignerTestProject/StandardPortSmall.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> - <conditionnalStyles predicateExpression="<%name.startsWith("a")%>"> - <style xsi:type="style:WorkspaceImageDescription" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/DesignerTestProject/InFlowPort.png"> + <conditionnalStyles predicateExpression="aql:self.name.startsWith('a')"> + <style xsi:type="style:WorkspaceImageDescription" sizeComputationExpression="-1" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/DesignerTestProject/InFlowPort.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </conditionnalStyles> </borderedNodeMappings> - <style xsi:type="style:FlatContainerStyleDescription"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_blue']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/ecore.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/ecore.odesign index e6de3b9f67..871a8ec26e 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/ecore.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/ecore.odesign @@ -19,7 +19,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> <fixes name="Remove Element"> <initialOperation> <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.target"> @@ -51,7 +51,7 @@ <conditionnalStyles predicateExpression="aql:self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="/<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:'/' + self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -64,7 +64,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$target.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:target->filter(ecore::EClass)->select( e | e.interface)"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="manhattan"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -104,7 +104,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%eContents.filter("EDataType")[eClass.name == "EDataType"]%>" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EDataType)->select( e | e.self.eClass().name = 'ecore::EDataType')" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -113,7 +113,7 @@ </style> </containerMappings> <containerMappings name="EC External EClass" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass) - self.eContents()->filter(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> - <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="<%name%> in <%eResourceName%>" backgroundStyle="GradientTopToBottom"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="aql:self.name + ' in ' + self.eResource().getURI().lastSegment()" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> @@ -146,7 +146,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -231,7 +231,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -422,7 +422,7 @@ </subModelOperations> </firstModelOperation> </ownedCreateLine> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%if (filter("EStructuralFeature").derived) {%>/<%}%><%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql: if self.derived then '/' + self.name else self.name endif"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Drop%20EClass%20from%20treeview']" name="Blank Entities" titleExpression="blank diagram" domainClass="EPackage"> <filters xsi:type="filter:CompositeFilterDescription" name="Hide class content"> @@ -442,14 +442,14 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name+' class has more than 4 super types'" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> </ownedRules> </validationSet> <defaultLayer name="Default"> - <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="<%eClassifiers.filter("EClass").eStructuralFeatures.filter("EReference")[!eOpposite]%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="aql:self.eClassifiers->filter(ecore::EClass).eStructuralFeatures->filter(ecore::EReference)->select( e | e.eOpposite = null)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="aql:if self.derived then '/' else '' + self.getEReferenceName()"> @@ -473,7 +473,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EClass")%>" createElements="false" domainClass="EClass" childrenPresentation="List"> + <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="EC EAttribute" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> <style xsi:type="style:BundledImageDescription" labelExpression="aql:if self.derived then '/' else '' endif + self.name + ' : ' + self.eType.name " labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -504,7 +504,7 @@ </style> </conditionnalStyles> </containerMappings> - <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EEnum")%>" createElements="false" domainClass="EEnum" childrenPresentation="List"> + <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EEnum)" createElements="false" domainClass="EEnum" childrenPresentation="List"> <subNodeMappings name="EC EEnumLiteral" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EEnumLiteral"> <style xsi:type="style:BundledImageDescription" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -519,7 +519,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EDataType")%>" createElements="false" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EDataType)" createElements="false" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -562,7 +562,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -780,7 +780,7 @@ <ownedViewpoints name="Quality" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Dependencies" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="<%((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainer("EPackage").nMinimize - self%>"> + <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="aql:((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainerOrSelf(ecore::EPackage)->asSet() - OrderedSet{self}"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription> @@ -788,7 +788,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%self + eAllContents("EPackage")%>" domainClass="EPackage"> + <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:Sequence{self} + self.eAllContents(ecore::EPackage)" domainClass="EPackage"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelSize="10" labelExpression="aql:self.name + ' : ' + self.nsURI" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -894,7 +894,7 @@ </containerMappings> </additionalLayers> <additionalLayers name="Uses"> - <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="<%eAllStructuralFeatures.filter("EReference").eType%>" sourceFinderExpression="" domainClass="EReference"> + <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="aql:self.eAllStructuralFeatures->filter(ecore::EReference).eType" sourceFinderExpression="" domainClass="EReference"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -1019,15 +1019,15 @@ </defaultForeground> <ownedSubLines name="Tag EStructural Features" domainClass="EStructuralFeature" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"/> </ownedLineMappings> - <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="<%getRootContainer.eAnnotations[source=="Tags"].details%>"/> - <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="TagValues"]%>" domainClass="EAnnotation"> + <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAnnotations->select( e | e.source='Tags').details"/> + <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="aql:self.eAllContents(EAnnotation)->select( e | e.source='TagValues')" domainClass="EAnnotation"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0.nSize == 0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0->size() = 0"> <subModelOperations xsi:type="tool:Unset" featureName="references" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1038,12 +1038,12 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="TagValues"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='TagValues')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="TagValues"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> <subModelOperations xsi:type="tool:SetValue" featureName="references" valueExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1055,12 +1055,12 @@ <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:self.eResource().getContents()->first()"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="Tags"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='Tags')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="Tags"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eAnnotations[source=="Tags"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eAnnotations->select( e | e.source='Tags')"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="NEWTAG"/> </subModelOperations> @@ -1080,7 +1080,7 @@ </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Doc Root" headerLabelExpression="Domain Documentation" domainClass="EPackage" semanticCandidatesExpression="aql:self.eResource().getContents()->at(1)"/> - <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="<%eContainer("EAnnotation").eContainer()%>" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>" domainClass="EStringToStringMapEntry"> + <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="aql:self.eContainerOrSelf(ecore::EAnnotation).eContainer()" semanticCandidatesExpression="aql:self.eAllContents(ecore::EAnnotation)->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel').details->select(d | d.key='documentation')" domainClass="EStringToStringMapEntry"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -1097,19 +1097,19 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="http://www.eclipse.org/emf/2002/GenModel"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%self.details[key=="documentation"].nSize == 0%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details" variableName="newDetail"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel'].details[key='documentation')"> <subModelOperations xsi:type="tool:SetValue" featureName="value" valueExpression="var:arg0"/> </subModelOperations> </firstModelOperation> @@ -1121,7 +1121,7 @@ <ownedViewpoints name="Generation" modelFileExtension="genmodel"> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="GenPackage Attributes" domainClass="GenPackage"> <ownedLineMappings name="GenClass" domainClass="GenClass" headerLabelExpression="aql:self.ecoreClass.name"> - <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="<%eAllContents("GenFeature")[ecoreFeature.filter("EAttribute") || (ecoreFeature.filter("EReference") && !ecoreFeature.filter("EReference").containment && !ecoreFeature.filter("EReference").derived) ]%>" headerLabelExpression="aql:self.ecoreFeature.name"> + <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="aql:self.eAllContents(genmodel::GenFeature)->select( e | e.ecoreFeature->filter(ecore::EAttribute) or (e.ecoreFeature.oclIsKindOf(ecore::EReference) and not e.ecoreFeature->filter(ecore::EReference).containment and not ecoreFeature.derived) )" headerLabelExpression="aql:self.ecoreFeature.name"> <backgroundConditionalStyle predicateExpression="aql:self.propertyCategory = ''"> <style> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/idAndLabels/ecore.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/idAndLabels/ecore.odesign index 69122bb3c8..7043458445 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/idAndLabels/ecore.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/idAndLabels/ecore.odesign @@ -19,7 +19,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> <fixes name="Remove Element"> <initialOperation> <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.target"> @@ -51,7 +51,7 @@ <conditionnalStyles predicateExpression="aql:self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="/<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:'/' + self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -64,7 +64,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$target.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:target->filter(ecore::EClass)->select( e | e.interface)"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="manhattan"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -110,7 +110,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%eContents.filter("EDataType")[eClass.name == "EDataType"]%>" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EDataType)->select( e | e.self.eClass().name = 'ecore::EDataType')" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -119,7 +119,7 @@ </style> </containerMappings> <containerMappings name="EC External EClass" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass) - self.eContents()->filter(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> - <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="<%name%> in <%eResourceName%>" backgroundStyle="GradientTopToBottom"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="aql:self.name + ' in ' + self.eResource().getURI().lastSegment()" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> @@ -152,7 +152,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -237,7 +237,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -428,7 +428,7 @@ </subModelOperations> </firstModelOperation> </ownedCreateLine> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%if (filter("EStructuralFeature").derived) {%>/<%}%><%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql: if self.derived then '/' + self.name else self.name endif"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Drop%20EClass%20from%20treeview']" name="Blank Entities" titleExpression="blank diagram" domainClass="EPackage"> <filters xsi:type="filter:CompositeFilterDescription" name="Hide class content"> @@ -448,14 +448,14 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name+' class has more than 4 super types'" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> </ownedRules> </validationSet> <defaultLayer name="Default"> - <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="<%eClassifiers.filter("EClass").eStructuralFeatures.filter("EReference")[!eOpposite]%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="aql:self.eClassifiers->filter(ecore::EClass).eStructuralFeatures->filter(ecore::EReference)->select( e | e.eOpposite = null)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="aql:if self.derived then '/' else '' + self.getEReferenceName()"> @@ -479,7 +479,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EClass")%>" createElements="false" domainClass="EClass" childrenPresentation="List"> + <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="EC EAttribute" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> <style xsi:type="style:BundledImageDescription" labelExpression="aql:if self.derived then '/' else '' endif + self.name + ' : ' + self.eType.name " labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -510,7 +510,7 @@ </style> </conditionnalStyles> </containerMappings> - <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EEnum")%>" createElements="false" domainClass="EEnum" childrenPresentation="List"> + <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EEnum)" createElements="false" domainClass="EEnum" childrenPresentation="List"> <subNodeMappings name="EC EEnumLiteral" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EEnumLiteral"> <style xsi:type="style:BundledImageDescription" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -525,7 +525,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EDataType")%>" createElements="false" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EDataType)" createElements="false" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -568,7 +568,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -786,7 +786,7 @@ <ownedViewpoints name="Quality" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Dependencies" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="<%((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainer("EPackage").nMinimize - self%>"> + <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="aql:((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainerOrSelf(ecore::EPackage)->asSet() - OrderedSet{self}"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription labelExpression="aql:self.name"> @@ -794,7 +794,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%self + eAllContents("EPackage")%>" domainClass="EPackage"> + <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:Sequence{self} + self.eAllContents(ecore::EPackage)" domainClass="EPackage"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelSize="10" labelExpression="aql:self.name + ' : ' + self.nsURI" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -900,7 +900,7 @@ </containerMappings> </additionalLayers> <additionalLayers name="Uses"> - <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="<%eAllStructuralFeatures.filter("EReference").eType%>" sourceFinderExpression="" domainClass="EReference"> + <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="aql:self.eAllStructuralFeatures->filter(ecore::EReference).eType" sourceFinderExpression="" domainClass="EReference"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="aql:self.name"> @@ -1025,15 +1025,15 @@ </defaultForeground> <ownedSubLines name="Tag EStructural Features" domainClass="EStructuralFeature" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"/> </ownedLineMappings> - <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="<%getRootContainer.eAnnotations[source=="Tags"].details%>"/> - <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="TagValues"]%>" domainClass="EAnnotation"> + <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAnnotations->select( e | e.source='Tags').details"/> + <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="aql:self.eAllContents(EAnnotation)->select( e | e.source='TagValues')" domainClass="EAnnotation"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0.nSize == 0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0->size() = 0"> <subModelOperations xsi:type="tool:Unset" featureName="references" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1044,12 +1044,12 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="TagValues"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='TagValues')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="TagValues"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> <subModelOperations xsi:type="tool:SetValue" featureName="references" valueExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1061,12 +1061,12 @@ <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:self.eResource().getContents()->first()"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="Tags"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='Tags')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="Tags"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eAnnotations[source=="Tags"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eAnnotations->select( e | e.source='Tags')"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="NEWTAG"/> </subModelOperations> @@ -1086,7 +1086,7 @@ </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Doc Root" headerLabelExpression="Domain Documentation" domainClass="EPackage" semanticCandidatesExpression="aql:self.eResource().getContents()->at(1)"/> - <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="<%eContainer("EAnnotation").eContainer()%>" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>" domainClass="EStringToStringMapEntry"> + <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="aql:self.eContainerOrSelf(ecore::EAnnotation).eContainer()" semanticCandidatesExpression="aql:self.eAllContents(ecore::EAnnotation)->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel').details->select(d | d.key='documentation')" domainClass="EStringToStringMapEntry"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -1103,19 +1103,19 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="http://www.eclipse.org/emf/2002/GenModel"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%self.details[key=="documentation"].nSize == 0%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details" variableName="newDetail"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel'].details[key='documentation')"> <subModelOperations xsi:type="tool:SetValue" featureName="value" valueExpression="var:arg0"/> </subModelOperations> </firstModelOperation> @@ -1127,7 +1127,7 @@ <ownedViewpoints name="Generation" modelFileExtension="genmodel"> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="GenPackage Attributes" domainClass="GenPackage"> <ownedLineMappings name="GenClass" domainClass="GenClass" headerLabelExpression="aql:self.ecoreClass.name"> - <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="<%eAllContents("GenFeature")[ecoreFeature.filter("EAttribute") || (ecoreFeature.filter("EReference") && !ecoreFeature.filter("EReference").containment && !ecoreFeature.filter("EReference").derived) ]%>" headerLabelExpression="aql:self.ecoreFeature.name"> + <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="aql:self.eAllContents(genmodel::GenFeature)->select( e | e.ecoreFeature->filter(ecore::EAttribute) or (e.ecoreFeature.oclIsKindOf(ecore::EReference) and not e.ecoreFeature->filter(ecore::EReference).containment and not ecoreFeature.derived) )" headerLabelExpression="aql:self.ecoreFeature.name"> <backgroundConditionalStyle predicateExpression="aql:self.propertyCategory = ''"> <style> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/layers/ecore.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/layers/ecore.odesign index cb8c86ec80..8928371836 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/layers/ecore.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/style/layers/ecore.odesign @@ -19,7 +19,7 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> <fixes name="Remove Element"> <initialOperation> <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.target"> @@ -51,7 +51,7 @@ <conditionnalStyles predicateExpression="aql:self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="/<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:'/' + self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -64,7 +64,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$target.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:target->filter(ecore::EClass)->select( e | e.interface)"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="manhattan"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -109,7 +109,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%eContents.filter("EDataType")[eClass.name == "EDataType"]%>" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EDataType)->select( e | e.self.eClass().name = 'ecore::EDataType')" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -118,7 +118,7 @@ </style> </containerMappings> <containerMappings name="EC External EClass" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass) - self.eContents()->filter(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> - <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="<%name%> in <%eResourceName%>" backgroundStyle="GradientTopToBottom"> + <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" tooltipExpression="aql:self.name + ' in ' + self.eResource().getURI().lastSegment()" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/> @@ -151,7 +151,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -236,7 +236,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -367,7 +367,7 @@ </style> </containerMappings> <containerMappings xsi:type="description_1:ContainerMappingImport" name="Import EC_Class" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" importedMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"> - <conditionnalStyles predicateExpression="<%name == "C11"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'C11'"> <style xsi:type="style:ShapeContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -436,7 +436,7 @@ </subModelOperations> </firstModelOperation> </ownedCreateLine> - <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="<%if (filter("EStructuralFeature").derived) {%>/<%}%><%name%>"/> + <ownedColumnMappings name="Name" headerLabelExpression="Name" featureName="name" labelExpression="aql: if self.derived then '/' + self.name else self.name endif"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Drop%20EClass%20from%20treeview']" name="Blank Entities" titleExpression="blank diagram" domainClass="EPackage"> <filters xsi:type="filter:CompositeFilterDescription" name="Hide class content"> @@ -456,14 +456,14 @@ </filters> <validationSet> <ownedRules xsi:type="validation:ViewValidationRule" message="something" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> - <audits auditExpression="<%(((target + target.eAllSuperTypes).~.filter("EClass") + (target + target.eAllSuperTypes).~.filter("EReference") ) - target.eAllStructuralFeatures).nSize != 0%>"/> + <audits auditExpression="aql:(((Sequence{self.target} + target.eAllSuperTypes).eInverse()->filter(ecore::EClass) + (Sequence{target} + target.eAllSuperTypes).eInverse()->filter(ecore::EReference) ) - Sequence{target.eAllStructuralFeatures})->size() <> 0"/> </ownedRules> <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'The ' + self.target.name+' class has more than 4 super types'" targets="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']"> <audits auditExpression="aql:self.target.eAllSuperTypes->size() < 4"/> </ownedRules> </validationSet> <defaultLayer name="Default"> - <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="<%eClassifiers.filter("EClass").eStructuralFeatures.filter("EReference")[!eOpposite]%>" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="Blank EC_EReference " labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='EReference%20Name']" semanticCandidatesExpression="aql:self.eClassifiers->filter(ecore::EClass).eStructuralFeatures->filter(ecore::EReference)->select( e | e.eOpposite = null)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetMapping="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@containerMappings[name='Blank%20EC%20EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="feature:eContainer" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="aql:if self.derived then '/' else '' + self.getEReferenceName()"> @@ -487,7 +487,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EClass")%>" createElements="false" domainClass="EClass" childrenPresentation="List"> + <containerMappings name="Blank EC EClass" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EClass)" createElements="false" domainClass="EClass" childrenPresentation="List"> <subNodeMappings name="EC EAttribute" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20EAttribute%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EAttribute"> <style xsi:type="style:BundledImageDescription" labelExpression="aql:if self.derived then '/' else '' endif + self.name + ' : ' + self.eType.name " labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -518,7 +518,7 @@ </style> </conditionnalStyles> </containerMappings> - <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EEnum")%>" createElements="false" domainClass="EEnum" childrenPresentation="List"> + <containerMappings name="Blank EC EEnum" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EEnum)" createElements="false" domainClass="EEnum" childrenPresentation="List"> <subNodeMappings name="EC EEnumLiteral" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="feature:eAllContents" domainClass="EEnumLiteral"> <style xsi:type="style:BundledImageDescription" labelAlignment="LEFT" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -533,7 +533,7 @@ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> </style> </containerMappings> - <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%allRoots.eAllContents("EDataType")%>" createElements="false" domainClass="EDataType" childrenPresentation="List"> + <containerMappings name="Blank EC EDataType" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Blank%20Entities']/@defaultLayer/@toolSections.0/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:self.allRoots().eAllContents(ecore::EDataType)" createElements="false" domainClass="EDataType" childrenPresentation="List"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -576,7 +576,7 @@ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -794,7 +794,7 @@ <ownedViewpoints name="Quality" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Dependencies" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="<%((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainer("EPackage").nMinimize - self%>"> + <edgeMappings name="Package Dependency" semanticCandidatesExpression="feature:eAllContents" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Dependencies']/@defaultLayer/@containerMappings[name='Dep%20Package']" targetFinderExpression="aql:((self.eClassifiers.eAllStructuralFeatures.eType) + (self.eClassifiers.eAllSuperTypes)).eContainerOrSelf(ecore::EPackage)->asSet() - OrderedSet{self}"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <centerLabelStyleDescription> @@ -802,7 +802,7 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="<%self + eAllContents("EPackage")%>" domainClass="EPackage"> + <containerMappings name="Dep Package" labelDirectEdit="//@ownedViewpoints[name='Design861']/@ownedRepresentations[name='Entities']/@defaultLayer/@toolSections.4/@ownedTools[name='Edit%20Name']" semanticCandidatesExpression="aql:Sequence{self} + self.eAllContents(ecore::EPackage)" domainClass="EPackage"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1" labelSize="10" labelExpression="aql:self.name + ' : ' + self.nsURI" backgroundStyle="GradientTopToBottom"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -908,7 +908,7 @@ </containerMappings> </additionalLayers> <additionalLayers name="Uses"> - <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="<%eAllStructuralFeatures.filter("EReference").eType%>" sourceFinderExpression="" domainClass="EReference"> + <edgeMappings name="Related Use EReference" semanticCandidatesExpression="feature:eAllContents" semanticElements="aql:null" sourceMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@defaultLayer/@containerMappings[name='R%20Domain%20Class']" targetMapping="//@ownedViewpoints[name='Quality']/@ownedRepresentations[name='Relations']/@additionalLayers[name='Uses']/@containerMappings[name='R%20Uses%20Classes']" targetFinderExpression="aql:self.eAllStructuralFeatures->filter(ecore::EReference).eType" sourceFinderExpression="" domainClass="EReference"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -1033,15 +1033,15 @@ </defaultForeground> <ownedSubLines name="Tag EStructural Features" domainClass="EStructuralFeature" headerLabelExpression="aql:self.eClass().name+ ' : ' + self.name"/> </ownedLineMappings> - <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="<%getRootContainer.eAnnotations[source=="Tags"].details%>"/> - <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="TagValues"]%>" domainClass="EAnnotation"> + <ownedColumnMappings name="Available Tags" headerLabelExpression="<%if (filter("EStructuralFeature") && derived) {%>/<%}%><%key%>" domainClass="EStringToStringMapEntry" semanticCandidatesExpression="aql:self.eResource().getContent()->first().eAnnotations->select( e | e.source='Tags').details"/> + <intersection name="Elements to Tags" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedLineMappings[name='Tags%20EClassifiers']/@ownedSubLines[name='Tag%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Tags']/@ownedColumnMappings.0" labelExpression="XXXXXX" useDomainClass="true" columnFinderExpression="aql:self.references" lineFinderExpression="feature:eContainer" semanticCandidatesExpression="aql:self.eAllContents(EAnnotation)->select( e | e.source='TagValues')" domainClass="EAnnotation"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column (only available for Intersection Mapping)."/> <variables name="root" documentation="The semantic element of the table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0.nSize == 0%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0->size() = 0"> <subModelOperations xsi:type="tool:Unset" featureName="references" elementExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1052,12 +1052,12 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="TagValues"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='TagValues')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="TagValues"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="TagValues"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='TagValues')"> <subModelOperations xsi:type="tool:SetValue" featureName="references" valueExpression="var:columnSemantic"/> </subModelOperations> </firstModelOperation> @@ -1069,12 +1069,12 @@ <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:self.eResource().getContents()->first()"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="Tags"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='Tags')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="Tags"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eAnnotations[source=="Tags"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eAnnotations->select( e | e.source='Tags')"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="NEWTAG"/> </subModelOperations> @@ -1094,7 +1094,7 @@ </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Doc Root" headerLabelExpression="Domain Documentation" domainClass="EPackage" semanticCandidatesExpression="aql:self.eResource().getContents()->at(1)"/> - <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="<%eContainer("EAnnotation").eContainer()%>" semanticCandidatesExpression="<%eAllContents("EAnnotation")[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>" domainClass="EStringToStringMapEntry"> + <intersection name="EModelElements to Doc Annotation" semanticElements="var:self" lineMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers'] //@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedLineMappings[name='Doc%20EClassifiers']/@ownedSubLines[name='Doc%20EStructural%20Features']" columnMapping="//@ownedViewpoints[name='Review']/@ownedRepresentations[name='Documentation']/@ownedColumnMappings.0" labelExpression="aql:self.value" useDomainClass="true" columnFinderExpression="aql:self.eResource().getContents()->first()" lineFinderExpression="aql:self.eContainerOrSelf(ecore::EAnnotation).eContainer()" semanticCandidatesExpression="aql:self.eAllContents(ecore::EAnnotation)->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel').details->select(d | d.key='documentation')" domainClass="EStringToStringMapEntry"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -1111,19 +1111,19 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].nSize == 0%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations" variableName="newAnnotation"> <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="http://www.eclipse.org/emf/2002/GenModel"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"]%>"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%self.details[key=="documentation"].nSize == 0%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel')"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details" variableName="newDetail"> <subModelOperations xsi:type="tool:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%$lineSemantic.eAnnotations[source=="http://www.eclipse.org/emf/2002/GenModel"].details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:lineSemantic.eAnnotations->select( e | e.source='http://www.eclipse.org/emf/2002/GenModel'].details[key='documentation')"> <subModelOperations xsi:type="tool:SetValue" featureName="value" valueExpression="var:arg0"/> </subModelOperations> </firstModelOperation> @@ -1135,7 +1135,7 @@ <ownedViewpoints name="Generation" modelFileExtension="genmodel"> <ownedRepresentations xsi:type="description_2:EditionTableDescription" name="GenPackage Attributes" domainClass="GenPackage"> <ownedLineMappings name="GenClass" domainClass="GenClass" headerLabelExpression="aql:self.ecoreClass.name"> - <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="<%eAllContents("GenFeature")[ecoreFeature.filter("EAttribute") || (ecoreFeature.filter("EReference") && !ecoreFeature.filter("EReference").containment && !ecoreFeature.filter("EReference").derived) ]%>" headerLabelExpression="aql:self.ecoreFeature.name"> + <ownedSubLines name="GenFeature" domainClass="GenFeature" semanticCandidatesExpression="aql:self.eAllContents(genmodel::GenFeature)->select( e | e.ecoreFeature->filter(ecore::EAttribute) or (e.ecoreFeature.oclIsKindOf(ecore::EReference) and not e.ecoreFeature->filter(ecore::EReference).containment and not ecoreFeature.derived) )" headerLabelExpression="aql:self.ecoreFeature.name"> <backgroundConditionalStyle predicateExpression="aql:self.propertyCategory = ''"> <style> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/tables.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/tables.odesign index 503bb7457a..0930874b96 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/tables.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/refresh/tables.odesign @@ -2,7 +2,7 @@ <description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/table/description/1.1.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" name="UML2 Tables tests" version="10.0.0.201505222000"> <ownedViewpoints documentation="Sample of some UML tables " name="UML2 tables for tests" modelFileExtension="uml"> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Colored Classes Table" domainClass="Model"> - <ownedLineMappings name="Model Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']/@ownedRepresentationCreationDescriptions[name='To%20Class%20and%20subClass%20with%20some%20attributes']" domainClass="Class" semanticCandidatesExpression="" headerLabelExpression="Class : <%name%>"> + <ownedLineMappings name="Model Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Class%20and%20subClass%20with%20some%20attributes']/@ownedRepresentationCreationDescriptions[name='To%20Class%20and%20subClass%20with%20some%20attributes']" domainClass="Class" semanticCandidatesExpression="" headerLabelExpression="aql:'Class : ' + self.name"> <defaultForeground> <foreGroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> </defaultForeground> @@ -34,7 +34,7 @@ <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="AA<%$0%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'AA' + arg0"/> </firstModelOperation> <mask mask="{0}"/> </directEdit> @@ -74,7 +74,7 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%eParent%>"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.eParent"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Association" referenceName="packagedElement" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="newAssociation"/> </subModelOperations> @@ -85,7 +85,7 @@ </intersection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="All Types and Instance" domainClass="Model"> - <ownedLineMappings name="All EClasses" domainClass="EClass" semanticCandidatesExpression="<%eAllContents().eClass.minimize.sort%>" headerLabelExpression="aql:self.name"> + <ownedLineMappings name="All EClasses" domainClass="EClass" semanticCandidatesExpression="aql:self.eAllContents().eClass()->asSet()" headerLabelExpression="aql:self.name"> <ownedSubLines name="Instances" domainClass="EObject" semanticCandidatesExpression="<%$root.eAllContents($container.name)%>" headerLabelExpression="aql:self.name"/> </ownedLineMappings> <ownedColumnMappings name="Instances count" headerLabelExpression="Count" featureName="Count" labelExpression="<%$container.filter("EClass").$root.eAllContents($container.name).nSize%>"/> @@ -98,7 +98,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="ClassLine<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'ClassLine' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -110,25 +110,25 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="ClassColumn<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'ClassColumn' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> </ownedColumnMappings> - <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedLineMappings[name='CT%20Generalization%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="<%eContents().filter("Generalization").general%>" lineFinderExpression="" semanticCandidatesExpression=""> + <intersection name="Generalization" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedLineMappings[name='CT%20Generalization%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20Generalization%20Cross%20Table']/@ownedColumnMappings.0" labelExpression="X" columnFinderExpression="aql:self.eContents()->filter(uml::Generalization).general" lineFinderExpression="" semanticCandidatesExpression=""> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 == "X" && !generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = 'X' and self.generalization->select( e | e.general = columnSemantic)->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:columnSemantic"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 != "X" && generalization[general == $columnSemantic]%>"> - <subModelOperations xsi:type="tool:ChangeContext" browseExpression="<%generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 <> 'X' and self.generalization->select( e | e.general = columnSemantic)"> + <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.generalization->select( e | e.general = columnSemantic)"> <subModelOperations xsi:type="tool:RemoveElement"/> </subModelOperations> </subModelOperations> @@ -140,7 +140,7 @@ <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> <variables name="root" documentation="The semantic root element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%$0 == "X" && !generalization[general == $columnSemantic]%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:arg0 = 'X' and self.generalization->select( e | e.general = columnSemantic)->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:columnSemantic"/> </subModelOperations> @@ -155,15 +155,15 @@ <containerViewVariable name="containerView"/> <representationNameVariable name="tableName"/> </ownedRepresentationCreationDescriptions> - <ownedLineMappings name="Class lines" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram']" navigationDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram%20Navigation']" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class")[generalization == null]%>" headerLabelExpression=""> - <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"> + <ownedLineMappings name="Class lines" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram']" navigationDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Just%20for%20test%20navigation']/@toolSection/@ownedTools[name='Test%20Diagram%20Navigation']" domainClass="Class" semanticCandidatesExpression="aql:self.eAllContents(uml::Class)->select( e | e.generalization->size() = 0)" headerLabelExpression=""> + <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"> <create documentation="Create a concrete subclass (only for abstract class)" name="Create concrete subclass" precondition="aql:self.isAbstract"> <variables name="root" documentation="The semantic element of the table."/> <variables name="element" documentation="The currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="SubclassOf<%$element.name%><%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'SubclassOf' + element.name + element.eContainer().ownedType->size()"/> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:element"/> </subModelOperations> @@ -172,25 +172,25 @@ </create> <create name="Create a class in the first package of the model"> <variables name="root" documentation="The semantic element of the table."> - <subVariables xsi:type="tool:AcceleoVariable" name="premierPackage" computationExpression="<%nestedPackage.nFirst%>"/> + <subVariables xsi:type="tool:AcceleoVariable" name="premierPackage" computationExpression="aql:self.nestedPackage->first()"/> </variables> <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:premierPackage"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$premierPackage.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + premierPackage.ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> <create name="Create a class in the selected package of the model"> <variables name="root" documentation="The semantic element of the table."> - <subVariables xsi:type="tool:SelectModelElementVariable" name="selectedPackage" candidatesExpression="<%eAllContents().filter("Package")%>" message="Select the correct package"/> + <subVariables xsi:type="tool:SelectModelElementVariable" name="selectedPackage" candidatesExpression="aql:self.eAllContents()->filter(uml::Package)" message="Select the correct package"/> </variables> <variables name="element" documentation="The semantic currently edited element."/> <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:selectedPackage"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$selectedPackage.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + selectedPackage.ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -201,7 +201,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -211,7 +211,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="OtherClass<%$element.eContainer().ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'OtherClass' + element.eContainer().ownedType->size()"/> </subModelOperations> </firstModelOperation> </create> @@ -221,7 +221,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName=""""> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="SubclassOf<%$element.name%><%$container.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'SubclassOf' + element.name + container.ownedType->size()"/> <subModelOperations xsi:type="tool:CreateInstance" typeName="Generalization" referenceName="generalization" variableName=""""> <subModelOperations xsi:type="tool:SetValue" featureName="general" valueExpression="var:element"/> </subModelOperations> @@ -231,7 +231,7 @@ <delete documentation="Delete all classes of the parent package" name="Delete all brothers classes" forceRefresh="true"> <variables name="element" documentation="The currently edited element."/> <variables name="root" documentation="The semantic element corresponding to the current table."/> - <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="<%$element.eContainer%>"> + <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="aql:element.eContainer()"> <subModelOperations xsi:type="tool:For" expression="aql:self.ownedType"> <subModelOperations xsi:type="tool:RemoveElement"/> </subModelOperations> @@ -244,7 +244,7 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName="newClass"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="Class<%$element.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'Class' + element.ownedType->size()"/> </subModelOperations> </firstModelOperation> </ownedCreateLine> @@ -254,17 +254,17 @@ <variables name="container" documentation="The semantic element corresponding to the view container."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Class" referenceName="ownedType" variableName="newClass"> - <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="AbstractClass<%$element.ownedType.nSize%>"/> + <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="aql:'AbstractClass' + element.ownedType->size()"/> <subModelOperations xsi:type="tool:SetValue" featureName="isAbstract" valueExpression="aql:true"/> </subModelOperations> </firstModelOperation> </ownedCreateLine> <ownedColumnMappings name="Class name" headerLabelExpression="Name" initialWidth="200" canEdit="aql:self.isAbstract" featureName="name" labelExpression="aql:self.name"/> <ownedColumnMappings name="Is class abstract" headerLabelExpression="IsAbstract" featureName="isAbstract" labelExpression="aql:self.isAbstract"/> - <ownedColumnMappings name="Visibility of class" headerLabelExpression="Visibility" featureName="visibility" labelExpression="<%visibility%>"/> + <ownedColumnMappings name="Visibility of class" headerLabelExpression="Visibility" featureName="visibility" labelExpression="aql:self.visibility"/> <ownedColumnMappings name="CollaborationUse" headerLabelExpression="Representation" featureName="representation" labelExpression=""/> <ownedColumnMappings name="OwnedUseCase" headerLabelExpression="OwnedUseCase" featureName="ownedUseCase" labelExpression=""/> - <ownedColumnMappings name="BehaviorDirectEdit" headerLabelExpression="BehaviorDirectEdit" featureName="classifierBehavior" labelExpression="<%classifierBehavior.name%>"> + <ownedColumnMappings name="BehaviorDirectEdit" headerLabelExpression="BehaviorDirectEdit" featureName="classifierBehavior" labelExpression="aql:self.classifierBehavior.name"> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -298,7 +298,7 @@ <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="root" documentation="The semantic element of the table."/> <firstModelOperation xsi:type="tool:ChangeContext" browseExpression="var:lineSemantic"> - <subModelOperations xsi:type="tool:If" conditionExpression="<%!(ownedComment)%>"> + <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.ownedComment->size() = 0"> <subModelOperations xsi:type="tool:CreateInstance" typeName="Comment" referenceName="ownedComment" variableName="newComment"/> </subModelOperations> <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self.ownedComment"> @@ -340,10 +340,10 @@ <representationNameVariable name="tableName"/> </ownedRepresentationCreationDescriptions> <ownedLineMappings name="Line Classes" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class").sort("name")%>" headerLabelExpression="aql:self.name"> - <ownedSubLines name="Associations" domainClass="Association" semanticCandidatesExpression="<%$root.eAllContents("Association")[memberEnd.nGet(0).type == $container]%>" headerLabelExpression="aql:self.name"/> + <ownedSubLines name="Associations" domainClass="Association" semanticCandidatesExpression="aql:root.eAllContents(uml::Association)->select( e | e.memberEnd->first().type = container)" headerLabelExpression="aql:self.name"/> </ownedLineMappings> <ownedColumnMappings name="Column Classes" headerLabelExpression="aql:self.name" domainClass="Class"/> - <intersection name="Associations" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']/@ownedSubLines[name='Associations']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="aql:self.name" columnFinderExpression="<%if (memberEnd) {%><%memberEnd.nGet(1).type%><%}%>" lineFinderExpression="" semanticCandidatesExpression="" domainClass="" preconditionExpression=""> + <intersection name="Associations" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']/@ownedSubLines[name='Associations']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="aql:self.name" columnFinderExpression="aql: self.memberEnd->first().type" lineFinderExpression="" semanticCandidatesExpression="" domainClass="" preconditionExpression=""> <directEdit> <variables name="element" documentation="The currently edited element."/> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> @@ -355,7 +355,7 @@ <mask mask="{0}"/> </directEdit> </intersection> - <intersection name="isAtLeastOneAssociation" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="X" useDomainClass="true" columnFinderExpression="<%if (memberEnd) {%><%memberEnd.nGet(1).type%><%}%>" lineFinderExpression="aql:self.memberEnd->first().type" domainClass="Association"> + <intersection name="isAtLeastOneAssociation" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedLineMappings[name='Line%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedColumnMappings.0" labelExpression="X" useDomainClass="true" columnFinderExpression="aql: self.memberEnd->first().type" lineFinderExpression="aql:self.memberEnd->first().type" domainClass="Association"> <create name="CreateAssociation"> <variables name="lineSemantic" documentation="The semantic element corresponding to the line."/> <variables name="columnSemantic" documentation="The semantic element corresponding to the column."/> @@ -378,10 +378,10 @@ </intersection> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Property" domainClass="Model"> - <ownedLineMappings name="Property lines" semanticElements="<%self + lowerValue + upperValue%>" domainClass="Property" semanticCandidatesExpression="" headerLabelExpression="Property <%name%>"/> + <ownedLineMappings name="Property lines" semanticElements="aql:OrderedSet{self , self.lowerValue , self.upperValue}" domainClass="Property" semanticCandidatesExpression="" headerLabelExpression="aql:'Property ' + self.name"/> <ownedColumnMappings name="Property name" headerLabelExpression="Name" canEdit="" featureName="name" labelExpression="aql:self.name"/> - <ownedColumnMappings name="Property Lower" headerLabelExpression="Lower" canEdit="" featureName="lower" labelExpression="<%lower%>"/> - <ownedColumnMappings name="Property Upper" headerLabelExpression="Upper" featureName="upper" labelExpression="<%upper%>"/> + <ownedColumnMappings name="Property Lower" headerLabelExpression="Lower" canEdit="" featureName="lower" labelExpression="aql:self.lower"/> + <ownedColumnMappings name="Property Upper" headerLabelExpression="Upper" featureName="upper" labelExpression="aql:self.upper"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:CrossTableDescription" name="Cross Table Colors" domainClass="Model"> <ownedLineMappings name="Line Color Classes" detailDescriptions="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Model%20all%20associations']/@ownedRepresentationCreationDescriptions[name='To%20model%20all%20associations']" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class").sort("name")%>" headerLabelExpression="aql:self.name"> @@ -407,13 +407,13 @@ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_yellow']"/> </defaultBackground> </ownedColumnMappings> - <ownedColumnMappings name="Property Column Color" headerLabelExpression="aql:self.name" domainClass="Property" semanticCandidatesExpression="<%eAllContents("Property").nFirst%>"> + <ownedColumnMappings name="Property Column Color" headerLabelExpression="aql:self.name" domainClass="Property" semanticCandidatesExpression="aql:self.eAllContents(uml::Property)->first()"> <defaultBackground> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/> </defaultBackground> </ownedColumnMappings> - <intersection name="Associations Color" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="aql:self.name" useDomainClass="true" columnFinderExpression="<%memberEnd.nFirst.type%>" lineFinderExpression="<%memberEnd.nLast.type%>" semanticCandidatesExpression="" domainClass="Association" preconditionExpression=""> - <foregroundConditionalStyle predicateExpression="<%isLeaf%>"> + <intersection name="Associations Color" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="aql:self.name" useDomainClass="true" columnFinderExpression="aql:self.memberEnd->first().type" lineFinderExpression="aql:self.memberEnd->last().type" semanticCandidatesExpression="" domainClass="Association" preconditionExpression=""> + <foregroundConditionalStyle predicateExpression="aql:self.isLeaf"> <style> <labelFormat>bold</labelFormat> <foreGroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> @@ -428,9 +428,9 @@ <intersection name="Extends colors" lineMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedLineMappings[name='Line%20Color%20Classes']/@ownedSubLines[name='Generalization%20colors']" columnMapping="//@ownedViewpoints[name='UML2%20tables%20for%20tests']/@ownedRepresentations[name='Cross%20Table%20Colors']/@ownedColumnMappings.0" labelExpression="extend" columnFinderExpression="aql:self.general"/> </ownedRepresentations> <ownedRepresentations xsi:type="description_1:EditionTableDescription" name="Simple hierarchy" domainClass="Model"> - <ownedLineMappings name="Class lines" domainClass="Class" semanticCandidatesExpression="<%eAllContents("Class")[generalization == null]%>" headerLabelExpression=""> - <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"> - <ownedSubLines name="SubClass lines 2" domainClass="Class" semanticCandidatesExpression="<%$root.eAllContents("Class")[generalization.general == $container] + $root.eAllContents("Class")[generalization.general == $container].classifierBehavior + $root.eAllContents("Class")[generalization.general == $container].useCase%>" headerLabelExpression="aql:self.name"/> + <ownedLineMappings name="Class lines" domainClass="Class" semanticCandidatesExpression="aql:self.eAllContents(uml::Class)->select( e | e.generalization->size() = 0)" headerLabelExpression=""> + <ownedSubLines name="SubClass lines" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"> + <ownedSubLines name="SubClass lines 2" domainClass="Class" semanticCandidatesExpression="aql:root.eAllContents(uml::Class)->select( e | e.generalization.general->includes(container)) + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).classifierBehavior + root.eAllContents(uml::Class)->select( c | c.generalization.general = container).useCase" headerLabelExpression="aql:self.name"/> </ownedSubLines> </ownedLineMappings> <ownedColumnMappings name="Class name" headerLabelExpression="Name" initialWidth="200" canEdit="aql:self.isAbstract" featureName="name" labelExpression="aql:self.name"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/2077.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/2077.odesign index 36020370f4..d11e846cfb 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/2077.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/2077.odesign @@ -3,7 +3,7 @@ <ownedViewpoints name="2077" modelFileExtension="*.ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="2077" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="EReference" semanticCandidatesExpression="aql:self.eAllContents(ecore::EReference)->select(e| e.eOpposite = null)" sourceMapping="//@ownedViewpoints[name='2077']/@ownedRepresentations[name='2077']/@defaultLayer/@containerMappings[name='EPackage']/@subNodeMappings[name='EClass']" targetMapping="//@ownedViewpoints[name='2077']/@ownedRepresentations[name='2077']/@defaultLayer/@containerMappings[name='EPackage']/@subNodeMappings[name='EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="<%eContainer()%>" domainClass="EReference" useDomainElement="true"> + <edgeMappings name="EReference" semanticCandidatesExpression="aql:self.eAllContents(ecore::EReference)->select(e| e.eOpposite = null)" sourceMapping="//@ownedViewpoints[name='2077']/@ownedRepresentations[name='2077']/@defaultLayer/@containerMappings[name='EPackage']/@subNodeMappings[name='EClass']" targetMapping="//@ownedViewpoints[name='2077']/@ownedRepresentations[name='2077']/@defaultLayer/@containerMappings[name='EPackage']/@subNodeMappings[name='EClass']" targetFinderExpression="aql:self.eType" sourceFinderExpression="aql:self.eContainer()" domainClass="EReference" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:self.name"> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2369/tc_breakdown.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2369/tc_breakdown.odesign index 432d83a817..8d2f2256e0 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2369/tc_breakdown.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2369/tc_breakdown.odesign @@ -11,7 +11,7 @@ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> </style> </nodeMappings> - <edgeMappings name="Contain for STD012" semanticCandidatesExpression="aql:self.eAllContents(ecore::EReference)->select(e| e.eOpposite = null)" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Test%20Case']/@ownedRepresentations[name='Diagram%20for%20Breakdown%20TC']/@defaultLayer/@containerMappings[name='Package%20for%20STD012']" targetMapping="//@ownedViewpoints[name='Test%20Case']/@ownedRepresentations[name='Diagram%20for%20Breakdown%20TC']/@defaultLayer/@containerMappings[name='Package%20for%20STD012']" targetFinderExpression="<%~eSubpackages%>" sourceFinderExpression="feature:eContainer" domainClass="EReference"> + <edgeMappings name="Contain for STD012" semanticCandidatesExpression="aql:self.eAllContents(ecore::EReference)->select(e| e.eOpposite = null)" synchronizationLock="true" sourceMapping="//@ownedViewpoints[name='Test%20Case']/@ownedRepresentations[name='Diagram%20for%20Breakdown%20TC']/@defaultLayer/@containerMappings[name='Package%20for%20STD012']" targetMapping="//@ownedViewpoints[name='Test%20Case']/@ownedRepresentations[name='Diagram%20for%20Breakdown%20TC']/@defaultLayer/@containerMappings[name='Package%20for%20STD012']" targetFinderExpression="aql:self.eInverse('eSubpackages')" sourceFinderExpression="feature:eContainer" domainClass="EReference"> <style sizeComputationExpression="2" routingStyle="tree" foldingStyle="TARGET"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -43,8 +43,8 @@ <targetViewVariable name="targetView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:target"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%$source.eSubpackages.nContains($target)%>"> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$target.eContainer().eContainer()%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:source.eSubpackages->includes(target)"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:target.eContainer().eContainer()"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eSubpackages" valueExpression="var:target"/> </subModelOperations> </subModelOperations> @@ -57,7 +57,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EPackage" referenceName="eSubpackages" variableName="package"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="P_<%eContainer().eContents.filter("EPackage").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'P_' + self.eContainer().eContents()->filter(ecore::EPackage)->size()"/> </firstModelOperations> </initialOperation> </ownedTools> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2552/tc2552.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2552/tc2552.odesign index 970ef865d2..53d894d61c 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2552/tc2552.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/VP-2552/tc2552.odesign @@ -5,7 +5,7 @@ <metamodel href="http://www.eclipse.org/emf/2002/Ecore#/"/> <filters xsi:type="filter:CompositeFilterDescription" name="HideContents" label="Hide contents"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2'] //@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']"/> - <filters xsi:type="filter:VariableFilter" semanticConditionExpression="<%!filter("EOperation")%>"/> + <filters xsi:type="filter:VariableFilter" semanticConditionExpression="aql:not self.oclIsKindOf(ecore::EOperation)"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="HideAttributes" label="Hide attributes"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']"/> @@ -27,7 +27,7 @@ <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']"/> </filters> <filters xsi:type="filter:CompositeFilterDescription" name="CollapseHideContentsCondition" label="Collapse attributes and hide references with condition"> - <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']" semanticConditionExpression="<%name != "activateHideRef"%>"/> + <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@subNodeMappings[name='EReferenceMapping3']" semanticConditionExpression="aql:self.name <> 'activateHideRef'"/> <filters xsi:type="filter:MappingFilter" filterKind="COLLAPSE" mappings="//@ownedViewpoints[name='tc2552']/@ownedRepresentations[name='tc2552']/@defaultLayer/@containerMappings[name='EClassContainerMapping']/@borderedNodeMappings[name='EAttributeMapping2']" semanticConditionExpression="<%name != "activateCollapseAtt"%>"/> </filters> <defaultLayer name="Default" label="default"> @@ -67,7 +67,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="class<%$container.eClassifiers.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'class' + container.eClassifiers->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -78,7 +78,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="class<%$container.eClassifiers.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'class' + container.eClassifiers->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc1/tc1945.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc1/tc1945.odesign index 09d2998a09..2289ea9af1 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc1/tc1945.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc1/tc1945.odesign @@ -21,7 +21,7 @@ <conditionnalStyles predicateExpression="aql:self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription showIcon="false" labelExpression="/<%getEReferenceName()%>"> + <centerLabelStyleDescription showIcon="false" labelExpression="aql:'/' + self.getEReferenceName()"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -34,7 +34,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%$target.filter("EClass")[interface]%>"> + <conditionnalStyles predicateExpression="aql:target->filter(ecore::EClass)->select( e | e.interface)"> <style lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="manhattan"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription showIcon="false"> @@ -115,7 +115,7 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="new Interface <%eContainer().eContents().filter("EClass").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'new Interface ' + self.eContainer().eContents()->filter(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="interface" valueExpression="true"/> </firstModelOperations> </initialOperation> @@ -227,7 +227,7 @@ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EReference" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="newEReference<%eContainer("EClassifier").eAllContents("EReference").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'newEReference' + self.eContainerOrSelf(ecore::EClassifier).eAllContents(ecore::EReference)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc2/tc1945.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc2/tc1945.odesign index ebcdc65b34..dfee50f910 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc2/tc1945.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/repair/lostelements/tc2/tc1945.odesign @@ -3,7 +3,7 @@ <ownedViewpoints name="Design tc1945" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Entities" titleExpression="aql:self.name + ' package entities'" domainClass="EPackage" enablePopupBars="true"> <defaultLayer name="Default"> - <edgeMappings name="EC Just from A" semanticCandidatesExpression="<%eAllContents.filter("EClass")[name == "A"]%>" createElements="false" sourceMapping="//@ownedViewpoints[name='Design%20tc1945']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@borderedNodeMappings[name='PortJustFromAIn']" targetMapping="//@ownedViewpoints[name='Design%20tc1945']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@borderedNodeMappings[name='PortJustFromAOut']" targetFinderExpression="var:self" sourceFinderExpression="var:self" domainClass="EClass" useDomainElement="true"> + <edgeMappings name="EC Just from A" semanticCandidatesExpression="aql:self.eAllContents()->filter(ecore::EClass)->select( e | e.name = 'A')" createElements="false" sourceMapping="//@ownedViewpoints[name='Design%20tc1945']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@borderedNodeMappings[name='PortJustFromAIn']" targetMapping="//@ownedViewpoints[name='Design%20tc1945']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@borderedNodeMappings[name='PortJustFromAOut']" targetFinderExpression="var:self" sourceFinderExpression="var:self" domainClass="EClass" useDomainElement="true"> <style sizeComputationExpression="[eContents()->size()/]"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription labelExpression="Just from A"> @@ -19,8 +19,8 @@ </centerLabelStyleDescription> </style> </edgeMappings> - <containerMappings name="EC EClass" semanticCandidatesExpression="<%eAllContents.filter("EClass")%>" domainClass="EClass"> - <borderedNodeMappings name="PortJustFromAIn" semanticCandidatesExpression="<%self[name == "A"]%>" createElements="false" domainClass="EClass"> + <containerMappings name="EC EClass" semanticCandidatesExpression="aql:self.eAllContents()->filter(ecore::EClass)" domainClass="EClass"> + <borderedNodeMappings name="PortJustFromAIn" semanticCandidatesExpression="aql:Sequence{self}->select( e | e.name = 'A')" createElements="false" domainClass="EClass"> <style xsi:type="style:SquareDescription" labelExpression="" sizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket1176/test1176.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket1176/test1176.odesign index e78a063c22..2819255149 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket1176/test1176.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket1176/test1176.odesign @@ -48,7 +48,7 @@ <colorSteps> <associatedColor href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </colorSteps> - <colorSteps associatedValue="<%5%>" associatedColor="//@userColorsPalettes[name=null]/@entries[name='jaune']"/> + <colorSteps associatedValue="5" associatedColor="//@userColorsPalettes[name=null]/@entries[name='jaune']"/> <colorSteps> <associatedColor href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </colorSteps> @@ -74,7 +74,7 @@ <colorSteps> <associatedColor href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </colorSteps> - <colorSteps associatedValue="<%5%>" associatedColor="//@userColorsPalettes[name=null]/@entries[name='jaune']"/> + <colorSteps associatedValue="5" associatedColor="//@userColorsPalettes[name=null]/@entries[name='jaune']"/> <colorSteps> <associatedColor href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </colorSteps> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2229/2229.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2229/2229.odesign index b64cfb24ec..016868ac8f 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2229/2229.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2229/2229.odesign @@ -11,76 +11,76 @@ </style> </nodeMappings> <nodeMappings name="ClassMapping Lozenge" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Lozenge_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Lozenge_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Ellipse" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:EllipseNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Ellipse_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:EllipseNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Ellipse_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Square" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Square_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Square_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Stroke" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Stroke_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="stroke"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Stroke_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="stroke"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Triangle" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Triangle_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="triangle"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Triangle_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="triangle"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Dot" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Dot_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="dot"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Dot_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="dot"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Ring" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Ring_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="ring"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Ring_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="ring"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Note" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:NoteDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Note_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:NoteDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Note_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Dot" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:DotDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Dot_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" strokeSizeComputationExpression="5"> + <style xsi:type="style:DotDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Dot_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" strokeSizeComputationExpression="5"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Gauge" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:GaugeCompositeStyleDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Gauge_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:GaugeCompositeStyleDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Gauge_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Workspace Image" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Workspace_Image_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/2229/logo_o.png"> + <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Workspace_Image_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/2229/logo_o.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2230/2230.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2230/2230.odesign index 0392215005..67a0c46e66 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2230/2230.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/ticket2230/2230.odesign @@ -10,7 +10,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%containment && derived%>"> + <conditionnalStyles predicateExpression="aql:self.containment and self.derived"> <style sourceArrow="FillDiamond" targetArrow="NoDecoration"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:if self.derived then '/' else '' + self.getEReferenceName()"> @@ -19,7 +19,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%!containment && derived%>"> + <conditionnalStyles predicateExpression="aql:not self.containment and self.derived"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> <centerLabelStyleDescription showIcon="false" labelExpression="aql:if self.derived then '/' else '' + self.getEReferenceName()"> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp-3790/VP-3790.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp-3790/VP-3790.odesign index 3fcfd79b1b..5f66079621 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp-3790/VP-3790.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp-3790/VP-3790.odesign @@ -9,7 +9,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> - <conditionnalStyles predicateExpression="<%name == "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force base style'"> <style xsi:type="style:SquareDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -24,7 +24,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%name == "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force base style'"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <centerLabelStyleDescription labelExpression="[name/]"> @@ -40,7 +40,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> - <conditionnalStyles predicateExpression="<%name == "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force base style'"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <centerLabelStyleDescription labelExpression="superType"> @@ -56,7 +56,7 @@ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> </style> - <conditionnalStyles predicateExpression="<%name == "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force base style'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -85,7 +85,7 @@ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> </style> - <conditionnalStyles predicateExpression="<%name == "force level 1 style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force level 1 style'"> <style xsi:type="style:SquareDescription" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -94,7 +94,7 @@ </conditionnalStyles> </nodeMappings> <edgeMappingImports name="ref_import_1" importedMapping="//@ownedViewpoints[name='VP-3790']/@ownedRepresentations[name='VP-3790']/@defaultLayer/@edgeMappings[name='refs']"> - <conditionnalStyles predicateExpression="<%name == "force level 1 style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force level 1 style'"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <centerLabelStyleDescription labelExpression="[name/]"> @@ -102,7 +102,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%name != "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name <> 'force base style'"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <beginLabelStyleDescription showIcon="false" labelExpression="dash"> @@ -115,7 +115,7 @@ </conditionnalStyles> </edgeMappingImports> <edgeMappingImports name="st_import_1" importedMapping="//@ownedViewpoints[name='VP-3790']/@ownedRepresentations[name='VP-3790']/@defaultLayer/@edgeMappings[name='superTypes']"> - <conditionnalStyles predicateExpression="<%name == "force level 1 style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force level 1 style'"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/> <centerLabelStyleDescription labelExpression="superType"> @@ -123,7 +123,7 @@ </centerLabelStyleDescription> </style> </conditionnalStyles> - <conditionnalStyles predicateExpression="<%name != "force base style"%>"> + <conditionnalStyles predicateExpression="aql:self.name <> 'force base style'"> <style lineStyle="dash" sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> <beginLabelStyleDescription labelExpression="dash"> @@ -142,7 +142,7 @@ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/> <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='red']"/> </style> - <conditionnalStyles predicateExpression="<%name == "force level 1 style"%>"> + <conditionnalStyles predicateExpression="aql:self.name = 'force level 1 style'"> <style xsi:type="style:FlatContainerStyleDescription" arcWidth="1" arcHeight="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp973/vp973.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp973/vp973.odesign index 8e7d3f5463..ac5986d9d3 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp973/vp973.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/style/vp973/vp973.odesign @@ -11,76 +11,76 @@ </style> </nodeMappings> <nodeMappings name="ClassMapping Lozenge" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Lozenge_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Lozenge_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Ellipse" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:EllipseNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Ellipse_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:EllipseNodeDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Ellipse_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Square" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Square_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Square_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Stroke" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Stroke_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="stroke"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Stroke_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="stroke"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Triangle" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Triangle_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="triangle"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Triangle_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="triangle"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Dot" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Dot_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="dot"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Dot_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="dot"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Bundled Image Ring" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Bundle_Image_Ring_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" shape="ring"> + <style xsi:type="style:BundledImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Bundle_Image_Ring_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" shape="ring"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Note" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:NoteDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Note_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:NoteDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Note_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Dot" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:DotDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Dot_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" strokeSizeComputationExpression="1"> + <style xsi:type="style:DotDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Dot_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" strokeSizeComputationExpression="1"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Gauge" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:GaugeCompositeStyleDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Gauge_<%name%>" sizeComputationExpression="20" resizeKind="NSEW"> + <style xsi:type="style:GaugeCompositeStyleDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Gauge_' + self.name" sizeComputationExpression="20" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> </nodeMappings> <nodeMappings name="ClassMapping Workspace Image" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" domainClass="EClass"> - <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="Workspace_Image_<%name%>" sizeComputationExpression="20" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/org.eclipse.sirius.tests.junit/images/logo_o.png"> + <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="aql:self.eContainer().eContents()->size()" labelExpression="aql:'Workspace_Image_' + self.name" sizeComputationExpression="20" resizeKind="NSEW" arcWidth="1" arcHeight="1" workspacePath="/org.eclipse.sirius.tests.junit/images/logo_o.png"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </style> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/ticket1843/ticket1843.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/ticket1843/ticket1843.odesign index 19804f61ca..1134016d42 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/ticket1843/ticket1843.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/ticket1843/ticket1843.odesign @@ -3,7 +3,7 @@ <ownedViewpoints name="Ticket_1843" modelFileExtension="ecore"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Fixture" domainClass="EPackage"> <defaultLayer name="Default"> - <edgeMappings name="EM_AssociationClass" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" targetMapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" targetFinderExpression="<%eAllAttributes[name == "target"].eType%>" sourceFinderExpression="<%eAllAttributes[name == "source"].eType%>" domainClass="EClass" useDomainElement="true"> + <edgeMappings name="EM_AssociationClass" semanticCandidatesExpression="aql:self.eContents()->filter(ecore::EClass)" semanticElements="var:self" sourceMapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" targetMapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" targetFinderExpression="aql:self.eAllAttributes->select( e | e.name = 'target').eType" sourceFinderExpression="aql:self.eAllAttributes->select( e | e.name = 'source').eType" domainClass="EClass" useDomainElement="true"> <style> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> <centerLabelStyleDescription> @@ -33,7 +33,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EPackage" referenceName="eSubpackages"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Package<%ancestor.filter("EPackage").nLast.eAllContents("EPackage").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Package' + self.ancestors()->filter(ecore::EPackage)->last().eAllContents(ecore::EPackage)->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -46,18 +46,18 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EDataType" referenceName="eClassifiers" variableName="sourceType"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="DT<%ancestor.filter("EPackage").nLast.eAllContents("EDataType").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'DT' + self.ancestors()->filter(ecore::EPackage)->last().eAllContents(ecore::EDataType)->size()"/> <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" containerViewExpression="var:sourceView"/> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:target"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EDataType" referenceName="eClassifiers" variableName="targetType"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="DT<%ancestor.filter("EPackage").nLast.eAllContents("EDataType").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'DT' + self.ancestors()->filter(ecore::EPackage)->last().eAllContents(ecore::EDataType)->size()"/> <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='Ticket_1843']/@ownedRepresentations[name='Fixture']/@defaultLayer/@containerMappings[name='CM_EPackage']/@borderedNodeMappings[name='BN_DataType']" containerViewExpression="var:targetView"/> </subModelOperations> </subModelOperations> <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%($source.ancestor && $target.ancestor).nFirst%>"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers" variableName="klass"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="Class<%ancestor.filter("EPackage").nLast.eAllContents("EClass").nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:'Class' + self.ancestors()->filter(ecore::EPackage)->last().eAllContents(ecore::EClass)->size()"/> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EAttribute" referenceName="eStructuralFeatures"> <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="source"/> <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:sourceType"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/applicability/applicability_extension.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/applicability/applicability_extension.odesign index ad46d2f34a..b01fc7b034 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/applicability/applicability_extension.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/applicability/applicability_extension.odesign @@ -3,14 +3,14 @@ <ownedViewpoints name="Documentation" label="Documentation"> <ownedRepresentationExtensions xsi:type="description_1:DiagramExtensionDescription" name="Entities" viewpointURI="viewpoint:/org.eclipse.sirius.tests.junit/Design" representationName="Entities"> <layers name="Documentation"> - <nodeMappings name="EC Doc Annotation" labelDirectEdit="//@ownedViewpoints[name='Documentation']/@ownedRepresentationExtensions[name='Entities']/@layers[name='Documentation']/@toolSections.0/@ownedTools[name='Edit%20Detail']" semanticCandidatesExpression="<%(eClassifiers.eAnnotations+ eAnnotations).details.filter("EStringToStringMapEntry")[key == "documentation"]%>" domainClass="EStringToStringMapEntry"> + <nodeMappings name="EC Doc Annotation" labelDirectEdit="//@ownedViewpoints[name='Documentation']/@ownedRepresentationExtensions[name='Entities']/@layers[name='Documentation']/@toolSections.0/@ownedTools[name='Edit%20Detail']" semanticCandidatesExpression="aql:(self.eClassifiers.eAnnotations+ eAnnotations).details->filter(ecore::EStringToStringMapEntry)->select( e | e.key = 'documentation')" domainClass="EStringToStringMapEntry"> <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="aql:self.value" sizeComputationExpression="5" labelPosition="node" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_green']"/> </style> </nodeMappings> - <edgeMappings name="EC Doc Assignment" sourceMapping="//@ownedViewpoints[name='Documentation']/@ownedRepresentationExtensions[name='Entities']/@layers[name='Documentation']/@nodeMappings[name='EC%20Doc%20Annotation']" targetFinderExpression="<%eContainer("EClass")%>"> + <edgeMappings name="EC Doc Assignment" sourceMapping="//@ownedViewpoints[name='Documentation']/@ownedRepresentationExtensions[name='Entities']/@layers[name='Documentation']/@nodeMappings[name='EC%20Doc%20Annotation']" targetFinderExpression="aql:self.eContainerOrSelf(ecore::EClass)"> <targetMapping xsi:type="description_1:NodeMapping" href="applicability.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@nodeMappings[name='ClassNode']"/> </edgeMappings> <toolSections name="Documentation Tools"> @@ -19,18 +19,18 @@ <viewVariable name="containerView"/> <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%!eAnnotations[source =="http://www.eclipse.org/emf/2002/GenModel"]%>"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.eAnnotations->select( e | e.source ='http://www.eclipse.org/emf/2002/GenModel')->size() = 0"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EAnnotation" referenceName="eAnnotations"> <subModelOperations xsi:type="tool_1:SetValue" featureName="source" valueExpression="http://www.eclipse.org/emf/2002/GenModel"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%eAnnotations[source == "http://www.eclipse.org/emf/2002/GenModel"].nFirst%>"> - <subModelOperations xsi:type="tool_1:If" conditionExpression="<%!details[key=="documentation"]%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.eAnnotations->select( e | e.source = 'http://www.eclipse.org/emf/2002/GenModel')->first()"> + <subModelOperations xsi:type="tool_1:If" conditionExpression="aql:self.details->select( e | e.key='documentation')->size() = 0"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EStringToStringMapEntry" referenceName="details"> <subModelOperations xsi:type="tool_1:SetValue" featureName="key" valueExpression="documentation"/> </subModelOperations> </subModelOperations> - <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%details[key=="documentation"].nFirst%>"> + <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:self.details->select( e | e.key='documentation')->first()"> <subModelOperations xsi:type="tool_1:SetValue" featureName="value" valueExpression="New documentation note"/> </subModelOperations> </subModelOperations> @@ -49,7 +49,7 @@ <sourceViewVariable name="sourceView"/> <targetViewVariable name="targetView"/> <initialOperation> - <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="<%$source.eContainer("EAnnotation")%>"> + <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="aql:source.eContainerOrSelf(ecore::EAnnotation)"> <subModelOperations xsi:type="tool_1:MoveElement" newContainerExpression="var:target" featureName="eAnnotations"/> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-3600.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-3600.odesign index 8935db53b8..c781f03247 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-3600.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-3600.odesign @@ -35,7 +35,7 @@ </containerMappings> <toolSections name="TestSection"> <ownedTools xsi:type="tool:NodeCreationDescription" name="createClass" nodeMappings="//@ownedViewpoints[name='Doremi-2847']/@ownedRepresentations[name='BlankDiagram']/@defaultLayer/@containerMappings[name='Package']/@subNodeMappings[name='Class']"> - <filters precondition="<%self.ownedDiagramElements.nSize()==0%>" elementsToListen="var:self"> + <filters precondition="aql:self.ownedDiagramElements->size()=0" elementsToListen="var:self"> <listeners domainClass="DDiagram" featureName="ownedDiagramElements"/> </filters> <variable name="container"/> @@ -71,7 +71,7 @@ <additionalLayers name="ConflictingLayer"> <toolSections name="TestSection"> <ownedTools xsi:type="tool:NodeCreationDescription" name="createClass" nodeMappings="//@ownedViewpoints[name='Doremi-2847']/@ownedRepresentations[name='BlankDiagram']/@defaultLayer/@containerMappings[name='Package']/@subNodeMappings[name='Class']"> - <filters precondition="<%self.ownedDiagramElements.nSize()==0%>" elementsToListen="var:self"> + <filters precondition="aql:self.ownedDiagramElements->size()=0" elementsToListen="var:self"> <listeners domainClass="DDiagram" featureName="ownedDiagramElements"/> </filters> <variable name="container"/> @@ -134,7 +134,7 @@ </containerMappings> <toolSection name="TestSection"> <ownedTools xsi:type="tool:NodeCreationDescription" name="createClass" nodeMappings="//@ownedViewpoints[name='Doremi-2847']/@ownedRepresentations[name='BlankDiagramWithoutLayer']/@containerMappings[name='Package']/@subNodeMappings[name='Class']"> - <filters precondition="<%self.ownedDiagramElements.nSize()==0%>" elementsToListen="var:self"> + <filters precondition="aql:self.ownedDiagramElements->size()=0" elementsToListen="var:self"> <listeners domainClass="DDiagram" featureName="ownedDiagramElements"/> </filters> <variable name="container"/> @@ -213,7 +213,7 @@ </ownedTools> <ownedTools xsi:type="tool:ToolGroup" name="ToolGroupTest"> <tools xsi:type="tool:NodeCreationDescription" name="createClass" nodeMappings="//@ownedViewpoints[name='Doremi-2847']/@ownedRepresentations[name='BlankDiagramWithToolGroups']/@defaultLayer/@containerMappings[name='Package']/@subNodeMappings[name='Class']"> - <filters precondition="<%self.ownedDiagramElements.nSize()==0%>" elementsToListen="var:self"> + <filters precondition="aql:self.ownedDiagramElements->size()=0" elementsToListen="var:self"> <listeners domainClass="DDiagram" featureName="ownedDiagramElements"/> </filters> <variable name="container"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-4519.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-4519.odesign index 7783642dcb..e47e488c07 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-4519.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/VP-4519.odesign @@ -22,7 +22,7 @@ <toolSections name="s1"> <ownedTools xsi:type="tool:ToolGroup" name="myGroup"> <tools xsi:type="tool_1:ToolDescription" name="t0"> - <filters precondition="<%activatedLayers.nSize() > 1%>" elementsToListen="var:self"> + <filters precondition="aql:self.activatedLayers->size() > 1" elementsToListen="var:self"> <listeners domainClass="DDiagram" featureName="activatedLayers"/> </filters> <element name="element"/> @@ -30,7 +30,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='bug_root']/@ownedRepresentations[name='rep0']/@defaultLayer/@containerMappings[name='class']" containerViewExpression="<%$elementView.eContainer("DDiagram")%>"/> + <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='bug_root']/@ownedRepresentations[name='rep0']/@defaultLayer/@containerMappings[name='class']" containerViewExpression="aql:elementView.eContainerOrSelf(diagram::DDiagram)"/> </subModelOperations> </firstModelOperations> </initialOperation> @@ -47,7 +47,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EClass" referenceName="eClassifiers"> - <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='bug_root']/@ownedRepresentations[name='rep0']/@defaultLayer/@containerMappings[name='class']" containerViewExpression="<%$elementView.eContainer("DDiagram")%>"/> + <subModelOperations xsi:type="tool:CreateView" mapping="//@ownedViewpoints[name='bug_root']/@ownedRepresentations[name='rep0']/@defaultLayer/@containerMappings[name='class']" containerViewExpression="aql:elementView.eContainerOrSelf(diagram::DDiagram)"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/toolFilters.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/toolFilters.odesign index 390fff8a11..00af9c28de 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/toolFilters.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/palette/toolFilters.odesign @@ -5,7 +5,7 @@ <defaultLayer name="L1"> <toolSections name="section1"> <ownedTools xsi:type="tool:ToolDescription" documentation="always hidden" name="tool1"> - <filters precondition="aql:true" elementsToListen="<%"> + <filters precondition="aql:true" elementsToListen="unparseable"> <listeners domainClass="EObject" featureName=""/> </filters> <element name="element"/> @@ -26,7 +26,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="toolFiltersWithoutLayers" domainClass="EPackage"> <toolSection name="section0"> <ownedTools xsi:type="tool:ToolDescription" documentation="always hidden" name="tool1"> - <filters precondition="aql:true" elementsToListen="<%%>"> + <filters precondition="aql:true" elementsToListen="aql:OrderedSet{}"> <listeners domainClass="EObject" featureName="eContainer"/> </filters> <element name="element"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/paneBasedSelectionWizard/paneBasedSelection.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/paneBasedSelectionWizard/paneBasedSelection.odesign index 5a35a50ec5..2e5bd929a7 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/paneBasedSelectionWizard/paneBasedSelection.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/paneBasedSelectionWizard/paneBasedSelection.odesign @@ -24,7 +24,7 @@ </style> </containerMappings> <toolSections name="1"> - <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest1" precondition="true" message="message" candidatesExpression="<%$containerView.eContainer("DDiagram").target.eAllContents.filter("EPackage")%>" rootExpression="" childrenExpression="" preSelectedCandidatesExpression="<%$containerView.eContainer("DDiagram").target.eContents.filter("EPackage")[name=="testPackage"]%>"> + <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest1" precondition="true" message="message" candidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eAllContents()->filter(ecore::EPackage)" rootExpression="" childrenExpression="" preSelectedCandidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eContents()->filter(ecore::EPackage)->select( e | e.name='testPackage')"> <element name="element"/> <containerView name="containerView"/> <container name="container"/> @@ -34,7 +34,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest2" precondition="false" message="message" candidatesExpression="<%$containerView.eContainer("DDiagram").target.eAllContents%>" tree="true" rootExpression="<%$containerView.eContainer("DDiagram").target.eContents%>" childrenExpression="feature:eContents" preSelectedCandidatesExpression="<%$containerView.eContainer("DDiagram").target.eContents.filter("EPackage")[name=="testPackage"]%>"> + <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest2" precondition="false" message="message" candidatesExpression="<%$containerView.eContainer("DDiagram").target.eAllContents%>" tree="true" rootExpression="aql:containerView.eContainerOrSelf(DDiagram).target.eContents" childrenExpression="feature:eContents" preSelectedCandidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eContents()->filter(ecore::EPackage)->select( e | e.name='testPackage')"> <element name="element"/> <containerView name="containerView"/> <container name="container"/> @@ -44,7 +44,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest3" precondition="true" message="message" candidatesExpression="<%$containerView.eContainer("DDiagram").target.eAllContents.filter("EPackage")%>" tree="true" rootExpression="<%$containerView.eContainer("DDiagram").target.eContents%>" childrenExpression="feature:eContents" preSelectedCandidatesExpression="<%$containerView.eContainer("DDiagram").target.eContents.filter("EPackage")[name=="testPackage"]%>"> + <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest3" precondition="true" message="message" candidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eAllContents()->filter(ecore::EPackage)" tree="true" rootExpression="aql:containerView.eContainerOrSelf(DDiagram).target.eContents" childrenExpression="feature:eContents" preSelectedCandidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eContents()->filter(ecore::EPackage)->select( e | e.name='testPackage')"> <element name="element"/> <containerView name="containerView"/> <container name="container"/> @@ -54,7 +54,7 @@ </firstModelOperations> </initialOperation> </ownedTools> - <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest4" precondition="true" message="message" candidatesExpression="<%$containerView.eContainer("DDiagram").target.eAllContents.filter("EPackage")%>" tree="true" rootExpression="<%$containerView.eContainer("DDiagram").target.eContents%>" childrenExpression="feature:eContents" preSelectedCandidatesExpression="<%$container.eContainer("EPackage")%>"> + <ownedTools xsi:type="tool:PaneBasedSelectionWizardDescription" name="paneSelectionTest4" precondition="true" message="message" candidatesExpression="aql:containerView.eContainerOrSelf(diagram::DDiagram).target.eAllContents()->filter(ecore::EPackage)" tree="true" rootExpression="aql:containerView.eContainerOrSelf(DDiagram).target.eContents" childrenExpression="feature:eContents" preSelectedCandidatesExpression="aql:container.eContainerOrSelf(ecore::EPackage)"> <element name="element"/> <containerView name="containerView"/> <container name="container"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/setValue/EEnumAttributeType.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/setValue/EEnumAttributeType.odesign index 576c9c40e3..46ec441751 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/setValue/EEnumAttributeType.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/tools/setValue/EEnumAttributeType.odesign @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="EEnumAttributeType" version="8.0.0"> +<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="EEnumAttributeType" version="10.0.0.201505222000"> <ownedViewpoints name="EEnumAttributeType" modelFileExtension="migrationmodeler"> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="EEnumAttributeType" domainClass="migrationmodeler.NodeRepresentation"> <defaultLayer name="Default"> <nodeMappings name="node" domainClass="migrationmodeler.LabelStyle"> - <style xsi:type="style:SquareDescription" labelExpression="<%labelAlignment%>" resizeKind="NSEW"> + <style xsi:type="style:SquareDescription" labelExpression="aql:self.labelAlignment" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/validation/ticket1666.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/validation/ticket1666.odesign index 5d595a99bc..08d7403f20 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/validation/ticket1666.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/validation/ticket1666.odesign @@ -4,7 +4,7 @@ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Validation" initialisation="true" domainClass="EPackage"> <defaultLayer name="Default"> <containerMappings name="V_EClass" semanticCandidatesExpression="feature:eContents" documentation="<%eContents.filter("EClass")[.~.filter("EReference").nMinimize().nSize() > 0]%>" domainClass="EClass"> - <subNodeMappings name="V_Reference" semanticCandidatesExpression="<%eAllReferences.eReferenceType%>" domainClass="EClass"> + <subNodeMappings name="V_Reference" semanticCandidatesExpression="aql:self.eAllReferences.eReferenceType" domainClass="EClass"> <style xsi:type="style:SquareDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> @@ -21,17 +21,17 @@ </ownedRepresentations> <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Breakdown" domainClass="EPackage"> <validationSet name="Test"> - <ownedRules xsi:type="validation:SemanticValidationRule" level="ERROR" message="The <%name%> element is KO -> Semantic rule OK" targetClass="EPackage"> - <audits auditExpression="<%name.startsWith("p")%>"/> + <ownedRules xsi:type="validation:SemanticValidationRule" level="ERROR" message="aql:'The ' + self.name + ' element is KO -> Semantic rule OK'" targetClass="EPackage"> + <audits auditExpression="aql:self.name.startsWith('p')"/> </ownedRules> - <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="Graphic - The <%name%> element is KO -> View rule OK" targets="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']"> - <audits auditExpression="<%target.name.startsWith("p")%>"/> + <ownedRules xsi:type="validation:ViewValidationRule" level="ERROR" message="aql:'Graphic - The ' + self.name + ' element is KO -> View rule OK'" targets="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']"> + <audits auditExpression="aql:self.target.name.startsWith('p')"/> </ownedRules> </validationSet> <layout xsi:type="description_1:OrderedTreeLayout" childrenExpression="aql:self.eSubpackages" nodeMapping="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']"/> <defaultLayer name="Default"> - <nodeMappings name="Package" semanticCandidatesExpression="<%eAllContents.filter("EPackage")%>" domainClass="EPackage"> - <style xsi:type="style:SquareDescription" labelExpression="container_<%name%>" sizeComputationExpression="7" labelPosition="node" resizeKind="NSEW"> + <nodeMappings name="Package" semanticCandidatesExpression="aql:self.eAllContents()->filter(ecore::EPackage)" domainClass="EPackage"> + <style xsi:type="style:SquareDescription" labelExpression="aql:'container_' + self.name" sizeComputationExpression="7" labelPosition="node" resizeKind="NSEW"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='green']"/> @@ -40,7 +40,7 @@ <edgeMappings name="Containers" sourceMapping="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']" targetFinderExpression="feature:eContainer"> <style routingStyle="tree" foldingStyle="TARGET"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> - <centerLabelStyleDescription labelExpression="relation_edge_<%name%>"> + <centerLabelStyleDescription labelExpression="aql:'relation_edge_' + self.name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> </centerLabelStyleDescription> </style> @@ -48,7 +48,7 @@ <edgeMappings name="p2self" sourceMapping="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']" targetMapping="//@ownedViewpoints[name='Ticket%201666']/@ownedRepresentations[name='Breakdown']/@defaultLayer/@nodeMappings[name='Package']" targetFinderExpression="var:self" sourceFinderExpression="var:self" domainClass="EPackage" useDomainElement="true"> <style sizeComputationExpression="2"> <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/> - <centerLabelStyleDescription labelExpression="element_edge_<%name%>"> + <centerLabelStyleDescription labelExpression="aql:'element_edge_' + self.name"> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> </centerLabelStyleDescription> </style> @@ -71,7 +71,7 @@ <initialOperation> <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:container"> <subModelOperations xsi:type="tool_1:CreateInstance" typeName="EPackage" referenceName="eSubpackages"> - <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="<%eContainer.name%><%eContainer.eSubpackages.nSize%>"/> + <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="aql:self.eContainer().name + self.eContainer().eSubpackages->size()"/> </subModelOperations> </firstModelOperations> </initialOperation> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/vsm/valideVSMWithDiagramExtension.odesign b/plugins/org.eclipse.sirius.tests.junit/data/unit/vsm/valideVSMWithDiagramExtension.odesign index 8d7428c669..cbd7358231 100644 --- a/plugins/org.eclipse.sirius.tests.junit/data/unit/vsm/valideVSMWithDiagramExtension.odesign +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/vsm/valideVSMWithDiagramExtension.odesign @@ -122,7 +122,7 @@ </style> </conditionnalStyles> </edgeMappingImports> - <containerMappings xsi:type="description_1:ContainerMappingImport" name="EPackageMappingTer" preconditionExpression="<%eContainer != null %>" semanticCandidatesExpression="<%eSubpackages()%>" domainClass="EPackage" childrenPresentation="List" importedMapping="//@ownedViewpoints[name='VP-3834_Viewpoint']/@ownedRepresentations[name='VP-3834_Diagram']/@additionalLayers[name='L1']/@containerMappings[name='EPackageMappingBis']"> + <containerMappings xsi:type="description_1:ContainerMappingImport" name="EPackageMappingTer" preconditionExpression="<%eContainer != null %>" semanticCandidatesExpression="aql:self.oclAsType(ecore::EPackage).eSubpackages" domainClass="EPackage" childrenPresentation="List" importedMapping="//@ownedViewpoints[name='VP-3834_Viewpoint']/@ownedRepresentations[name='VP-3834_Diagram']/@additionalLayers[name='L1']/@containerMappings[name='EPackageMappingBis']"> <style xsi:type="style:ShapeContainerStyleDescription"> <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
