diff options
author | 2018-11-07 17:33:28 +0100 | |
---|---|---|
committer | 2018-11-07 17:33:28 +0100 | |
commit | 64a02259b30424e10586672993901cb1a6b9f83e (patch) | |
tree | 2ae32677bedc09632a8177633676e63f60213ea7 /Tests/Ecore-Plugin/outputs | |
parent | Colorcalculator support for datatypes (diff) | |
download | VIATRA-Generator-64a02259b30424e10586672993901cb1a6b9f83e.tar.gz VIATRA-Generator-64a02259b30424e10586672993901cb1a6b9f83e.tar.zst VIATRA-Generator-64a02259b30424e10586672993901cb1a6b9f83e.zip |
Ecore gen test
Diffstat (limited to 'Tests/Ecore-Plugin/outputs')
22 files changed, 44457 insertions, 0 deletions
diff --git a/Tests/Ecore-Plugin/outputs/debug/errors.txt b/Tests/Ecore-Plugin/outputs/debug/errors.txt new file mode 100644 index 00000000..f5a4c569 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/debug/errors.txt | |||
@@ -0,0 +1,200 @@ | |||
1 | Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaClass | ||
2 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:227) | ||
3 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:69) | ||
4 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
5 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
6 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
7 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
8 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
9 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
10 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
11 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaClass | ||
12 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:227) | ||
13 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:69) | ||
14 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
15 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
16 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
17 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
18 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
19 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
20 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
21 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Class EFactory is not translated to logic! | ||
22 | hu.bme.mit.inf.dslreasoner.ecore2logic.EClassMapper_AllElementAsObject.TypeofEClass(EClassMapper_AllElementAsObject.java:63) | ||
23 | hu.bme.mit.inf.dslreasoner.ecore2logic.EReferenceMapper_RelationsOverTypes.createIndicatorDeclarations(EReferenceMapper_RelationsOverTypes.java:88) | ||
24 | hu.bme.mit.inf.dslreasoner.ecore2logic.EReferenceMapper_RelationsOverTypes.transformEReferences(EReferenceMapper_RelationsOverTypes.java:68) | ||
25 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEReferences(Ecore2Logic.java:120) | ||
26 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:81) | ||
27 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
28 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
29 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
30 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
31 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
32 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaClass | ||
33 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:227) | ||
34 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:69) | ||
35 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
36 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
37 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
38 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
39 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
40 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
41 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
42 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaClass of org.eclipse.emf.ecore.impl.EcorePackageImpl@3316527e (name: ecore) (nsURI: http://www.eclipse.org/emf/2002/Ecore, nsPrefix: ecore)::EClassifier.instanceClass | ||
43 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:237) | ||
44 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:70) | ||
45 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
46 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
47 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
48 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
49 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
50 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
51 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
52 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaObject of org.eclipse.emf.ecore.impl.EcorePackageImpl@a5e8260 (name: ecore) (nsURI: http://www.eclipse.org/emf/2002/Ecore, nsPrefix: ecore)::EClassifier.defaultValue | ||
53 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:237) | ||
54 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:70) | ||
55 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
56 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
57 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
58 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
59 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
60 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
61 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
62 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EEnumerator of org.eclipse.emf.ecore.impl.EcorePackageImpl@a5e8260 (name: ecore) (nsURI: http://www.eclipse.org/emf/2002/Ecore, nsPrefix: ecore)::EEnumLiteral.instance | ||
63 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:237) | ||
64 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:70) | ||
65 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
66 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
67 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
68 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
69 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
70 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
71 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
72 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaObject of org.eclipse.emf.ecore.impl.EcorePackageImpl@a5e8260 (name: ecore) (nsURI: http://www.eclipse.org/emf/2002/Ecore, nsPrefix: ecore)::EStructuralFeature.defaultValue | ||
73 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:237) | ||
74 | hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:70) | ||
75 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140) | ||
76 | hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83) | ||
77 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189) | ||
78 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
79 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
80 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
81 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
82 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IOWrappedException): The object 'hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.StringElementImpl@7aef4326 (name: "InitialPackage") (valueSet: true) (value: InitialPackage)' is not contained in a resource. | ||
83 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:301) | ||
84 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:265) | ||
85 | org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389) | ||
86 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) | ||
87 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044) | ||
88 | hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace.writeModel(ReasonerWorkspace.java:80) | ||
89 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:204) | ||
90 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
91 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
92 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
93 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
94 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IOWrappedException): The object 'hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.StringElementImpl@fa78fd9 (name: "InitialPackage") (valueSet: true) (value: InitialPackage)' is not contained in a resource. | ||
95 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:301) | ||
96 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:265) | ||
97 | org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389) | ||
98 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) | ||
99 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044) | ||
100 | hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace.writeModel(ReasonerWorkspace.java:80) | ||
101 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:204) | ||
102 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
103 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
104 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
105 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
106 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Unhandled parameter types: [hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.StringLiteralImpl@26cfcaf3 (value: A), hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation@24a216f4, {}] | ||
107 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolve(LogicStructureBuilder.java:909) | ||
108 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.lambda$22(LogicStructureBuilder.java:712) | ||
109 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder$$Lambda$859/731011825.apply(Unknown Source) | ||
110 | org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42) | ||
111 | com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:651) | ||
112 | com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47) | ||
113 | java.util.AbstractCollection.toArray(AbstractCollection.java:196) | ||
114 | com.google.common.collect.Iterables.toArray(Iterables.java:295) | ||
115 | com.google.common.collect.Iterables.toArray(Iterables.java:290) | ||
116 | org.eclipse.xtext.xbase.lib.Conversions.unwrapArray(Conversions.java:195) | ||
117 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolveSymbolicValue(LogicStructureBuilder.java:634) | ||
118 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolveSymbolicValue(LogicStructureBuilder.java:924) | ||
119 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolve(LogicStructureBuilder.java:585) | ||
120 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolve(LogicStructureBuilder.java:907) | ||
121 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.evalAsBool(LogicStructureBuilder.java:96) | ||
122 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:127) | ||
123 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
124 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
125 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
126 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
127 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
128 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Unhandled parameter types: [false] | ||
129 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation.elementLookupForward(PartialModelAsLogicInterpretation.java:278) | ||
130 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation.getInterpretation(PartialModelAsLogicInterpretation.java:224) | ||
131 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolveSymbolicValue(LogicStructureBuilder.java:639) | ||
132 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolveSymbolicValue(LogicStructureBuilder.java:931) | ||
133 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolve(LogicStructureBuilder.java:590) | ||
134 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolve(LogicStructureBuilder.java:914) | ||
135 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.evalAsBool(LogicStructureBuilder.java:97) | ||
136 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:127) | ||
137 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
138 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
139 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
140 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
141 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
142 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Unhandled parameter types: [false] | ||
143 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation.elementLookupForward(PartialModelAsLogicInterpretation.java:278) | ||
144 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation.getInterpretation(PartialModelAsLogicInterpretation.java:224) | ||
145 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolveSymbolicValue(LogicStructureBuilder.java:639) | ||
146 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolveSymbolicValue(LogicStructureBuilder.java:931) | ||
147 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder._resolve(LogicStructureBuilder.java:590) | ||
148 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.resolve(LogicStructureBuilder.java:914) | ||
149 | hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder.evalAsBool(LogicStructureBuilder.java:97) | ||
150 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:127) | ||
151 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
152 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
153 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
154 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
155 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
156 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IOWrappedException): The object 'hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.StringElementImpl@4f949d6c (name: "packageName") (valueSet: true) (value: packageName)' is not contained in a resource. | ||
157 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:301) | ||
158 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:265) | ||
159 | org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389) | ||
160 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) | ||
161 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044) | ||
162 | hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace.writeModel(ReasonerWorkspace.java:80) | ||
163 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:204) | ||
164 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
165 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
166 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
167 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
168 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IOWrappedException): The object 'hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.StringElementImpl@3156ba0d (name: "packageName") (valueSet: true) (value: packageName)' is not contained in a resource. | ||
169 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:301) | ||
170 | org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:265) | ||
171 | org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389) | ||
172 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) | ||
173 | org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044) | ||
174 | hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace.writeModel(ReasonerWorkspace.java:80) | ||
175 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:204) | ||
176 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
177 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
178 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
179 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
180 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): TODO: auto-generated method stub | ||
181 | hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation.getAllStringsInStructure(AlloyModelInterpretation.java:384) | ||
182 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore._getAllElementsOfDatatype(Logic2Ecore.java:191) | ||
183 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.getAllElementsOfDatatype(Logic2Ecore.java:288) | ||
184 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:122) | ||
185 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
186 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
187 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
188 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
189 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
190 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): TODO: auto-generated method stub | ||
191 | hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation.getAllStringsInStructure(AlloyModelInterpretation.java:384) | ||
192 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore._getAllElementsOfDatatype(Logic2Ecore.java:191) | ||
193 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.getAllElementsOfDatatype(Logic2Ecore.java:288) | ||
194 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:122) | ||
195 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
196 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
197 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
198 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
199 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
200 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) \ No newline at end of file | ||
diff --git a/Tests/Ecore-Plugin/outputs/debug/generated3valued.vql_deactivated b/Tests/Ecore-Plugin/outputs/debug/generated3valued.vql_deactivated new file mode 100644 index 00000000..11cbdd60 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/debug/generated3valued.vql_deactivated | |||
@@ -0,0 +1,27665 @@ | |||
1 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
2 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
3 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
4 | |||
5 | ////////// | ||
6 | // 0. Util | ||
7 | ////////// | ||
8 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
9 | PartialInterpretation.problem(interpretation,problem); | ||
10 | } | ||
11 | |||
12 | ///////////////////////// | ||
13 | // 0.1 Existence | ||
14 | ///////////////////////// | ||
15 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16 | find interpretation(problem,interpretation); | ||
17 | LogicProblem.elements(problem,element); | ||
18 | } or { | ||
19 | find interpretation(problem,interpretation); | ||
20 | PartialInterpretation.newElements(interpretation,element); | ||
21 | } | ||
22 | |||
23 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
24 | find mustExist(problem,interpretation,element); | ||
25 | } or { | ||
26 | find interpretation(problem,interpretation); | ||
27 | neg find elementCloseWorld(element); | ||
28 | PartialInterpretation.openWorldElements(interpretation,element); | ||
29 | } | ||
30 | |||
31 | private pattern elementCloseWorld(element:DefinedElement) { | ||
32 | PartialInterpretation.openWorldElements(i,element); | ||
33 | PartialInterpretation.maxNewElements(i,0); | ||
34 | } or { | ||
35 | Scope.targetTypeInterpretation(scope,interpretation); | ||
36 | PartialTypeInterpratation.elements(interpretation,element); | ||
37 | Scope.maxNewElements(scope,0); | ||
38 | } | ||
39 | |||
40 | //////////////////////// | ||
41 | // 0.2 Equivalence | ||
42 | //////////////////////// | ||
43 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
44 | find mayExist(problem,interpretation,a); | ||
45 | find mayExist(problem,interpretation,b); | ||
46 | a == b; | ||
47 | } | ||
48 | |||
49 | //////////////////////// | ||
50 | // 0.3 Required Patterns by TypeIndexer | ||
51 | //////////////////////// | ||
52 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
53 | find interpretation(problem,interpretation); | ||
54 | LogicProblem.types(problem,type); | ||
55 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
56 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
57 | } | ||
58 | |||
59 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
60 | find interpretation(problem,interpretation); | ||
61 | LogicProblem.types(problem,type); | ||
62 | TypeDefinition.elements(type,element); | ||
63 | } or { | ||
64 | find interpretation(problem,interpretation); | ||
65 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
66 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
67 | } | ||
68 | |||
69 | private pattern isPrimitive(element: PrimitiveElement) { | ||
70 | PrimitiveElement(element); | ||
71 | } | ||
72 | |||
73 | ////////// | ||
74 | // 1. Problem-Specific Base Indexers | ||
75 | ////////// | ||
76 | // 1.1 Type Indexers | ||
77 | ////////// | ||
78 | // 1.1.1 primitive Type Indexers | ||
79 | ////////// | ||
80 | |||
81 | ////////// | ||
82 | // 1.1.2 domain-specific Type Indexers | ||
83 | ////////// | ||
84 | /** | ||
85 | * An element must be an instance of type "EAttribute class". | ||
86 | */ | ||
87 | private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
88 | Type.name(type,"EAttribute class"); | ||
89 | find directInstanceOf(problem,interpretation,element,type); | ||
90 | } | ||
91 | private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
92 | find interpretation(problem,interpretation); | ||
93 | PartialInterpretation.scopes(interpretation,scope); | ||
94 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
95 | Scope.maxNewElements(scope,0); | ||
96 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
97 | Type.name(type,"EAttribute class"); | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * An element may be an instance of type "EAttribute class". | ||
102 | */ | ||
103 | private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
104 | { | ||
105 | find interpretation(problem,interpretation); | ||
106 | PartialInterpretation.newElements(interpretation,element); | ||
107 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
108 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
109 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
110 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
111 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
112 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
113 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
114 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
115 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
116 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
117 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
118 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
119 | neg find isPrimitive(element); | ||
120 | } or { | ||
121 | find interpretation(problem,interpretation); | ||
122 | PartialInterpretation.openWorldElements(interpretation,element); | ||
123 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
124 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
125 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
126 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
127 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
128 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
129 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
130 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
131 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
132 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
133 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
134 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
135 | neg find isPrimitive(element); | ||
136 | } or | ||
137 | { find mustInstanceOfEAttribute_class(problem,interpretation,element); } | ||
138 | /** | ||
139 | * An element must be an instance of type "EAnnotation class". | ||
140 | */ | ||
141 | private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
142 | Type.name(type,"EAnnotation class"); | ||
143 | find directInstanceOf(problem,interpretation,element,type); | ||
144 | } | ||
145 | private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
146 | find interpretation(problem,interpretation); | ||
147 | PartialInterpretation.scopes(interpretation,scope); | ||
148 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
149 | Scope.maxNewElements(scope,0); | ||
150 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
151 | Type.name(type,"EAnnotation class"); | ||
152 | } | ||
153 | |||
154 | /** | ||
155 | * An element may be an instance of type "EAnnotation class". | ||
156 | */ | ||
157 | private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
158 | { | ||
159 | find interpretation(problem,interpretation); | ||
160 | PartialInterpretation.newElements(interpretation,element); | ||
161 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
162 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
163 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
164 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
165 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
166 | neg find isPrimitive(element); | ||
167 | } or { | ||
168 | find interpretation(problem,interpretation); | ||
169 | PartialInterpretation.openWorldElements(interpretation,element); | ||
170 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
171 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
172 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
173 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
174 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
175 | neg find isPrimitive(element); | ||
176 | } or | ||
177 | { find mustInstanceOfEAnnotation_class(problem,interpretation,element); } | ||
178 | /** | ||
179 | * An element must be an instance of type "EClass class". | ||
180 | */ | ||
181 | private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
182 | Type.name(type,"EClass class"); | ||
183 | find directInstanceOf(problem,interpretation,element,type); | ||
184 | } | ||
185 | private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
186 | find interpretation(problem,interpretation); | ||
187 | PartialInterpretation.scopes(interpretation,scope); | ||
188 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
189 | Scope.maxNewElements(scope,0); | ||
190 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
191 | Type.name(type,"EClass class"); | ||
192 | } | ||
193 | |||
194 | /** | ||
195 | * An element may be an instance of type "EClass class". | ||
196 | */ | ||
197 | private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
198 | { | ||
199 | find interpretation(problem,interpretation); | ||
200 | PartialInterpretation.newElements(interpretation,element); | ||
201 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
202 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
203 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
204 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
205 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
206 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
207 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
208 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
209 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
210 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
211 | neg find isPrimitive(element); | ||
212 | } or { | ||
213 | find interpretation(problem,interpretation); | ||
214 | PartialInterpretation.openWorldElements(interpretation,element); | ||
215 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
216 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
217 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
218 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
219 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
220 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
221 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
222 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
223 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
224 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
225 | neg find isPrimitive(element); | ||
226 | } or | ||
227 | { find mustInstanceOfEClass_class(problem,interpretation,element); } | ||
228 | /** | ||
229 | * An element must be an instance of type "EClassifier class". | ||
230 | */ | ||
231 | private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
232 | Type.name(type,"EClassifier class"); | ||
233 | find directInstanceOf(problem,interpretation,element,type); | ||
234 | } | ||
235 | private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
236 | find interpretation(problem,interpretation); | ||
237 | PartialInterpretation.scopes(interpretation,scope); | ||
238 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
239 | Scope.maxNewElements(scope,0); | ||
240 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
241 | Type.name(type,"EClassifier class"); | ||
242 | } | ||
243 | |||
244 | /** | ||
245 | * An element may be an instance of type "EClassifier class". | ||
246 | */ | ||
247 | private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
248 | { | ||
249 | find interpretation(problem,interpretation); | ||
250 | PartialInterpretation.newElements(interpretation,element); | ||
251 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
252 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
253 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
254 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
255 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
256 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
257 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
258 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
259 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
260 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
261 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
262 | neg find isPrimitive(element); | ||
263 | } or { | ||
264 | find interpretation(problem,interpretation); | ||
265 | PartialInterpretation.openWorldElements(interpretation,element); | ||
266 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
267 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
268 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
269 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
270 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
271 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
272 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
273 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
274 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
275 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
276 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
277 | neg find isPrimitive(element); | ||
278 | } or | ||
279 | { find mustInstanceOfEClassifier_class(problem,interpretation,element); } | ||
280 | /** | ||
281 | * An element must be an instance of type "EDataType class". | ||
282 | */ | ||
283 | private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
284 | Type.name(type,"EDataType class"); | ||
285 | find directInstanceOf(problem,interpretation,element,type); | ||
286 | } | ||
287 | private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
288 | find interpretation(problem,interpretation); | ||
289 | PartialInterpretation.scopes(interpretation,scope); | ||
290 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
291 | Scope.maxNewElements(scope,0); | ||
292 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
293 | Type.name(type,"EDataType class"); | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * An element may be an instance of type "EDataType class". | ||
298 | */ | ||
299 | private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
300 | { | ||
301 | find interpretation(problem,interpretation); | ||
302 | PartialInterpretation.newElements(interpretation,element); | ||
303 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
304 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
305 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
306 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
307 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
308 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
309 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
310 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
311 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
312 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
313 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
314 | neg find isPrimitive(element); | ||
315 | } or { | ||
316 | find interpretation(problem,interpretation); | ||
317 | PartialInterpretation.openWorldElements(interpretation,element); | ||
318 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
319 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
320 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
321 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
322 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
323 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
324 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
325 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
326 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
327 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
328 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
329 | neg find isPrimitive(element); | ||
330 | } or | ||
331 | { find mustInstanceOfEDataType_class(problem,interpretation,element); } | ||
332 | /** | ||
333 | * An element must be an instance of type "EEnum class". | ||
334 | */ | ||
335 | private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
336 | Type.name(type,"EEnum class"); | ||
337 | find directInstanceOf(problem,interpretation,element,type); | ||
338 | } | ||
339 | private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
340 | find interpretation(problem,interpretation); | ||
341 | PartialInterpretation.scopes(interpretation,scope); | ||
342 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
343 | Scope.maxNewElements(scope,0); | ||
344 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
345 | Type.name(type,"EEnum class"); | ||
346 | } | ||
347 | |||
348 | /** | ||
349 | * An element may be an instance of type "EEnum class". | ||
350 | */ | ||
351 | private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
352 | { | ||
353 | find interpretation(problem,interpretation); | ||
354 | PartialInterpretation.newElements(interpretation,element); | ||
355 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
356 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
357 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
358 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
359 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
360 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
361 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
362 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
363 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
364 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
365 | neg find isPrimitive(element); | ||
366 | } or { | ||
367 | find interpretation(problem,interpretation); | ||
368 | PartialInterpretation.openWorldElements(interpretation,element); | ||
369 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
370 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
371 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
372 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
373 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
374 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
375 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
376 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
377 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
378 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
379 | neg find isPrimitive(element); | ||
380 | } or | ||
381 | { find mustInstanceOfEEnum_class(problem,interpretation,element); } | ||
382 | /** | ||
383 | * An element must be an instance of type "EEnumLiteral class". | ||
384 | */ | ||
385 | private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
386 | Type.name(type,"EEnumLiteral class"); | ||
387 | find directInstanceOf(problem,interpretation,element,type); | ||
388 | } | ||
389 | private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
390 | find interpretation(problem,interpretation); | ||
391 | PartialInterpretation.scopes(interpretation,scope); | ||
392 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
393 | Scope.maxNewElements(scope,0); | ||
394 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
395 | Type.name(type,"EEnumLiteral class"); | ||
396 | } | ||
397 | |||
398 | /** | ||
399 | * An element may be an instance of type "EEnumLiteral class". | ||
400 | */ | ||
401 | private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
402 | { | ||
403 | find interpretation(problem,interpretation); | ||
404 | PartialInterpretation.newElements(interpretation,element); | ||
405 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
406 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
407 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
408 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
409 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
410 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
411 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
412 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
413 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
414 | neg find isPrimitive(element); | ||
415 | } or { | ||
416 | find interpretation(problem,interpretation); | ||
417 | PartialInterpretation.openWorldElements(interpretation,element); | ||
418 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
419 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
420 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
421 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
422 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
423 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
424 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
425 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
426 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
427 | neg find isPrimitive(element); | ||
428 | } or | ||
429 | { find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); } | ||
430 | /** | ||
431 | * An element must be an instance of type "EModelElement class". | ||
432 | */ | ||
433 | private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
434 | Type.name(type,"EModelElement class"); | ||
435 | find directInstanceOf(problem,interpretation,element,type); | ||
436 | } | ||
437 | private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
438 | find interpretation(problem,interpretation); | ||
439 | PartialInterpretation.scopes(interpretation,scope); | ||
440 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
441 | Scope.maxNewElements(scope,0); | ||
442 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
443 | Type.name(type,"EModelElement class"); | ||
444 | } | ||
445 | |||
446 | /** | ||
447 | * An element may be an instance of type "EModelElement class". | ||
448 | */ | ||
449 | private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
450 | { | ||
451 | find interpretation(problem,interpretation); | ||
452 | PartialInterpretation.newElements(interpretation,element); | ||
453 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
454 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
455 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
456 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
457 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
458 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
459 | neg find isPrimitive(element); | ||
460 | } or { | ||
461 | find interpretation(problem,interpretation); | ||
462 | PartialInterpretation.openWorldElements(interpretation,element); | ||
463 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
464 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
465 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
466 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
467 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
468 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
469 | neg find isPrimitive(element); | ||
470 | } or | ||
471 | { find mustInstanceOfEModelElement_class(problem,interpretation,element); } | ||
472 | /** | ||
473 | * An element must be an instance of type "ENamedElement class". | ||
474 | */ | ||
475 | private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
476 | Type.name(type,"ENamedElement class"); | ||
477 | find directInstanceOf(problem,interpretation,element,type); | ||
478 | } | ||
479 | private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
480 | find interpretation(problem,interpretation); | ||
481 | PartialInterpretation.scopes(interpretation,scope); | ||
482 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
483 | Scope.maxNewElements(scope,0); | ||
484 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
485 | Type.name(type,"ENamedElement class"); | ||
486 | } | ||
487 | |||
488 | /** | ||
489 | * An element may be an instance of type "ENamedElement class". | ||
490 | */ | ||
491 | private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
492 | { | ||
493 | find interpretation(problem,interpretation); | ||
494 | PartialInterpretation.newElements(interpretation,element); | ||
495 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
496 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
497 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
498 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
499 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
500 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
501 | neg find isPrimitive(element); | ||
502 | } or { | ||
503 | find interpretation(problem,interpretation); | ||
504 | PartialInterpretation.openWorldElements(interpretation,element); | ||
505 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
506 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
507 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
508 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
509 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
510 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
511 | neg find isPrimitive(element); | ||
512 | } or | ||
513 | { find mustInstanceOfENamedElement_class(problem,interpretation,element); } | ||
514 | /** | ||
515 | * An element must be an instance of type "EObject class". | ||
516 | */ | ||
517 | private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
518 | Type.name(type,"EObject class"); | ||
519 | find directInstanceOf(problem,interpretation,element,type); | ||
520 | } | ||
521 | private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
522 | find interpretation(problem,interpretation); | ||
523 | PartialInterpretation.scopes(interpretation,scope); | ||
524 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
525 | Scope.maxNewElements(scope,0); | ||
526 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
527 | Type.name(type,"EObject class"); | ||
528 | } | ||
529 | |||
530 | /** | ||
531 | * An element may be an instance of type "EObject class". | ||
532 | */ | ||
533 | private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
534 | { | ||
535 | find interpretation(problem,interpretation); | ||
536 | PartialInterpretation.newElements(interpretation,element); | ||
537 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
538 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
539 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
540 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
541 | neg find isPrimitive(element); | ||
542 | } or { | ||
543 | find interpretation(problem,interpretation); | ||
544 | PartialInterpretation.openWorldElements(interpretation,element); | ||
545 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
546 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
547 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
548 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
549 | neg find isPrimitive(element); | ||
550 | } or | ||
551 | { find mustInstanceOfEObject_class(problem,interpretation,element); } | ||
552 | /** | ||
553 | * An element must be an instance of type "EOperation class". | ||
554 | */ | ||
555 | private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
556 | Type.name(type,"EOperation class"); | ||
557 | find directInstanceOf(problem,interpretation,element,type); | ||
558 | } | ||
559 | private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
560 | find interpretation(problem,interpretation); | ||
561 | PartialInterpretation.scopes(interpretation,scope); | ||
562 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
563 | Scope.maxNewElements(scope,0); | ||
564 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
565 | Type.name(type,"EOperation class"); | ||
566 | } | ||
567 | |||
568 | /** | ||
569 | * An element may be an instance of type "EOperation class". | ||
570 | */ | ||
571 | private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
572 | { | ||
573 | find interpretation(problem,interpretation); | ||
574 | PartialInterpretation.newElements(interpretation,element); | ||
575 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
576 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
577 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
578 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
579 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
580 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
581 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
582 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
583 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
584 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
585 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
586 | neg find isPrimitive(element); | ||
587 | } or { | ||
588 | find interpretation(problem,interpretation); | ||
589 | PartialInterpretation.openWorldElements(interpretation,element); | ||
590 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
591 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
592 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
593 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
594 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
595 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
596 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
597 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
598 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
599 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
600 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
601 | neg find isPrimitive(element); | ||
602 | } or | ||
603 | { find mustInstanceOfEOperation_class(problem,interpretation,element); } | ||
604 | /** | ||
605 | * An element must be an instance of type "EPackage class". | ||
606 | */ | ||
607 | private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
608 | Type.name(type,"EPackage class"); | ||
609 | find directInstanceOf(problem,interpretation,element,type); | ||
610 | } | ||
611 | private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
612 | find interpretation(problem,interpretation); | ||
613 | PartialInterpretation.scopes(interpretation,scope); | ||
614 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
615 | Scope.maxNewElements(scope,0); | ||
616 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
617 | Type.name(type,"EPackage class"); | ||
618 | } | ||
619 | |||
620 | /** | ||
621 | * An element may be an instance of type "EPackage class". | ||
622 | */ | ||
623 | private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
624 | { | ||
625 | find interpretation(problem,interpretation); | ||
626 | PartialInterpretation.newElements(interpretation,element); | ||
627 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
628 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
629 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
630 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
631 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
632 | neg find isPrimitive(element); | ||
633 | } or { | ||
634 | find interpretation(problem,interpretation); | ||
635 | PartialInterpretation.openWorldElements(interpretation,element); | ||
636 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
637 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
638 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
639 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
640 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
641 | neg find isPrimitive(element); | ||
642 | } or | ||
643 | { find mustInstanceOfEPackage_class(problem,interpretation,element); } | ||
644 | /** | ||
645 | * An element must be an instance of type "EParameter class". | ||
646 | */ | ||
647 | private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
648 | Type.name(type,"EParameter class"); | ||
649 | find directInstanceOf(problem,interpretation,element,type); | ||
650 | } | ||
651 | private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
652 | find interpretation(problem,interpretation); | ||
653 | PartialInterpretation.scopes(interpretation,scope); | ||
654 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
655 | Scope.maxNewElements(scope,0); | ||
656 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
657 | Type.name(type,"EParameter class"); | ||
658 | } | ||
659 | |||
660 | /** | ||
661 | * An element may be an instance of type "EParameter class". | ||
662 | */ | ||
663 | private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
664 | { | ||
665 | find interpretation(problem,interpretation); | ||
666 | PartialInterpretation.newElements(interpretation,element); | ||
667 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
668 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
669 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
670 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
671 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
672 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
673 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
674 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
675 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
676 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
677 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
678 | neg find isPrimitive(element); | ||
679 | } or { | ||
680 | find interpretation(problem,interpretation); | ||
681 | PartialInterpretation.openWorldElements(interpretation,element); | ||
682 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
683 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
684 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
685 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
686 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
687 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
688 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
689 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
690 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
691 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
692 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
693 | neg find isPrimitive(element); | ||
694 | } or | ||
695 | { find mustInstanceOfEParameter_class(problem,interpretation,element); } | ||
696 | /** | ||
697 | * An element must be an instance of type "EReference class". | ||
698 | */ | ||
699 | private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
700 | Type.name(type,"EReference class"); | ||
701 | find directInstanceOf(problem,interpretation,element,type); | ||
702 | } | ||
703 | private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
704 | find interpretation(problem,interpretation); | ||
705 | PartialInterpretation.scopes(interpretation,scope); | ||
706 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
707 | Scope.maxNewElements(scope,0); | ||
708 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
709 | Type.name(type,"EReference class"); | ||
710 | } | ||
711 | |||
712 | /** | ||
713 | * An element may be an instance of type "EReference class". | ||
714 | */ | ||
715 | private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
716 | { | ||
717 | find interpretation(problem,interpretation); | ||
718 | PartialInterpretation.newElements(interpretation,element); | ||
719 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
720 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
721 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
722 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
723 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
724 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
725 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
726 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
727 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
728 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
729 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
730 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
731 | neg find isPrimitive(element); | ||
732 | } or { | ||
733 | find interpretation(problem,interpretation); | ||
734 | PartialInterpretation.openWorldElements(interpretation,element); | ||
735 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
736 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
737 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
738 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
739 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
740 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
741 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
742 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
743 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
744 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
745 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
746 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
747 | neg find isPrimitive(element); | ||
748 | } or | ||
749 | { find mustInstanceOfEReference_class(problem,interpretation,element); } | ||
750 | /** | ||
751 | * An element must be an instance of type "EStructuralFeature class". | ||
752 | */ | ||
753 | private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
754 | Type.name(type,"EStructuralFeature class"); | ||
755 | find directInstanceOf(problem,interpretation,element,type); | ||
756 | } | ||
757 | private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
758 | find interpretation(problem,interpretation); | ||
759 | PartialInterpretation.scopes(interpretation,scope); | ||
760 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
761 | Scope.maxNewElements(scope,0); | ||
762 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
763 | Type.name(type,"EStructuralFeature class"); | ||
764 | } | ||
765 | |||
766 | /** | ||
767 | * An element may be an instance of type "EStructuralFeature class". | ||
768 | */ | ||
769 | private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
770 | { | ||
771 | find interpretation(problem,interpretation); | ||
772 | PartialInterpretation.newElements(interpretation,element); | ||
773 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
774 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
775 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
776 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
777 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
778 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
779 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
780 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
781 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
782 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
783 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
784 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
785 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
786 | neg find isPrimitive(element); | ||
787 | } or { | ||
788 | find interpretation(problem,interpretation); | ||
789 | PartialInterpretation.openWorldElements(interpretation,element); | ||
790 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
791 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
792 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
793 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
794 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
795 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
796 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
797 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
798 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
799 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
800 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
801 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
802 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
803 | neg find isPrimitive(element); | ||
804 | } or | ||
805 | { find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } | ||
806 | /** | ||
807 | * An element must be an instance of type "ETypedElement class". | ||
808 | */ | ||
809 | private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
810 | Type.name(type,"ETypedElement class"); | ||
811 | find directInstanceOf(problem,interpretation,element,type); | ||
812 | } | ||
813 | private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
814 | find interpretation(problem,interpretation); | ||
815 | PartialInterpretation.scopes(interpretation,scope); | ||
816 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
817 | Scope.maxNewElements(scope,0); | ||
818 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
819 | Type.name(type,"ETypedElement class"); | ||
820 | } | ||
821 | |||
822 | /** | ||
823 | * An element may be an instance of type "ETypedElement class". | ||
824 | */ | ||
825 | private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
826 | { | ||
827 | find interpretation(problem,interpretation); | ||
828 | PartialInterpretation.newElements(interpretation,element); | ||
829 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
830 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
831 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
832 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
833 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
834 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
835 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
836 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
837 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
838 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
839 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
840 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
841 | neg find isPrimitive(element); | ||
842 | } or { | ||
843 | find interpretation(problem,interpretation); | ||
844 | PartialInterpretation.openWorldElements(interpretation,element); | ||
845 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
846 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
847 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
848 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
849 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
850 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
851 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
852 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
853 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
854 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
855 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
856 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
857 | neg find isPrimitive(element); | ||
858 | } or | ||
859 | { find mustInstanceOfETypedElement_class(problem,interpretation,element); } | ||
860 | /** | ||
861 | * An element must be an instance of type "EStringToStringMapEntry class". | ||
862 | */ | ||
863 | private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
864 | Type.name(type,"EStringToStringMapEntry class"); | ||
865 | find directInstanceOf(problem,interpretation,element,type); | ||
866 | } | ||
867 | private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
868 | find interpretation(problem,interpretation); | ||
869 | PartialInterpretation.scopes(interpretation,scope); | ||
870 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
871 | Scope.maxNewElements(scope,0); | ||
872 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
873 | Type.name(type,"EStringToStringMapEntry class"); | ||
874 | } | ||
875 | |||
876 | /** | ||
877 | * An element may be an instance of type "EStringToStringMapEntry class". | ||
878 | */ | ||
879 | private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
880 | { | ||
881 | find interpretation(problem,interpretation); | ||
882 | PartialInterpretation.newElements(interpretation,element); | ||
883 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
884 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
885 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
886 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
887 | neg find isPrimitive(element); | ||
888 | } or { | ||
889 | find interpretation(problem,interpretation); | ||
890 | PartialInterpretation.openWorldElements(interpretation,element); | ||
891 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
892 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
893 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
894 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
895 | neg find isPrimitive(element); | ||
896 | } or | ||
897 | { find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } | ||
898 | /** | ||
899 | * An element must be an instance of type "EGenericType class". | ||
900 | */ | ||
901 | private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
902 | Type.name(type,"EGenericType class"); | ||
903 | find directInstanceOf(problem,interpretation,element,type); | ||
904 | } | ||
905 | private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
906 | find interpretation(problem,interpretation); | ||
907 | PartialInterpretation.scopes(interpretation,scope); | ||
908 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
909 | Scope.maxNewElements(scope,0); | ||
910 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
911 | Type.name(type,"EGenericType class"); | ||
912 | } | ||
913 | |||
914 | /** | ||
915 | * An element may be an instance of type "EGenericType class". | ||
916 | */ | ||
917 | private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
918 | { | ||
919 | find interpretation(problem,interpretation); | ||
920 | PartialInterpretation.newElements(interpretation,element); | ||
921 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
922 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
923 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
924 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
925 | neg find isPrimitive(element); | ||
926 | } or { | ||
927 | find interpretation(problem,interpretation); | ||
928 | PartialInterpretation.openWorldElements(interpretation,element); | ||
929 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
930 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
931 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
932 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
933 | neg find isPrimitive(element); | ||
934 | } or | ||
935 | { find mustInstanceOfEGenericType_class(problem,interpretation,element); } | ||
936 | /** | ||
937 | * An element must be an instance of type "ETypeParameter class". | ||
938 | */ | ||
939 | private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
940 | Type.name(type,"ETypeParameter class"); | ||
941 | find directInstanceOf(problem,interpretation,element,type); | ||
942 | } | ||
943 | private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
944 | find interpretation(problem,interpretation); | ||
945 | PartialInterpretation.scopes(interpretation,scope); | ||
946 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
947 | Scope.maxNewElements(scope,0); | ||
948 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
949 | Type.name(type,"ETypeParameter class"); | ||
950 | } | ||
951 | |||
952 | /** | ||
953 | * An element may be an instance of type "ETypeParameter class". | ||
954 | */ | ||
955 | private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
956 | { | ||
957 | find interpretation(problem,interpretation); | ||
958 | PartialInterpretation.newElements(interpretation,element); | ||
959 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
960 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
961 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
962 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
963 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
964 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
965 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
966 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
967 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
968 | neg find isPrimitive(element); | ||
969 | } or { | ||
970 | find interpretation(problem,interpretation); | ||
971 | PartialInterpretation.openWorldElements(interpretation,element); | ||
972 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
973 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
974 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
975 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
976 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
977 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
978 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
979 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
980 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
981 | neg find isPrimitive(element); | ||
982 | } or | ||
983 | { find mustInstanceOfETypeParameter_class(problem,interpretation,element); } | ||
984 | /** | ||
985 | * An element must be an instance of type "EModelElement class DefinedPart". | ||
986 | */ | ||
987 | private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
988 | Type.name(type,"EModelElement class DefinedPart"); | ||
989 | find directInstanceOf(problem,interpretation,element,type); | ||
990 | } | ||
991 | private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
992 | find interpretation(problem,interpretation); | ||
993 | PartialInterpretation.scopes(interpretation,scope); | ||
994 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
995 | Scope.maxNewElements(scope,0); | ||
996 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
997 | Type.name(type,"EModelElement class DefinedPart"); | ||
998 | } | ||
999 | |||
1000 | /** | ||
1001 | * An element may be an instance of type "EModelElement class DefinedPart". | ||
1002 | */ | ||
1003 | private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1004 | { find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); } | ||
1005 | /** | ||
1006 | * An element must be an instance of type "EModelElement class UndefinedPart". | ||
1007 | */ | ||
1008 | private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
1009 | Type.name(type,"EModelElement class UndefinedPart"); | ||
1010 | find directInstanceOf(problem,interpretation,element,type); | ||
1011 | } | ||
1012 | private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
1013 | find interpretation(problem,interpretation); | ||
1014 | PartialInterpretation.scopes(interpretation,scope); | ||
1015 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1016 | Scope.maxNewElements(scope,0); | ||
1017 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1018 | Type.name(type,"EModelElement class UndefinedPart"); | ||
1019 | } | ||
1020 | |||
1021 | /** | ||
1022 | * An element may be an instance of type "EModelElement class UndefinedPart". | ||
1023 | */ | ||
1024 | private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1025 | { | ||
1026 | find interpretation(problem,interpretation); | ||
1027 | PartialInterpretation.newElements(interpretation,element); | ||
1028 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1029 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1030 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1031 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
1032 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1033 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
1034 | neg find isPrimitive(element); | ||
1035 | } or { | ||
1036 | find interpretation(problem,interpretation); | ||
1037 | PartialInterpretation.openWorldElements(interpretation,element); | ||
1038 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1039 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1040 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1041 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
1042 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1043 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
1044 | neg find isPrimitive(element); | ||
1045 | } or | ||
1046 | { find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } | ||
1047 | /** | ||
1048 | * An element must be an instance of type "ENamedElement class DefinedPart". | ||
1049 | */ | ||
1050 | private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
1051 | Type.name(type,"ENamedElement class DefinedPart"); | ||
1052 | find directInstanceOf(problem,interpretation,element,type); | ||
1053 | } | ||
1054 | private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
1055 | find interpretation(problem,interpretation); | ||
1056 | PartialInterpretation.scopes(interpretation,scope); | ||
1057 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1058 | Scope.maxNewElements(scope,0); | ||
1059 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1060 | Type.name(type,"ENamedElement class DefinedPart"); | ||
1061 | } | ||
1062 | |||
1063 | /** | ||
1064 | * An element may be an instance of type "ENamedElement class DefinedPart". | ||
1065 | */ | ||
1066 | private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1067 | { find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); } | ||
1068 | /** | ||
1069 | * An element must be an instance of type "ENamedElement class UndefinedPart". | ||
1070 | */ | ||
1071 | private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
1072 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
1073 | find directInstanceOf(problem,interpretation,element,type); | ||
1074 | } | ||
1075 | private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
1076 | find interpretation(problem,interpretation); | ||
1077 | PartialInterpretation.scopes(interpretation,scope); | ||
1078 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1079 | Scope.maxNewElements(scope,0); | ||
1080 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1081 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
1082 | } | ||
1083 | |||
1084 | /** | ||
1085 | * An element may be an instance of type "ENamedElement class UndefinedPart". | ||
1086 | */ | ||
1087 | private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1088 | { | ||
1089 | find interpretation(problem,interpretation); | ||
1090 | PartialInterpretation.newElements(interpretation,element); | ||
1091 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1092 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
1093 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
1094 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1095 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
1096 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1097 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
1098 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
1099 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1100 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
1101 | neg find isPrimitive(element); | ||
1102 | } or { | ||
1103 | find interpretation(problem,interpretation); | ||
1104 | PartialInterpretation.openWorldElements(interpretation,element); | ||
1105 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1106 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
1107 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
1108 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1109 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
1110 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1111 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
1112 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
1113 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1114 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
1115 | neg find isPrimitive(element); | ||
1116 | } or | ||
1117 | { find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } | ||
1118 | /** | ||
1119 | * An element must be an instance of type "EPackage class DefinedPart". | ||
1120 | */ | ||
1121 | private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
1122 | Type.name(type,"EPackage class DefinedPart"); | ||
1123 | find directInstanceOf(problem,interpretation,element,type); | ||
1124 | } | ||
1125 | private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
1126 | find interpretation(problem,interpretation); | ||
1127 | PartialInterpretation.scopes(interpretation,scope); | ||
1128 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1129 | Scope.maxNewElements(scope,0); | ||
1130 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1131 | Type.name(type,"EPackage class DefinedPart"); | ||
1132 | } | ||
1133 | |||
1134 | /** | ||
1135 | * An element may be an instance of type "EPackage class DefinedPart". | ||
1136 | */ | ||
1137 | private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1138 | { find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } | ||
1139 | /** | ||
1140 | * An element must be an instance of type "EPackage class UndefinedPart". | ||
1141 | */ | ||
1142 | private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
1143 | Type.name(type,"EPackage class UndefinedPart"); | ||
1144 | find directInstanceOf(problem,interpretation,element,type); | ||
1145 | } | ||
1146 | private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
1147 | find interpretation(problem,interpretation); | ||
1148 | PartialInterpretation.scopes(interpretation,scope); | ||
1149 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1150 | Scope.maxNewElements(scope,0); | ||
1151 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1152 | Type.name(type,"EPackage class UndefinedPart"); | ||
1153 | } | ||
1154 | |||
1155 | /** | ||
1156 | * An element may be an instance of type "EPackage class UndefinedPart". | ||
1157 | */ | ||
1158 | private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1159 | { | ||
1160 | find interpretation(problem,interpretation); | ||
1161 | PartialInterpretation.newElements(interpretation,element); | ||
1162 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1163 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
1164 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
1165 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
1166 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1167 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1168 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
1169 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1170 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
1171 | neg find isPrimitive(element); | ||
1172 | } or { | ||
1173 | find interpretation(problem,interpretation); | ||
1174 | PartialInterpretation.openWorldElements(interpretation,element); | ||
1175 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
1176 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
1177 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
1178 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
1179 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
1180 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
1181 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
1182 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
1183 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
1184 | neg find isPrimitive(element); | ||
1185 | } or | ||
1186 | { find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } | ||
1187 | |||
1188 | ////////// | ||
1189 | // 1.2 Relation Declaration Indexers | ||
1190 | ////////// | ||
1191 | /** | ||
1192 | * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) | ||
1193 | */ | ||
1194 | private pattern mustInRelationeAttributeType_reference_EAttribute( | ||
1195 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1196 | source: DefinedElement, target:DefinedElement) | ||
1197 | { | ||
1198 | find interpretation(problem,interpretation); | ||
1199 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1200 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
1201 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1202 | BinaryElementRelationLink.param1(link,source); | ||
1203 | BinaryElementRelationLink.param2(link,target); | ||
1204 | } | ||
1205 | /** | ||
1206 | * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) | ||
1207 | */ | ||
1208 | private pattern mayInRelationeAttributeType_reference_EAttribute( | ||
1209 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1210 | source: DefinedElement, target:DefinedElement) | ||
1211 | { | ||
1212 | find interpretation(problem,interpretation); | ||
1213 | // The two endpoint of the link have to exist | ||
1214 | find mayExist(problem, interpretation, source); | ||
1215 | find mayExist(problem, interpretation, target); | ||
1216 | // Type consistency | ||
1217 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
1218 | find mayInstanceOfEDataType_class(problem,interpretation,target); | ||
1219 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1220 | // the upper bound of the multiplicity should be considered. | ||
1221 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); | ||
1222 | check(numberOfExistingReferences < 1); | ||
1223 | } or { | ||
1224 | find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); | ||
1225 | } | ||
1226 | /** | ||
1227 | * Matcher for detecting tuples t where []details reference EAnnotation(source,target) | ||
1228 | */ | ||
1229 | private pattern mustInRelationdetails_reference_EAnnotation( | ||
1230 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1231 | source: DefinedElement, target:DefinedElement) | ||
1232 | { | ||
1233 | find interpretation(problem,interpretation); | ||
1234 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1235 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); | ||
1236 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1237 | BinaryElementRelationLink.param1(link,source); | ||
1238 | BinaryElementRelationLink.param2(link,target); | ||
1239 | } | ||
1240 | /** | ||
1241 | * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) | ||
1242 | */ | ||
1243 | private pattern mayInRelationdetails_reference_EAnnotation( | ||
1244 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1245 | source: DefinedElement, target:DefinedElement) | ||
1246 | { | ||
1247 | find interpretation(problem,interpretation); | ||
1248 | // The two endpoint of the link have to exist | ||
1249 | find mayExist(problem, interpretation, source); | ||
1250 | find mayExist(problem, interpretation, target); | ||
1251 | // Type consistency | ||
1252 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
1253 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); | ||
1254 | // The reference is containment, then a new reference cannot be create if: | ||
1255 | // 1. Multiple parents | ||
1256 | neg find mustContains4(problem,interpretation,_,target); | ||
1257 | // 2. Circle in the containment hierarchy | ||
1258 | neg find mustTransitiveContains(source,target); | ||
1259 | } or { | ||
1260 | find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); | ||
1261 | } | ||
1262 | /** | ||
1263 | * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) | ||
1264 | */ | ||
1265 | private pattern mustInRelationeModelElement_reference_EAnnotation( | ||
1266 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1267 | source: DefinedElement, target:DefinedElement) | ||
1268 | { | ||
1269 | find interpretation(problem,interpretation); | ||
1270 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1271 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); | ||
1272 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1273 | BinaryElementRelationLink.param1(link,source); | ||
1274 | BinaryElementRelationLink.param2(link,target); | ||
1275 | } | ||
1276 | /** | ||
1277 | * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) | ||
1278 | */ | ||
1279 | private pattern mayInRelationeModelElement_reference_EAnnotation( | ||
1280 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1281 | source: DefinedElement, target:DefinedElement) | ||
1282 | { | ||
1283 | find interpretation(problem,interpretation); | ||
1284 | // The two endpoint of the link have to exist | ||
1285 | find mayExist(problem, interpretation, source); | ||
1286 | find mayExist(problem, interpretation, target); | ||
1287 | // Type consistency | ||
1288 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
1289 | find mayInstanceOfEModelElement_class(problem,interpretation,target); | ||
1290 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1291 | // the upper bound of the multiplicity should be considered. | ||
1292 | numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); | ||
1293 | check(numberOfExistingReferences < 1); | ||
1294 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
1295 | // 1. Multiple parents | ||
1296 | neg find mustContains4(problem,interpretation,source,_); | ||
1297 | // 2. Circle in the containment hierarchy | ||
1298 | neg find mustTransitiveContains(source,target); | ||
1299 | } or { | ||
1300 | find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); | ||
1301 | } | ||
1302 | /** | ||
1303 | * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) | ||
1304 | */ | ||
1305 | private pattern mustInRelationcontents_reference_EAnnotation( | ||
1306 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1307 | source: DefinedElement, target:DefinedElement) | ||
1308 | { | ||
1309 | find interpretation(problem,interpretation); | ||
1310 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1311 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); | ||
1312 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1313 | BinaryElementRelationLink.param1(link,source); | ||
1314 | BinaryElementRelationLink.param2(link,target); | ||
1315 | } | ||
1316 | /** | ||
1317 | * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) | ||
1318 | */ | ||
1319 | private pattern mayInRelationcontents_reference_EAnnotation( | ||
1320 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1321 | source: DefinedElement, target:DefinedElement) | ||
1322 | { | ||
1323 | find interpretation(problem,interpretation); | ||
1324 | // The two endpoint of the link have to exist | ||
1325 | find mayExist(problem, interpretation, source); | ||
1326 | find mayExist(problem, interpretation, target); | ||
1327 | // Type consistency | ||
1328 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
1329 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
1330 | // The reference is containment, then a new reference cannot be create if: | ||
1331 | // 1. Multiple parents | ||
1332 | neg find mustContains4(problem,interpretation,_,target); | ||
1333 | // 2. Circle in the containment hierarchy | ||
1334 | neg find mustTransitiveContains(source,target); | ||
1335 | } or { | ||
1336 | find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); | ||
1337 | } | ||
1338 | /** | ||
1339 | * Matcher for detecting tuples t where []references reference EAnnotation(source,target) | ||
1340 | */ | ||
1341 | private pattern mustInRelationreferences_reference_EAnnotation( | ||
1342 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1343 | source: DefinedElement, target:DefinedElement) | ||
1344 | { | ||
1345 | find interpretation(problem,interpretation); | ||
1346 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1347 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
1348 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1349 | BinaryElementRelationLink.param1(link,source); | ||
1350 | BinaryElementRelationLink.param2(link,target); | ||
1351 | } | ||
1352 | /** | ||
1353 | * Matcher for detecting tuples t where <>references reference EAnnotation(source,target) | ||
1354 | */ | ||
1355 | private pattern mayInRelationreferences_reference_EAnnotation( | ||
1356 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1357 | source: DefinedElement, target:DefinedElement) | ||
1358 | { | ||
1359 | find interpretation(problem,interpretation); | ||
1360 | // The two endpoint of the link have to exist | ||
1361 | find mayExist(problem, interpretation, source); | ||
1362 | find mayExist(problem, interpretation, target); | ||
1363 | // Type consistency | ||
1364 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
1365 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
1366 | } or { | ||
1367 | find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target); | ||
1368 | } | ||
1369 | /** | ||
1370 | * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target) | ||
1371 | */ | ||
1372 | private pattern mustInRelationeSuperTypes_reference_EClass( | ||
1373 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1374 | source: DefinedElement, target:DefinedElement) | ||
1375 | { | ||
1376 | find interpretation(problem,interpretation); | ||
1377 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1378 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
1379 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1380 | BinaryElementRelationLink.param1(link,source); | ||
1381 | BinaryElementRelationLink.param2(link,target); | ||
1382 | } | ||
1383 | /** | ||
1384 | * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target) | ||
1385 | */ | ||
1386 | private pattern mayInRelationeSuperTypes_reference_EClass( | ||
1387 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1388 | source: DefinedElement, target:DefinedElement) | ||
1389 | { | ||
1390 | find interpretation(problem,interpretation); | ||
1391 | // The two endpoint of the link have to exist | ||
1392 | find mayExist(problem, interpretation, source); | ||
1393 | find mayExist(problem, interpretation, target); | ||
1394 | // Type consistency | ||
1395 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1396 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
1397 | } or { | ||
1398 | find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
1399 | } | ||
1400 | /** | ||
1401 | * Matcher for detecting tuples t where []eOperations reference EClass(source,target) | ||
1402 | */ | ||
1403 | private pattern mustInRelationeOperations_reference_EClass( | ||
1404 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1405 | source: DefinedElement, target:DefinedElement) | ||
1406 | { | ||
1407 | find interpretation(problem,interpretation); | ||
1408 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1409 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); | ||
1410 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1411 | BinaryElementRelationLink.param1(link,source); | ||
1412 | BinaryElementRelationLink.param2(link,target); | ||
1413 | } | ||
1414 | /** | ||
1415 | * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) | ||
1416 | */ | ||
1417 | private pattern mayInRelationeOperations_reference_EClass( | ||
1418 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1419 | source: DefinedElement, target:DefinedElement) | ||
1420 | { | ||
1421 | find interpretation(problem,interpretation); | ||
1422 | // The two endpoint of the link have to exist | ||
1423 | find mayExist(problem, interpretation, source); | ||
1424 | find mayExist(problem, interpretation, target); | ||
1425 | // Type consistency | ||
1426 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1427 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
1428 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
1429 | // the upper bound of the opposite reference multiplicity should be considered. | ||
1430 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); | ||
1431 | check(numberOfExistingOppositeReferences < 1); | ||
1432 | // The reference is containment, then a new reference cannot be create if: | ||
1433 | // 1. Multiple parents | ||
1434 | neg find mustContains4(problem,interpretation,_,target); | ||
1435 | // 2. Circle in the containment hierarchy | ||
1436 | neg find mustTransitiveContains(source,target); | ||
1437 | } or { | ||
1438 | find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); | ||
1439 | } | ||
1440 | /** | ||
1441 | * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target) | ||
1442 | */ | ||
1443 | private pattern mustInRelationeAllAttributes_reference_EClass( | ||
1444 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1445 | source: DefinedElement, target:DefinedElement) | ||
1446 | { | ||
1447 | find interpretation(problem,interpretation); | ||
1448 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1449 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
1450 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1451 | BinaryElementRelationLink.param1(link,source); | ||
1452 | BinaryElementRelationLink.param2(link,target); | ||
1453 | } | ||
1454 | /** | ||
1455 | * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target) | ||
1456 | */ | ||
1457 | private pattern mayInRelationeAllAttributes_reference_EClass( | ||
1458 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1459 | source: DefinedElement, target:DefinedElement) | ||
1460 | { | ||
1461 | find interpretation(problem,interpretation); | ||
1462 | // The two endpoint of the link have to exist | ||
1463 | find mayExist(problem, interpretation, source); | ||
1464 | find mayExist(problem, interpretation, target); | ||
1465 | // Type consistency | ||
1466 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1467 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
1468 | } or { | ||
1469 | find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target); | ||
1470 | } | ||
1471 | /** | ||
1472 | * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target) | ||
1473 | */ | ||
1474 | private pattern mustInRelationeAllReferences_reference_EClass( | ||
1475 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1476 | source: DefinedElement, target:DefinedElement) | ||
1477 | { | ||
1478 | find interpretation(problem,interpretation); | ||
1479 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1480 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
1481 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1482 | BinaryElementRelationLink.param1(link,source); | ||
1483 | BinaryElementRelationLink.param2(link,target); | ||
1484 | } | ||
1485 | /** | ||
1486 | * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target) | ||
1487 | */ | ||
1488 | private pattern mayInRelationeAllReferences_reference_EClass( | ||
1489 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1490 | source: DefinedElement, target:DefinedElement) | ||
1491 | { | ||
1492 | find interpretation(problem,interpretation); | ||
1493 | // The two endpoint of the link have to exist | ||
1494 | find mayExist(problem, interpretation, source); | ||
1495 | find mayExist(problem, interpretation, target); | ||
1496 | // Type consistency | ||
1497 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1498 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
1499 | } or { | ||
1500 | find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target); | ||
1501 | } | ||
1502 | /** | ||
1503 | * Matcher for detecting tuples t where []eReferences reference EClass(source,target) | ||
1504 | */ | ||
1505 | private pattern mustInRelationeReferences_reference_EClass( | ||
1506 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1507 | source: DefinedElement, target:DefinedElement) | ||
1508 | { | ||
1509 | find interpretation(problem,interpretation); | ||
1510 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1511 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
1512 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1513 | BinaryElementRelationLink.param1(link,source); | ||
1514 | BinaryElementRelationLink.param2(link,target); | ||
1515 | } | ||
1516 | /** | ||
1517 | * Matcher for detecting tuples t where <>eReferences reference EClass(source,target) | ||
1518 | */ | ||
1519 | private pattern mayInRelationeReferences_reference_EClass( | ||
1520 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1521 | source: DefinedElement, target:DefinedElement) | ||
1522 | { | ||
1523 | find interpretation(problem,interpretation); | ||
1524 | // The two endpoint of the link have to exist | ||
1525 | find mayExist(problem, interpretation, source); | ||
1526 | find mayExist(problem, interpretation, target); | ||
1527 | // Type consistency | ||
1528 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1529 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
1530 | } or { | ||
1531 | find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target); | ||
1532 | } | ||
1533 | /** | ||
1534 | * Matcher for detecting tuples t where []eAttributes reference EClass(source,target) | ||
1535 | */ | ||
1536 | private pattern mustInRelationeAttributes_reference_EClass( | ||
1537 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1538 | source: DefinedElement, target:DefinedElement) | ||
1539 | { | ||
1540 | find interpretation(problem,interpretation); | ||
1541 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1542 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
1543 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1544 | BinaryElementRelationLink.param1(link,source); | ||
1545 | BinaryElementRelationLink.param2(link,target); | ||
1546 | } | ||
1547 | /** | ||
1548 | * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target) | ||
1549 | */ | ||
1550 | private pattern mayInRelationeAttributes_reference_EClass( | ||
1551 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1552 | source: DefinedElement, target:DefinedElement) | ||
1553 | { | ||
1554 | find interpretation(problem,interpretation); | ||
1555 | // The two endpoint of the link have to exist | ||
1556 | find mayExist(problem, interpretation, source); | ||
1557 | find mayExist(problem, interpretation, target); | ||
1558 | // Type consistency | ||
1559 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1560 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
1561 | } or { | ||
1562 | find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target); | ||
1563 | } | ||
1564 | /** | ||
1565 | * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target) | ||
1566 | */ | ||
1567 | private pattern mustInRelationeAllContainments_reference_EClass( | ||
1568 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1569 | source: DefinedElement, target:DefinedElement) | ||
1570 | { | ||
1571 | find interpretation(problem,interpretation); | ||
1572 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1573 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
1574 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1575 | BinaryElementRelationLink.param1(link,source); | ||
1576 | BinaryElementRelationLink.param2(link,target); | ||
1577 | } | ||
1578 | /** | ||
1579 | * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target) | ||
1580 | */ | ||
1581 | private pattern mayInRelationeAllContainments_reference_EClass( | ||
1582 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1583 | source: DefinedElement, target:DefinedElement) | ||
1584 | { | ||
1585 | find interpretation(problem,interpretation); | ||
1586 | // The two endpoint of the link have to exist | ||
1587 | find mayExist(problem, interpretation, source); | ||
1588 | find mayExist(problem, interpretation, target); | ||
1589 | // Type consistency | ||
1590 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1591 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
1592 | } or { | ||
1593 | find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target); | ||
1594 | } | ||
1595 | /** | ||
1596 | * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target) | ||
1597 | */ | ||
1598 | private pattern mustInRelationeAllOperations_reference_EClass( | ||
1599 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1600 | source: DefinedElement, target:DefinedElement) | ||
1601 | { | ||
1602 | find interpretation(problem,interpretation); | ||
1603 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1604 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
1605 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1606 | BinaryElementRelationLink.param1(link,source); | ||
1607 | BinaryElementRelationLink.param2(link,target); | ||
1608 | } | ||
1609 | /** | ||
1610 | * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target) | ||
1611 | */ | ||
1612 | private pattern mayInRelationeAllOperations_reference_EClass( | ||
1613 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1614 | source: DefinedElement, target:DefinedElement) | ||
1615 | { | ||
1616 | find interpretation(problem,interpretation); | ||
1617 | // The two endpoint of the link have to exist | ||
1618 | find mayExist(problem, interpretation, source); | ||
1619 | find mayExist(problem, interpretation, target); | ||
1620 | // Type consistency | ||
1621 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1622 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
1623 | } or { | ||
1624 | find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target); | ||
1625 | } | ||
1626 | /** | ||
1627 | * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) | ||
1628 | */ | ||
1629 | private pattern mustInRelationeAllStructuralFeatures_reference_EClass( | ||
1630 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1631 | source: DefinedElement, target:DefinedElement) | ||
1632 | { | ||
1633 | find interpretation(problem,interpretation); | ||
1634 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1635 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
1636 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1637 | BinaryElementRelationLink.param1(link,source); | ||
1638 | BinaryElementRelationLink.param2(link,target); | ||
1639 | } | ||
1640 | /** | ||
1641 | * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) | ||
1642 | */ | ||
1643 | private pattern mayInRelationeAllStructuralFeatures_reference_EClass( | ||
1644 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1645 | source: DefinedElement, target:DefinedElement) | ||
1646 | { | ||
1647 | find interpretation(problem,interpretation); | ||
1648 | // The two endpoint of the link have to exist | ||
1649 | find mayExist(problem, interpretation, source); | ||
1650 | find mayExist(problem, interpretation, target); | ||
1651 | // Type consistency | ||
1652 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1653 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
1654 | } or { | ||
1655 | find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
1656 | } | ||
1657 | /** | ||
1658 | * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) | ||
1659 | */ | ||
1660 | private pattern mustInRelationeAllSuperTypes_reference_EClass( | ||
1661 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1662 | source: DefinedElement, target:DefinedElement) | ||
1663 | { | ||
1664 | find interpretation(problem,interpretation); | ||
1665 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1666 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
1667 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1668 | BinaryElementRelationLink.param1(link,source); | ||
1669 | BinaryElementRelationLink.param2(link,target); | ||
1670 | } | ||
1671 | /** | ||
1672 | * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) | ||
1673 | */ | ||
1674 | private pattern mayInRelationeAllSuperTypes_reference_EClass( | ||
1675 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1676 | source: DefinedElement, target:DefinedElement) | ||
1677 | { | ||
1678 | find interpretation(problem,interpretation); | ||
1679 | // The two endpoint of the link have to exist | ||
1680 | find mayExist(problem, interpretation, source); | ||
1681 | find mayExist(problem, interpretation, target); | ||
1682 | // Type consistency | ||
1683 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1684 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
1685 | } or { | ||
1686 | find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
1687 | } | ||
1688 | /** | ||
1689 | * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) | ||
1690 | */ | ||
1691 | private pattern mustInRelationeIDAttribute_reference_EClass( | ||
1692 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1693 | source: DefinedElement, target:DefinedElement) | ||
1694 | { | ||
1695 | find interpretation(problem,interpretation); | ||
1696 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1697 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
1698 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1699 | BinaryElementRelationLink.param1(link,source); | ||
1700 | BinaryElementRelationLink.param2(link,target); | ||
1701 | } | ||
1702 | /** | ||
1703 | * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) | ||
1704 | */ | ||
1705 | private pattern mayInRelationeIDAttribute_reference_EClass( | ||
1706 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1707 | source: DefinedElement, target:DefinedElement) | ||
1708 | { | ||
1709 | find interpretation(problem,interpretation); | ||
1710 | // The two endpoint of the link have to exist | ||
1711 | find mayExist(problem, interpretation, source); | ||
1712 | find mayExist(problem, interpretation, target); | ||
1713 | // Type consistency | ||
1714 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1715 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
1716 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1717 | // the upper bound of the multiplicity should be considered. | ||
1718 | numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); | ||
1719 | check(numberOfExistingReferences < 1); | ||
1720 | } or { | ||
1721 | find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); | ||
1722 | } | ||
1723 | /** | ||
1724 | * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) | ||
1725 | */ | ||
1726 | private pattern mustInRelationeStructuralFeatures_reference_EClass( | ||
1727 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1728 | source: DefinedElement, target:DefinedElement) | ||
1729 | { | ||
1730 | find interpretation(problem,interpretation); | ||
1731 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1732 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); | ||
1733 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1734 | BinaryElementRelationLink.param1(link,source); | ||
1735 | BinaryElementRelationLink.param2(link,target); | ||
1736 | } | ||
1737 | /** | ||
1738 | * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) | ||
1739 | */ | ||
1740 | private pattern mayInRelationeStructuralFeatures_reference_EClass( | ||
1741 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1742 | source: DefinedElement, target:DefinedElement) | ||
1743 | { | ||
1744 | find interpretation(problem,interpretation); | ||
1745 | // The two endpoint of the link have to exist | ||
1746 | find mayExist(problem, interpretation, source); | ||
1747 | find mayExist(problem, interpretation, target); | ||
1748 | // Type consistency | ||
1749 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1750 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
1751 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
1752 | // the upper bound of the opposite reference multiplicity should be considered. | ||
1753 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); | ||
1754 | check(numberOfExistingOppositeReferences < 1); | ||
1755 | // The reference is containment, then a new reference cannot be create if: | ||
1756 | // 1. Multiple parents | ||
1757 | neg find mustContains4(problem,interpretation,_,target); | ||
1758 | // 2. Circle in the containment hierarchy | ||
1759 | neg find mustTransitiveContains(source,target); | ||
1760 | } or { | ||
1761 | find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
1762 | } | ||
1763 | /** | ||
1764 | * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target) | ||
1765 | */ | ||
1766 | private pattern mustInRelationeGenericSuperTypes_reference_EClass( | ||
1767 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1768 | source: DefinedElement, target:DefinedElement) | ||
1769 | { | ||
1770 | find interpretation(problem,interpretation); | ||
1771 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1772 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass"); | ||
1773 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1774 | BinaryElementRelationLink.param1(link,source); | ||
1775 | BinaryElementRelationLink.param2(link,target); | ||
1776 | } | ||
1777 | /** | ||
1778 | * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target) | ||
1779 | */ | ||
1780 | private pattern mayInRelationeGenericSuperTypes_reference_EClass( | ||
1781 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1782 | source: DefinedElement, target:DefinedElement) | ||
1783 | { | ||
1784 | find interpretation(problem,interpretation); | ||
1785 | // The two endpoint of the link have to exist | ||
1786 | find mayExist(problem, interpretation, source); | ||
1787 | find mayExist(problem, interpretation, target); | ||
1788 | // Type consistency | ||
1789 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1790 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
1791 | // The reference is containment, then a new reference cannot be create if: | ||
1792 | // 1. Multiple parents | ||
1793 | neg find mustContains4(problem,interpretation,_,target); | ||
1794 | // 2. Circle in the containment hierarchy | ||
1795 | neg find mustTransitiveContains(source,target); | ||
1796 | } or { | ||
1797 | find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
1798 | } | ||
1799 | /** | ||
1800 | * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target) | ||
1801 | */ | ||
1802 | private pattern mustInRelationeAllGenericSuperTypes_reference_EClass( | ||
1803 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1804 | source: DefinedElement, target:DefinedElement) | ||
1805 | { | ||
1806 | find interpretation(problem,interpretation); | ||
1807 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1808 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
1809 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1810 | BinaryElementRelationLink.param1(link,source); | ||
1811 | BinaryElementRelationLink.param2(link,target); | ||
1812 | } | ||
1813 | /** | ||
1814 | * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target) | ||
1815 | */ | ||
1816 | private pattern mayInRelationeAllGenericSuperTypes_reference_EClass( | ||
1817 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1818 | source: DefinedElement, target:DefinedElement) | ||
1819 | { | ||
1820 | find interpretation(problem,interpretation); | ||
1821 | // The two endpoint of the link have to exist | ||
1822 | find mayExist(problem, interpretation, source); | ||
1823 | find mayExist(problem, interpretation, target); | ||
1824 | // Type consistency | ||
1825 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
1826 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
1827 | } or { | ||
1828 | find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
1829 | } | ||
1830 | /** | ||
1831 | * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) | ||
1832 | */ | ||
1833 | private pattern mustInRelationePackage_reference_EClassifier( | ||
1834 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1835 | source: DefinedElement, target:DefinedElement) | ||
1836 | { | ||
1837 | find interpretation(problem,interpretation); | ||
1838 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1839 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); | ||
1840 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1841 | BinaryElementRelationLink.param1(link,source); | ||
1842 | BinaryElementRelationLink.param2(link,target); | ||
1843 | } | ||
1844 | /** | ||
1845 | * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) | ||
1846 | */ | ||
1847 | private pattern mayInRelationePackage_reference_EClassifier( | ||
1848 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1849 | source: DefinedElement, target:DefinedElement) | ||
1850 | { | ||
1851 | find interpretation(problem,interpretation); | ||
1852 | // The two endpoint of the link have to exist | ||
1853 | find mayExist(problem, interpretation, source); | ||
1854 | find mayExist(problem, interpretation, target); | ||
1855 | // Type consistency | ||
1856 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
1857 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
1858 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1859 | // the upper bound of the multiplicity should be considered. | ||
1860 | numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); | ||
1861 | check(numberOfExistingReferences < 1); | ||
1862 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
1863 | // 1. Multiple parents | ||
1864 | neg find mustContains4(problem,interpretation,source,_); | ||
1865 | // 2. Circle in the containment hierarchy | ||
1866 | neg find mustTransitiveContains(source,target); | ||
1867 | } or { | ||
1868 | find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); | ||
1869 | } | ||
1870 | /** | ||
1871 | * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) | ||
1872 | */ | ||
1873 | private pattern mustInRelationeTypeParameters_reference_EClassifier( | ||
1874 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1875 | source: DefinedElement, target:DefinedElement) | ||
1876 | { | ||
1877 | find interpretation(problem,interpretation); | ||
1878 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1879 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); | ||
1880 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1881 | BinaryElementRelationLink.param1(link,source); | ||
1882 | BinaryElementRelationLink.param2(link,target); | ||
1883 | } | ||
1884 | /** | ||
1885 | * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) | ||
1886 | */ | ||
1887 | private pattern mayInRelationeTypeParameters_reference_EClassifier( | ||
1888 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1889 | source: DefinedElement, target:DefinedElement) | ||
1890 | { | ||
1891 | find interpretation(problem,interpretation); | ||
1892 | // The two endpoint of the link have to exist | ||
1893 | find mayExist(problem, interpretation, source); | ||
1894 | find mayExist(problem, interpretation, target); | ||
1895 | // Type consistency | ||
1896 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
1897 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
1898 | // The reference is containment, then a new reference cannot be create if: | ||
1899 | // 1. Multiple parents | ||
1900 | neg find mustContains4(problem,interpretation,_,target); | ||
1901 | // 2. Circle in the containment hierarchy | ||
1902 | neg find mustTransitiveContains(source,target); | ||
1903 | } or { | ||
1904 | find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); | ||
1905 | } | ||
1906 | /** | ||
1907 | * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) | ||
1908 | */ | ||
1909 | private pattern mustInRelationeLiterals_reference_EEnum( | ||
1910 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1911 | source: DefinedElement, target:DefinedElement) | ||
1912 | { | ||
1913 | find interpretation(problem,interpretation); | ||
1914 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1915 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); | ||
1916 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1917 | BinaryElementRelationLink.param1(link,source); | ||
1918 | BinaryElementRelationLink.param2(link,target); | ||
1919 | } | ||
1920 | /** | ||
1921 | * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) | ||
1922 | */ | ||
1923 | private pattern mayInRelationeLiterals_reference_EEnum( | ||
1924 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1925 | source: DefinedElement, target:DefinedElement) | ||
1926 | { | ||
1927 | find interpretation(problem,interpretation); | ||
1928 | // The two endpoint of the link have to exist | ||
1929 | find mayExist(problem, interpretation, source); | ||
1930 | find mayExist(problem, interpretation, target); | ||
1931 | // Type consistency | ||
1932 | find mayInstanceOfEEnum_class(problem,interpretation,source); | ||
1933 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); | ||
1934 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
1935 | // the upper bound of the opposite reference multiplicity should be considered. | ||
1936 | numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); | ||
1937 | check(numberOfExistingOppositeReferences < 1); | ||
1938 | // The reference is containment, then a new reference cannot be create if: | ||
1939 | // 1. Multiple parents | ||
1940 | neg find mustContains4(problem,interpretation,_,target); | ||
1941 | // 2. Circle in the containment hierarchy | ||
1942 | neg find mustTransitiveContains(source,target); | ||
1943 | } or { | ||
1944 | find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); | ||
1945 | } | ||
1946 | /** | ||
1947 | * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) | ||
1948 | */ | ||
1949 | private pattern mustInRelationeEnum_reference_EEnumLiteral( | ||
1950 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1951 | source: DefinedElement, target:DefinedElement) | ||
1952 | { | ||
1953 | find interpretation(problem,interpretation); | ||
1954 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1955 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); | ||
1956 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1957 | BinaryElementRelationLink.param1(link,source); | ||
1958 | BinaryElementRelationLink.param2(link,target); | ||
1959 | } | ||
1960 | /** | ||
1961 | * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) | ||
1962 | */ | ||
1963 | private pattern mayInRelationeEnum_reference_EEnumLiteral( | ||
1964 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1965 | source: DefinedElement, target:DefinedElement) | ||
1966 | { | ||
1967 | find interpretation(problem,interpretation); | ||
1968 | // The two endpoint of the link have to exist | ||
1969 | find mayExist(problem, interpretation, source); | ||
1970 | find mayExist(problem, interpretation, target); | ||
1971 | // Type consistency | ||
1972 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
1973 | find mayInstanceOfEEnum_class(problem,interpretation,target); | ||
1974 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1975 | // the upper bound of the multiplicity should be considered. | ||
1976 | numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); | ||
1977 | check(numberOfExistingReferences < 1); | ||
1978 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
1979 | // 1. Multiple parents | ||
1980 | neg find mustContains4(problem,interpretation,source,_); | ||
1981 | // 2. Circle in the containment hierarchy | ||
1982 | neg find mustTransitiveContains(source,target); | ||
1983 | } or { | ||
1984 | find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); | ||
1985 | } | ||
1986 | /** | ||
1987 | * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) | ||
1988 | */ | ||
1989 | private pattern mustInRelationeAnnotations_reference_EModelElement( | ||
1990 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1991 | source: DefinedElement, target:DefinedElement) | ||
1992 | { | ||
1993 | find interpretation(problem,interpretation); | ||
1994 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1995 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); | ||
1996 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1997 | BinaryElementRelationLink.param1(link,source); | ||
1998 | BinaryElementRelationLink.param2(link,target); | ||
1999 | } | ||
2000 | /** | ||
2001 | * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) | ||
2002 | */ | ||
2003 | private pattern mayInRelationeAnnotations_reference_EModelElement( | ||
2004 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2005 | source: DefinedElement, target:DefinedElement) | ||
2006 | { | ||
2007 | find interpretation(problem,interpretation); | ||
2008 | // The two endpoint of the link have to exist | ||
2009 | find mayExist(problem, interpretation, source); | ||
2010 | find mayExist(problem, interpretation, target); | ||
2011 | // Type consistency | ||
2012 | find mayInstanceOfEModelElement_class(problem,interpretation,source); | ||
2013 | find mayInstanceOfEAnnotation_class(problem,interpretation,target); | ||
2014 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
2015 | // the upper bound of the opposite reference multiplicity should be considered. | ||
2016 | numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); | ||
2017 | check(numberOfExistingOppositeReferences < 1); | ||
2018 | // The reference is containment, then a new reference cannot be create if: | ||
2019 | // 1. Multiple parents | ||
2020 | neg find mustContains4(problem,interpretation,_,target); | ||
2021 | // 2. Circle in the containment hierarchy | ||
2022 | neg find mustTransitiveContains(source,target); | ||
2023 | } or { | ||
2024 | find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); | ||
2025 | } | ||
2026 | /** | ||
2027 | * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) | ||
2028 | */ | ||
2029 | private pattern mustInRelationeContainingClass_reference_EOperation( | ||
2030 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2031 | source: DefinedElement, target:DefinedElement) | ||
2032 | { | ||
2033 | find interpretation(problem,interpretation); | ||
2034 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2035 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); | ||
2036 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2037 | BinaryElementRelationLink.param1(link,source); | ||
2038 | BinaryElementRelationLink.param2(link,target); | ||
2039 | } | ||
2040 | /** | ||
2041 | * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) | ||
2042 | */ | ||
2043 | private pattern mayInRelationeContainingClass_reference_EOperation( | ||
2044 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2045 | source: DefinedElement, target:DefinedElement) | ||
2046 | { | ||
2047 | find interpretation(problem,interpretation); | ||
2048 | // The two endpoint of the link have to exist | ||
2049 | find mayExist(problem, interpretation, source); | ||
2050 | find mayExist(problem, interpretation, target); | ||
2051 | // Type consistency | ||
2052 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
2053 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
2054 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2055 | // the upper bound of the multiplicity should be considered. | ||
2056 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); | ||
2057 | check(numberOfExistingReferences < 1); | ||
2058 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
2059 | // 1. Multiple parents | ||
2060 | neg find mustContains4(problem,interpretation,source,_); | ||
2061 | // 2. Circle in the containment hierarchy | ||
2062 | neg find mustTransitiveContains(source,target); | ||
2063 | } or { | ||
2064 | find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); | ||
2065 | } | ||
2066 | /** | ||
2067 | * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) | ||
2068 | */ | ||
2069 | private pattern mustInRelationeTypeParameters_reference_EOperation( | ||
2070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2071 | source: DefinedElement, target:DefinedElement) | ||
2072 | { | ||
2073 | find interpretation(problem,interpretation); | ||
2074 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2075 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); | ||
2076 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2077 | BinaryElementRelationLink.param1(link,source); | ||
2078 | BinaryElementRelationLink.param2(link,target); | ||
2079 | } | ||
2080 | /** | ||
2081 | * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) | ||
2082 | */ | ||
2083 | private pattern mayInRelationeTypeParameters_reference_EOperation( | ||
2084 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2085 | source: DefinedElement, target:DefinedElement) | ||
2086 | { | ||
2087 | find interpretation(problem,interpretation); | ||
2088 | // The two endpoint of the link have to exist | ||
2089 | find mayExist(problem, interpretation, source); | ||
2090 | find mayExist(problem, interpretation, target); | ||
2091 | // Type consistency | ||
2092 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
2093 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
2094 | // The reference is containment, then a new reference cannot be create if: | ||
2095 | // 1. Multiple parents | ||
2096 | neg find mustContains4(problem,interpretation,_,target); | ||
2097 | // 2. Circle in the containment hierarchy | ||
2098 | neg find mustTransitiveContains(source,target); | ||
2099 | } or { | ||
2100 | find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); | ||
2101 | } | ||
2102 | /** | ||
2103 | * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) | ||
2104 | */ | ||
2105 | private pattern mustInRelationeParameters_reference_EOperation( | ||
2106 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2107 | source: DefinedElement, target:DefinedElement) | ||
2108 | { | ||
2109 | find interpretation(problem,interpretation); | ||
2110 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2111 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); | ||
2112 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2113 | BinaryElementRelationLink.param1(link,source); | ||
2114 | BinaryElementRelationLink.param2(link,target); | ||
2115 | } | ||
2116 | /** | ||
2117 | * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) | ||
2118 | */ | ||
2119 | private pattern mayInRelationeParameters_reference_EOperation( | ||
2120 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2121 | source: DefinedElement, target:DefinedElement) | ||
2122 | { | ||
2123 | find interpretation(problem,interpretation); | ||
2124 | // The two endpoint of the link have to exist | ||
2125 | find mayExist(problem, interpretation, source); | ||
2126 | find mayExist(problem, interpretation, target); | ||
2127 | // Type consistency | ||
2128 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
2129 | find mayInstanceOfEParameter_class(problem,interpretation,target); | ||
2130 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
2131 | // the upper bound of the opposite reference multiplicity should be considered. | ||
2132 | numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); | ||
2133 | check(numberOfExistingOppositeReferences < 1); | ||
2134 | // The reference is containment, then a new reference cannot be create if: | ||
2135 | // 1. Multiple parents | ||
2136 | neg find mustContains4(problem,interpretation,_,target); | ||
2137 | // 2. Circle in the containment hierarchy | ||
2138 | neg find mustTransitiveContains(source,target); | ||
2139 | } or { | ||
2140 | find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); | ||
2141 | } | ||
2142 | /** | ||
2143 | * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target) | ||
2144 | */ | ||
2145 | private pattern mustInRelationeExceptions_reference_EOperation( | ||
2146 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2147 | source: DefinedElement, target:DefinedElement) | ||
2148 | { | ||
2149 | find interpretation(problem,interpretation); | ||
2150 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2151 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
2152 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2153 | BinaryElementRelationLink.param1(link,source); | ||
2154 | BinaryElementRelationLink.param2(link,target); | ||
2155 | } | ||
2156 | /** | ||
2157 | * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) | ||
2158 | */ | ||
2159 | private pattern mayInRelationeExceptions_reference_EOperation( | ||
2160 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2161 | source: DefinedElement, target:DefinedElement) | ||
2162 | { | ||
2163 | find interpretation(problem,interpretation); | ||
2164 | // The two endpoint of the link have to exist | ||
2165 | find mayExist(problem, interpretation, source); | ||
2166 | find mayExist(problem, interpretation, target); | ||
2167 | // Type consistency | ||
2168 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
2169 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
2170 | } or { | ||
2171 | find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); | ||
2172 | } | ||
2173 | /** | ||
2174 | * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target) | ||
2175 | */ | ||
2176 | private pattern mustInRelationeGenericExceptions_reference_EOperation( | ||
2177 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2178 | source: DefinedElement, target:DefinedElement) | ||
2179 | { | ||
2180 | find interpretation(problem,interpretation); | ||
2181 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2182 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); | ||
2183 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2184 | BinaryElementRelationLink.param1(link,source); | ||
2185 | BinaryElementRelationLink.param2(link,target); | ||
2186 | } | ||
2187 | /** | ||
2188 | * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) | ||
2189 | */ | ||
2190 | private pattern mayInRelationeGenericExceptions_reference_EOperation( | ||
2191 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2192 | source: DefinedElement, target:DefinedElement) | ||
2193 | { | ||
2194 | find interpretation(problem,interpretation); | ||
2195 | // The two endpoint of the link have to exist | ||
2196 | find mayExist(problem, interpretation, source); | ||
2197 | find mayExist(problem, interpretation, target); | ||
2198 | // Type consistency | ||
2199 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
2200 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2201 | // The reference is containment, then a new reference cannot be create if: | ||
2202 | // 1. Multiple parents | ||
2203 | neg find mustContains4(problem,interpretation,_,target); | ||
2204 | // 2. Circle in the containment hierarchy | ||
2205 | neg find mustTransitiveContains(source,target); | ||
2206 | } or { | ||
2207 | find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); | ||
2208 | } | ||
2209 | /** | ||
2210 | * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) | ||
2211 | */ | ||
2212 | private pattern mustInRelationeClassifiers_reference_EPackage( | ||
2213 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2214 | source: DefinedElement, target:DefinedElement) | ||
2215 | { | ||
2216 | find interpretation(problem,interpretation); | ||
2217 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2218 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); | ||
2219 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2220 | BinaryElementRelationLink.param1(link,source); | ||
2221 | BinaryElementRelationLink.param2(link,target); | ||
2222 | } | ||
2223 | /** | ||
2224 | * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) | ||
2225 | */ | ||
2226 | private pattern mayInRelationeClassifiers_reference_EPackage( | ||
2227 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2228 | source: DefinedElement, target:DefinedElement) | ||
2229 | { | ||
2230 | find interpretation(problem,interpretation); | ||
2231 | // The two endpoint of the link have to exist | ||
2232 | find mayExist(problem, interpretation, source); | ||
2233 | find mayExist(problem, interpretation, target); | ||
2234 | // Type consistency | ||
2235 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
2236 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
2237 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
2238 | // the upper bound of the opposite reference multiplicity should be considered. | ||
2239 | numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); | ||
2240 | check(numberOfExistingOppositeReferences < 1); | ||
2241 | // The reference is containment, then a new reference cannot be create if: | ||
2242 | // 1. Multiple parents | ||
2243 | neg find mustContains4(problem,interpretation,_,target); | ||
2244 | // 2. Circle in the containment hierarchy | ||
2245 | neg find mustTransitiveContains(source,target); | ||
2246 | } or { | ||
2247 | find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); | ||
2248 | } | ||
2249 | /** | ||
2250 | * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) | ||
2251 | */ | ||
2252 | private pattern mustInRelationeSubpackages_reference_EPackage( | ||
2253 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2254 | source: DefinedElement, target:DefinedElement) | ||
2255 | { | ||
2256 | find interpretation(problem,interpretation); | ||
2257 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2258 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); | ||
2259 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2260 | BinaryElementRelationLink.param1(link,source); | ||
2261 | BinaryElementRelationLink.param2(link,target); | ||
2262 | } | ||
2263 | /** | ||
2264 | * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) | ||
2265 | */ | ||
2266 | private pattern mayInRelationeSubpackages_reference_EPackage( | ||
2267 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2268 | source: DefinedElement, target:DefinedElement) | ||
2269 | { | ||
2270 | find interpretation(problem,interpretation); | ||
2271 | // The two endpoint of the link have to exist | ||
2272 | find mayExist(problem, interpretation, source); | ||
2273 | find mayExist(problem, interpretation, target); | ||
2274 | // Type consistency | ||
2275 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
2276 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
2277 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
2278 | // the upper bound of the opposite reference multiplicity should be considered. | ||
2279 | numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); | ||
2280 | check(numberOfExistingOppositeReferences < 1); | ||
2281 | // The reference is containment, then a new reference cannot be create if: | ||
2282 | // 1. Multiple parents | ||
2283 | neg find mustContains4(problem,interpretation,_,target); | ||
2284 | // 2. Circle in the containment hierarchy | ||
2285 | neg find mustTransitiveContains(source,target); | ||
2286 | } or { | ||
2287 | find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); | ||
2288 | } | ||
2289 | /** | ||
2290 | * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) | ||
2291 | */ | ||
2292 | private pattern mustInRelationeSuperPackage_reference_EPackage( | ||
2293 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2294 | source: DefinedElement, target:DefinedElement) | ||
2295 | { | ||
2296 | find interpretation(problem,interpretation); | ||
2297 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2298 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); | ||
2299 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2300 | BinaryElementRelationLink.param1(link,source); | ||
2301 | BinaryElementRelationLink.param2(link,target); | ||
2302 | } | ||
2303 | /** | ||
2304 | * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) | ||
2305 | */ | ||
2306 | private pattern mayInRelationeSuperPackage_reference_EPackage( | ||
2307 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2308 | source: DefinedElement, target:DefinedElement) | ||
2309 | { | ||
2310 | find interpretation(problem,interpretation); | ||
2311 | // The two endpoint of the link have to exist | ||
2312 | find mayExist(problem, interpretation, source); | ||
2313 | find mayExist(problem, interpretation, target); | ||
2314 | // Type consistency | ||
2315 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
2316 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
2317 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2318 | // the upper bound of the multiplicity should be considered. | ||
2319 | numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); | ||
2320 | check(numberOfExistingReferences < 1); | ||
2321 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
2322 | // 1. Multiple parents | ||
2323 | neg find mustContains4(problem,interpretation,source,_); | ||
2324 | // 2. Circle in the containment hierarchy | ||
2325 | neg find mustTransitiveContains(source,target); | ||
2326 | } or { | ||
2327 | find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); | ||
2328 | } | ||
2329 | /** | ||
2330 | * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) | ||
2331 | */ | ||
2332 | private pattern mustInRelationeOperation_reference_EParameter( | ||
2333 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2334 | source: DefinedElement, target:DefinedElement) | ||
2335 | { | ||
2336 | find interpretation(problem,interpretation); | ||
2337 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2338 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); | ||
2339 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2340 | BinaryElementRelationLink.param1(link,source); | ||
2341 | BinaryElementRelationLink.param2(link,target); | ||
2342 | } | ||
2343 | /** | ||
2344 | * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) | ||
2345 | */ | ||
2346 | private pattern mayInRelationeOperation_reference_EParameter( | ||
2347 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2348 | source: DefinedElement, target:DefinedElement) | ||
2349 | { | ||
2350 | find interpretation(problem,interpretation); | ||
2351 | // The two endpoint of the link have to exist | ||
2352 | find mayExist(problem, interpretation, source); | ||
2353 | find mayExist(problem, interpretation, target); | ||
2354 | // Type consistency | ||
2355 | find mayInstanceOfEParameter_class(problem,interpretation,source); | ||
2356 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
2357 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2358 | // the upper bound of the multiplicity should be considered. | ||
2359 | numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); | ||
2360 | check(numberOfExistingReferences < 1); | ||
2361 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
2362 | // 1. Multiple parents | ||
2363 | neg find mustContains4(problem,interpretation,source,_); | ||
2364 | // 2. Circle in the containment hierarchy | ||
2365 | neg find mustTransitiveContains(source,target); | ||
2366 | } or { | ||
2367 | find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); | ||
2368 | } | ||
2369 | /** | ||
2370 | * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) | ||
2371 | */ | ||
2372 | private pattern mustInRelationeOpposite_reference_EReference( | ||
2373 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2374 | source: DefinedElement, target:DefinedElement) | ||
2375 | { | ||
2376 | find interpretation(problem,interpretation); | ||
2377 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2378 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
2379 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2380 | BinaryElementRelationLink.param1(link,source); | ||
2381 | BinaryElementRelationLink.param2(link,target); | ||
2382 | } | ||
2383 | /** | ||
2384 | * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target) | ||
2385 | */ | ||
2386 | private pattern mayInRelationeOpposite_reference_EReference( | ||
2387 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2388 | source: DefinedElement, target:DefinedElement) | ||
2389 | { | ||
2390 | find interpretation(problem,interpretation); | ||
2391 | // The two endpoint of the link have to exist | ||
2392 | find mayExist(problem, interpretation, source); | ||
2393 | find mayExist(problem, interpretation, target); | ||
2394 | // Type consistency | ||
2395 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
2396 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
2397 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2398 | // the upper bound of the multiplicity should be considered. | ||
2399 | numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); | ||
2400 | check(numberOfExistingReferences < 1); | ||
2401 | } or { | ||
2402 | find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); | ||
2403 | } | ||
2404 | /** | ||
2405 | * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target) | ||
2406 | */ | ||
2407 | private pattern mustInRelationeReferenceType_reference_EReference( | ||
2408 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2409 | source: DefinedElement, target:DefinedElement) | ||
2410 | { | ||
2411 | find interpretation(problem,interpretation); | ||
2412 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2413 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
2414 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2415 | BinaryElementRelationLink.param1(link,source); | ||
2416 | BinaryElementRelationLink.param2(link,target); | ||
2417 | } | ||
2418 | /** | ||
2419 | * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) | ||
2420 | */ | ||
2421 | private pattern mayInRelationeReferenceType_reference_EReference( | ||
2422 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2423 | source: DefinedElement, target:DefinedElement) | ||
2424 | { | ||
2425 | find interpretation(problem,interpretation); | ||
2426 | // The two endpoint of the link have to exist | ||
2427 | find mayExist(problem, interpretation, source); | ||
2428 | find mayExist(problem, interpretation, target); | ||
2429 | // Type consistency | ||
2430 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
2431 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
2432 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2433 | // the upper bound of the multiplicity should be considered. | ||
2434 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); | ||
2435 | check(numberOfExistingReferences < 1); | ||
2436 | } or { | ||
2437 | find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); | ||
2438 | } | ||
2439 | /** | ||
2440 | * Matcher for detecting tuples t where []eKeys reference EReference(source,target) | ||
2441 | */ | ||
2442 | private pattern mustInRelationeKeys_reference_EReference( | ||
2443 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2444 | source: DefinedElement, target:DefinedElement) | ||
2445 | { | ||
2446 | find interpretation(problem,interpretation); | ||
2447 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2448 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
2449 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2450 | BinaryElementRelationLink.param1(link,source); | ||
2451 | BinaryElementRelationLink.param2(link,target); | ||
2452 | } | ||
2453 | /** | ||
2454 | * Matcher for detecting tuples t where <>eKeys reference EReference(source,target) | ||
2455 | */ | ||
2456 | private pattern mayInRelationeKeys_reference_EReference( | ||
2457 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2458 | source: DefinedElement, target:DefinedElement) | ||
2459 | { | ||
2460 | find interpretation(problem,interpretation); | ||
2461 | // The two endpoint of the link have to exist | ||
2462 | find mayExist(problem, interpretation, source); | ||
2463 | find mayExist(problem, interpretation, target); | ||
2464 | // Type consistency | ||
2465 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
2466 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
2467 | } or { | ||
2468 | find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target); | ||
2469 | } | ||
2470 | /** | ||
2471 | * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) | ||
2472 | */ | ||
2473 | private pattern mustInRelationeContainingClass_reference_EStructuralFeature( | ||
2474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2475 | source: DefinedElement, target:DefinedElement) | ||
2476 | { | ||
2477 | find interpretation(problem,interpretation); | ||
2478 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2479 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); | ||
2480 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2481 | BinaryElementRelationLink.param1(link,source); | ||
2482 | BinaryElementRelationLink.param2(link,target); | ||
2483 | } | ||
2484 | /** | ||
2485 | * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) | ||
2486 | */ | ||
2487 | private pattern mayInRelationeContainingClass_reference_EStructuralFeature( | ||
2488 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2489 | source: DefinedElement, target:DefinedElement) | ||
2490 | { | ||
2491 | find interpretation(problem,interpretation); | ||
2492 | // The two endpoint of the link have to exist | ||
2493 | find mayExist(problem, interpretation, source); | ||
2494 | find mayExist(problem, interpretation, target); | ||
2495 | // Type consistency | ||
2496 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
2497 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
2498 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2499 | // the upper bound of the multiplicity should be considered. | ||
2500 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); | ||
2501 | check(numberOfExistingReferences < 1); | ||
2502 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
2503 | // 1. Multiple parents | ||
2504 | neg find mustContains4(problem,interpretation,source,_); | ||
2505 | // 2. Circle in the containment hierarchy | ||
2506 | neg find mustTransitiveContains(source,target); | ||
2507 | } or { | ||
2508 | find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); | ||
2509 | } | ||
2510 | /** | ||
2511 | * Matcher for detecting tuples t where []eType reference ETypedElement(source,target) | ||
2512 | */ | ||
2513 | private pattern mustInRelationeType_reference_ETypedElement( | ||
2514 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2515 | source: DefinedElement, target:DefinedElement) | ||
2516 | { | ||
2517 | find interpretation(problem,interpretation); | ||
2518 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2519 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
2520 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2521 | BinaryElementRelationLink.param1(link,source); | ||
2522 | BinaryElementRelationLink.param2(link,target); | ||
2523 | } | ||
2524 | /** | ||
2525 | * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target) | ||
2526 | */ | ||
2527 | private pattern mayInRelationeType_reference_ETypedElement( | ||
2528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2529 | source: DefinedElement, target:DefinedElement) | ||
2530 | { | ||
2531 | find interpretation(problem,interpretation); | ||
2532 | // The two endpoint of the link have to exist | ||
2533 | find mayExist(problem, interpretation, source); | ||
2534 | find mayExist(problem, interpretation, target); | ||
2535 | // Type consistency | ||
2536 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
2537 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
2538 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2539 | // the upper bound of the multiplicity should be considered. | ||
2540 | numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); | ||
2541 | check(numberOfExistingReferences < 1); | ||
2542 | } or { | ||
2543 | find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target); | ||
2544 | } | ||
2545 | /** | ||
2546 | * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target) | ||
2547 | */ | ||
2548 | private pattern mustInRelationeGenericType_reference_ETypedElement( | ||
2549 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2550 | source: DefinedElement, target:DefinedElement) | ||
2551 | { | ||
2552 | find interpretation(problem,interpretation); | ||
2553 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2554 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); | ||
2555 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2556 | BinaryElementRelationLink.param1(link,source); | ||
2557 | BinaryElementRelationLink.param2(link,target); | ||
2558 | } | ||
2559 | /** | ||
2560 | * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) | ||
2561 | */ | ||
2562 | private pattern mayInRelationeGenericType_reference_ETypedElement( | ||
2563 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2564 | source: DefinedElement, target:DefinedElement) | ||
2565 | { | ||
2566 | find interpretation(problem,interpretation); | ||
2567 | // The two endpoint of the link have to exist | ||
2568 | find mayExist(problem, interpretation, source); | ||
2569 | find mayExist(problem, interpretation, target); | ||
2570 | // Type consistency | ||
2571 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
2572 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2573 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2574 | // the upper bound of the multiplicity should be considered. | ||
2575 | numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); | ||
2576 | check(numberOfExistingReferences < 1); | ||
2577 | // The reference is containment, then a new reference cannot be create if: | ||
2578 | // 1. Multiple parents | ||
2579 | neg find mustContains4(problem,interpretation,_,target); | ||
2580 | // 2. Circle in the containment hierarchy | ||
2581 | neg find mustTransitiveContains(source,target); | ||
2582 | } or { | ||
2583 | find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); | ||
2584 | } | ||
2585 | /** | ||
2586 | * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target) | ||
2587 | */ | ||
2588 | private pattern mustInRelationeUpperBound_reference_EGenericType( | ||
2589 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2590 | source: DefinedElement, target:DefinedElement) | ||
2591 | { | ||
2592 | find interpretation(problem,interpretation); | ||
2593 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2594 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); | ||
2595 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2596 | BinaryElementRelationLink.param1(link,source); | ||
2597 | BinaryElementRelationLink.param2(link,target); | ||
2598 | } | ||
2599 | /** | ||
2600 | * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target) | ||
2601 | */ | ||
2602 | private pattern mayInRelationeUpperBound_reference_EGenericType( | ||
2603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2604 | source: DefinedElement, target:DefinedElement) | ||
2605 | { | ||
2606 | find interpretation(problem,interpretation); | ||
2607 | // The two endpoint of the link have to exist | ||
2608 | find mayExist(problem, interpretation, source); | ||
2609 | find mayExist(problem, interpretation, target); | ||
2610 | // Type consistency | ||
2611 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2612 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2613 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2614 | // the upper bound of the multiplicity should be considered. | ||
2615 | numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); | ||
2616 | check(numberOfExistingReferences < 1); | ||
2617 | // The reference is containment, then a new reference cannot be create if: | ||
2618 | // 1. Multiple parents | ||
2619 | neg find mustContains4(problem,interpretation,_,target); | ||
2620 | // 2. Circle in the containment hierarchy | ||
2621 | neg find mustTransitiveContains(source,target); | ||
2622 | } or { | ||
2623 | find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); | ||
2624 | } | ||
2625 | /** | ||
2626 | * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) | ||
2627 | */ | ||
2628 | private pattern mustInRelationeTypeArguments_reference_EGenericType( | ||
2629 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2630 | source: DefinedElement, target:DefinedElement) | ||
2631 | { | ||
2632 | find interpretation(problem,interpretation); | ||
2633 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2634 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); | ||
2635 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2636 | BinaryElementRelationLink.param1(link,source); | ||
2637 | BinaryElementRelationLink.param2(link,target); | ||
2638 | } | ||
2639 | /** | ||
2640 | * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) | ||
2641 | */ | ||
2642 | private pattern mayInRelationeTypeArguments_reference_EGenericType( | ||
2643 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2644 | source: DefinedElement, target:DefinedElement) | ||
2645 | { | ||
2646 | find interpretation(problem,interpretation); | ||
2647 | // The two endpoint of the link have to exist | ||
2648 | find mayExist(problem, interpretation, source); | ||
2649 | find mayExist(problem, interpretation, target); | ||
2650 | // Type consistency | ||
2651 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2652 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2653 | // The reference is containment, then a new reference cannot be create if: | ||
2654 | // 1. Multiple parents | ||
2655 | neg find mustContains4(problem,interpretation,_,target); | ||
2656 | // 2. Circle in the containment hierarchy | ||
2657 | neg find mustTransitiveContains(source,target); | ||
2658 | } or { | ||
2659 | find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); | ||
2660 | } | ||
2661 | /** | ||
2662 | * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target) | ||
2663 | */ | ||
2664 | private pattern mustInRelationeRawType_reference_EGenericType( | ||
2665 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2666 | source: DefinedElement, target:DefinedElement) | ||
2667 | { | ||
2668 | find interpretation(problem,interpretation); | ||
2669 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2670 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
2671 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2672 | BinaryElementRelationLink.param1(link,source); | ||
2673 | BinaryElementRelationLink.param2(link,target); | ||
2674 | } | ||
2675 | /** | ||
2676 | * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target) | ||
2677 | */ | ||
2678 | private pattern mayInRelationeRawType_reference_EGenericType( | ||
2679 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2680 | source: DefinedElement, target:DefinedElement) | ||
2681 | { | ||
2682 | find interpretation(problem,interpretation); | ||
2683 | // The two endpoint of the link have to exist | ||
2684 | find mayExist(problem, interpretation, source); | ||
2685 | find mayExist(problem, interpretation, target); | ||
2686 | // Type consistency | ||
2687 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2688 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
2689 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2690 | // the upper bound of the multiplicity should be considered. | ||
2691 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); | ||
2692 | check(numberOfExistingReferences < 1); | ||
2693 | } or { | ||
2694 | find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target); | ||
2695 | } | ||
2696 | /** | ||
2697 | * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) | ||
2698 | */ | ||
2699 | private pattern mustInRelationeLowerBound_reference_EGenericType( | ||
2700 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2701 | source: DefinedElement, target:DefinedElement) | ||
2702 | { | ||
2703 | find interpretation(problem,interpretation); | ||
2704 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2705 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); | ||
2706 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2707 | BinaryElementRelationLink.param1(link,source); | ||
2708 | BinaryElementRelationLink.param2(link,target); | ||
2709 | } | ||
2710 | /** | ||
2711 | * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) | ||
2712 | */ | ||
2713 | private pattern mayInRelationeLowerBound_reference_EGenericType( | ||
2714 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2715 | source: DefinedElement, target:DefinedElement) | ||
2716 | { | ||
2717 | find interpretation(problem,interpretation); | ||
2718 | // The two endpoint of the link have to exist | ||
2719 | find mayExist(problem, interpretation, source); | ||
2720 | find mayExist(problem, interpretation, target); | ||
2721 | // Type consistency | ||
2722 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2723 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2724 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2725 | // the upper bound of the multiplicity should be considered. | ||
2726 | numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); | ||
2727 | check(numberOfExistingReferences < 1); | ||
2728 | // The reference is containment, then a new reference cannot be create if: | ||
2729 | // 1. Multiple parents | ||
2730 | neg find mustContains4(problem,interpretation,_,target); | ||
2731 | // 2. Circle in the containment hierarchy | ||
2732 | neg find mustTransitiveContains(source,target); | ||
2733 | } or { | ||
2734 | find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); | ||
2735 | } | ||
2736 | /** | ||
2737 | * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target) | ||
2738 | */ | ||
2739 | private pattern mustInRelationeTypeParameter_reference_EGenericType( | ||
2740 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2741 | source: DefinedElement, target:DefinedElement) | ||
2742 | { | ||
2743 | find interpretation(problem,interpretation); | ||
2744 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2745 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
2746 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2747 | BinaryElementRelationLink.param1(link,source); | ||
2748 | BinaryElementRelationLink.param2(link,target); | ||
2749 | } | ||
2750 | /** | ||
2751 | * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) | ||
2752 | */ | ||
2753 | private pattern mayInRelationeTypeParameter_reference_EGenericType( | ||
2754 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2755 | source: DefinedElement, target:DefinedElement) | ||
2756 | { | ||
2757 | find interpretation(problem,interpretation); | ||
2758 | // The two endpoint of the link have to exist | ||
2759 | find mayExist(problem, interpretation, source); | ||
2760 | find mayExist(problem, interpretation, target); | ||
2761 | // Type consistency | ||
2762 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2763 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
2764 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2765 | // the upper bound of the multiplicity should be considered. | ||
2766 | numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_); | ||
2767 | check(numberOfExistingReferences < 1); | ||
2768 | } or { | ||
2769 | find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target); | ||
2770 | } | ||
2771 | /** | ||
2772 | * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) | ||
2773 | */ | ||
2774 | private pattern mustInRelationeClassifier_reference_EGenericType( | ||
2775 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2776 | source: DefinedElement, target:DefinedElement) | ||
2777 | { | ||
2778 | find interpretation(problem,interpretation); | ||
2779 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2780 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
2781 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2782 | BinaryElementRelationLink.param1(link,source); | ||
2783 | BinaryElementRelationLink.param2(link,target); | ||
2784 | } | ||
2785 | /** | ||
2786 | * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) | ||
2787 | */ | ||
2788 | private pattern mayInRelationeClassifier_reference_EGenericType( | ||
2789 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2790 | source: DefinedElement, target:DefinedElement) | ||
2791 | { | ||
2792 | find interpretation(problem,interpretation); | ||
2793 | // The two endpoint of the link have to exist | ||
2794 | find mayExist(problem, interpretation, source); | ||
2795 | find mayExist(problem, interpretation, target); | ||
2796 | // Type consistency | ||
2797 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
2798 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
2799 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2800 | // the upper bound of the multiplicity should be considered. | ||
2801 | numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); | ||
2802 | check(numberOfExistingReferences < 1); | ||
2803 | } or { | ||
2804 | find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); | ||
2805 | } | ||
2806 | /** | ||
2807 | * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) | ||
2808 | */ | ||
2809 | private pattern mustInRelationeBounds_reference_ETypeParameter( | ||
2810 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2811 | source: DefinedElement, target:DefinedElement) | ||
2812 | { | ||
2813 | find interpretation(problem,interpretation); | ||
2814 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2815 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); | ||
2816 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2817 | BinaryElementRelationLink.param1(link,source); | ||
2818 | BinaryElementRelationLink.param2(link,target); | ||
2819 | } | ||
2820 | /** | ||
2821 | * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) | ||
2822 | */ | ||
2823 | private pattern mayInRelationeBounds_reference_ETypeParameter( | ||
2824 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2825 | source: DefinedElement, target:DefinedElement) | ||
2826 | { | ||
2827 | find interpretation(problem,interpretation); | ||
2828 | // The two endpoint of the link have to exist | ||
2829 | find mayExist(problem, interpretation, source); | ||
2830 | find mayExist(problem, interpretation, target); | ||
2831 | // Type consistency | ||
2832 | find mayInstanceOfETypeParameter_class(problem,interpretation,source); | ||
2833 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
2834 | // The reference is containment, then a new reference cannot be create if: | ||
2835 | // 1. Multiple parents | ||
2836 | neg find mustContains4(problem,interpretation,_,target); | ||
2837 | // 2. Circle in the containment hierarchy | ||
2838 | neg find mustTransitiveContains(source,target); | ||
2839 | } or { | ||
2840 | find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); | ||
2841 | } | ||
2842 | /** | ||
2843 | * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) | ||
2844 | */ | ||
2845 | private pattern mustInRelationiD_attribute_EAttribute( | ||
2846 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2847 | source: DefinedElement, target:DefinedElement) | ||
2848 | { | ||
2849 | find interpretation(problem,interpretation); | ||
2850 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2851 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
2852 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2853 | BinaryElementRelationLink.param1(link,source); | ||
2854 | BinaryElementRelationLink.param2(link,target); | ||
2855 | } | ||
2856 | /** | ||
2857 | * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) | ||
2858 | */ | ||
2859 | private pattern mayInRelationiD_attribute_EAttribute( | ||
2860 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2861 | source: DefinedElement, target:DefinedElement) | ||
2862 | { | ||
2863 | find interpretation(problem,interpretation); | ||
2864 | // The two endpoint of the link have to exist | ||
2865 | find mayExist(problem, interpretation, source); | ||
2866 | find mayExist(problem, interpretation, target); | ||
2867 | // Type consistency | ||
2868 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
2869 | BooleanElement(target); | ||
2870 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2871 | // the upper bound of the multiplicity should be considered. | ||
2872 | numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); | ||
2873 | check(numberOfExistingReferences < 1); | ||
2874 | } or { | ||
2875 | find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); | ||
2876 | } | ||
2877 | /** | ||
2878 | * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) | ||
2879 | */ | ||
2880 | private pattern mustInRelationsource_attribute_EAnnotation( | ||
2881 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2882 | source: DefinedElement, target:DefinedElement) | ||
2883 | { | ||
2884 | find interpretation(problem,interpretation); | ||
2885 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2886 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
2887 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2888 | BinaryElementRelationLink.param1(link,source); | ||
2889 | BinaryElementRelationLink.param2(link,target); | ||
2890 | } | ||
2891 | /** | ||
2892 | * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) | ||
2893 | */ | ||
2894 | private pattern mayInRelationsource_attribute_EAnnotation( | ||
2895 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2896 | source: DefinedElement, target:DefinedElement) | ||
2897 | { | ||
2898 | find interpretation(problem,interpretation); | ||
2899 | // The two endpoint of the link have to exist | ||
2900 | find mayExist(problem, interpretation, source); | ||
2901 | find mayExist(problem, interpretation, target); | ||
2902 | // Type consistency | ||
2903 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
2904 | StringElement(target); | ||
2905 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2906 | // the upper bound of the multiplicity should be considered. | ||
2907 | numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); | ||
2908 | check(numberOfExistingReferences < 1); | ||
2909 | } or { | ||
2910 | find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); | ||
2911 | } | ||
2912 | /** | ||
2913 | * Matcher for detecting tuples t where []abstract attribute EClass(source,target) | ||
2914 | */ | ||
2915 | private pattern mustInRelationabstract_attribute_EClass( | ||
2916 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2917 | source: DefinedElement, target:DefinedElement) | ||
2918 | { | ||
2919 | find interpretation(problem,interpretation); | ||
2920 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2921 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
2922 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2923 | BinaryElementRelationLink.param1(link,source); | ||
2924 | BinaryElementRelationLink.param2(link,target); | ||
2925 | } | ||
2926 | /** | ||
2927 | * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) | ||
2928 | */ | ||
2929 | private pattern mayInRelationabstract_attribute_EClass( | ||
2930 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2931 | source: DefinedElement, target:DefinedElement) | ||
2932 | { | ||
2933 | find interpretation(problem,interpretation); | ||
2934 | // The two endpoint of the link have to exist | ||
2935 | find mayExist(problem, interpretation, source); | ||
2936 | find mayExist(problem, interpretation, target); | ||
2937 | // Type consistency | ||
2938 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
2939 | BooleanElement(target); | ||
2940 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2941 | // the upper bound of the multiplicity should be considered. | ||
2942 | numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); | ||
2943 | check(numberOfExistingReferences < 1); | ||
2944 | } or { | ||
2945 | find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); | ||
2946 | } | ||
2947 | /** | ||
2948 | * Matcher for detecting tuples t where []interface attribute EClass(source,target) | ||
2949 | */ | ||
2950 | private pattern mustInRelationinterface_attribute_EClass( | ||
2951 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2952 | source: DefinedElement, target:DefinedElement) | ||
2953 | { | ||
2954 | find interpretation(problem,interpretation); | ||
2955 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2956 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
2957 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2958 | BinaryElementRelationLink.param1(link,source); | ||
2959 | BinaryElementRelationLink.param2(link,target); | ||
2960 | } | ||
2961 | /** | ||
2962 | * Matcher for detecting tuples t where <>interface attribute EClass(source,target) | ||
2963 | */ | ||
2964 | private pattern mayInRelationinterface_attribute_EClass( | ||
2965 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2966 | source: DefinedElement, target:DefinedElement) | ||
2967 | { | ||
2968 | find interpretation(problem,interpretation); | ||
2969 | // The two endpoint of the link have to exist | ||
2970 | find mayExist(problem, interpretation, source); | ||
2971 | find mayExist(problem, interpretation, target); | ||
2972 | // Type consistency | ||
2973 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
2974 | BooleanElement(target); | ||
2975 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
2976 | // the upper bound of the multiplicity should be considered. | ||
2977 | numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); | ||
2978 | check(numberOfExistingReferences < 1); | ||
2979 | } or { | ||
2980 | find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); | ||
2981 | } | ||
2982 | /** | ||
2983 | * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) | ||
2984 | */ | ||
2985 | private pattern mustInRelationinstanceClassName_attribute_EClassifier( | ||
2986 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2987 | source: DefinedElement, target:DefinedElement) | ||
2988 | { | ||
2989 | find interpretation(problem,interpretation); | ||
2990 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2991 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
2992 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
2993 | BinaryElementRelationLink.param1(link,source); | ||
2994 | BinaryElementRelationLink.param2(link,target); | ||
2995 | } | ||
2996 | /** | ||
2997 | * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) | ||
2998 | */ | ||
2999 | private pattern mayInRelationinstanceClassName_attribute_EClassifier( | ||
3000 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3001 | source: DefinedElement, target:DefinedElement) | ||
3002 | { | ||
3003 | find interpretation(problem,interpretation); | ||
3004 | // The two endpoint of the link have to exist | ||
3005 | find mayExist(problem, interpretation, source); | ||
3006 | find mayExist(problem, interpretation, target); | ||
3007 | // Type consistency | ||
3008 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
3009 | StringElement(target); | ||
3010 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3011 | // the upper bound of the multiplicity should be considered. | ||
3012 | numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); | ||
3013 | check(numberOfExistingReferences < 1); | ||
3014 | } or { | ||
3015 | find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); | ||
3016 | } | ||
3017 | /** | ||
3018 | * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) | ||
3019 | */ | ||
3020 | private pattern mustInRelationinstanceTypeName_attribute_EClassifier( | ||
3021 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3022 | source: DefinedElement, target:DefinedElement) | ||
3023 | { | ||
3024 | find interpretation(problem,interpretation); | ||
3025 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3026 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
3027 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3028 | BinaryElementRelationLink.param1(link,source); | ||
3029 | BinaryElementRelationLink.param2(link,target); | ||
3030 | } | ||
3031 | /** | ||
3032 | * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) | ||
3033 | */ | ||
3034 | private pattern mayInRelationinstanceTypeName_attribute_EClassifier( | ||
3035 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3036 | source: DefinedElement, target:DefinedElement) | ||
3037 | { | ||
3038 | find interpretation(problem,interpretation); | ||
3039 | // The two endpoint of the link have to exist | ||
3040 | find mayExist(problem, interpretation, source); | ||
3041 | find mayExist(problem, interpretation, target); | ||
3042 | // Type consistency | ||
3043 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
3044 | StringElement(target); | ||
3045 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3046 | // the upper bound of the multiplicity should be considered. | ||
3047 | numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_); | ||
3048 | check(numberOfExistingReferences < 1); | ||
3049 | } or { | ||
3050 | find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); | ||
3051 | } | ||
3052 | /** | ||
3053 | * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) | ||
3054 | */ | ||
3055 | private pattern mustInRelationserializable_attribute_EDataType( | ||
3056 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3057 | source: DefinedElement, target:DefinedElement) | ||
3058 | { | ||
3059 | find interpretation(problem,interpretation); | ||
3060 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3061 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
3062 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3063 | BinaryElementRelationLink.param1(link,source); | ||
3064 | BinaryElementRelationLink.param2(link,target); | ||
3065 | } | ||
3066 | /** | ||
3067 | * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) | ||
3068 | */ | ||
3069 | private pattern mayInRelationserializable_attribute_EDataType( | ||
3070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3071 | source: DefinedElement, target:DefinedElement) | ||
3072 | { | ||
3073 | find interpretation(problem,interpretation); | ||
3074 | // The two endpoint of the link have to exist | ||
3075 | find mayExist(problem, interpretation, source); | ||
3076 | find mayExist(problem, interpretation, target); | ||
3077 | // Type consistency | ||
3078 | find mayInstanceOfEDataType_class(problem,interpretation,source); | ||
3079 | BooleanElement(target); | ||
3080 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3081 | // the upper bound of the multiplicity should be considered. | ||
3082 | numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); | ||
3083 | check(numberOfExistingReferences < 1); | ||
3084 | } or { | ||
3085 | find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); | ||
3086 | } | ||
3087 | /** | ||
3088 | * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) | ||
3089 | */ | ||
3090 | private pattern mustInRelationvalue_attribute_EEnumLiteral( | ||
3091 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3092 | source: DefinedElement, target:DefinedElement) | ||
3093 | { | ||
3094 | find interpretation(problem,interpretation); | ||
3095 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3096 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
3097 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3098 | BinaryElementRelationLink.param1(link,source); | ||
3099 | BinaryElementRelationLink.param2(link,target); | ||
3100 | } | ||
3101 | /** | ||
3102 | * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) | ||
3103 | */ | ||
3104 | private pattern mayInRelationvalue_attribute_EEnumLiteral( | ||
3105 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3106 | source: DefinedElement, target:DefinedElement) | ||
3107 | { | ||
3108 | find interpretation(problem,interpretation); | ||
3109 | // The two endpoint of the link have to exist | ||
3110 | find mayExist(problem, interpretation, source); | ||
3111 | find mayExist(problem, interpretation, target); | ||
3112 | // Type consistency | ||
3113 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
3114 | IntegerElement(target); | ||
3115 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3116 | // the upper bound of the multiplicity should be considered. | ||
3117 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
3118 | check(numberOfExistingReferences < 1); | ||
3119 | } or { | ||
3120 | find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
3121 | } | ||
3122 | /** | ||
3123 | * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) | ||
3124 | */ | ||
3125 | private pattern mustInRelationliteral_attribute_EEnumLiteral( | ||
3126 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3127 | source: DefinedElement, target:DefinedElement) | ||
3128 | { | ||
3129 | find interpretation(problem,interpretation); | ||
3130 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3131 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
3132 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3133 | BinaryElementRelationLink.param1(link,source); | ||
3134 | BinaryElementRelationLink.param2(link,target); | ||
3135 | } | ||
3136 | /** | ||
3137 | * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) | ||
3138 | */ | ||
3139 | private pattern mayInRelationliteral_attribute_EEnumLiteral( | ||
3140 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3141 | source: DefinedElement, target:DefinedElement) | ||
3142 | { | ||
3143 | find interpretation(problem,interpretation); | ||
3144 | // The two endpoint of the link have to exist | ||
3145 | find mayExist(problem, interpretation, source); | ||
3146 | find mayExist(problem, interpretation, target); | ||
3147 | // Type consistency | ||
3148 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
3149 | StringElement(target); | ||
3150 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3151 | // the upper bound of the multiplicity should be considered. | ||
3152 | numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
3153 | check(numberOfExistingReferences < 1); | ||
3154 | } or { | ||
3155 | find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
3156 | } | ||
3157 | /** | ||
3158 | * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) | ||
3159 | */ | ||
3160 | private pattern mustInRelationname_attribute_ENamedElement( | ||
3161 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3162 | source: DefinedElement, target:DefinedElement) | ||
3163 | { | ||
3164 | find interpretation(problem,interpretation); | ||
3165 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3166 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
3167 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3168 | BinaryElementRelationLink.param1(link,source); | ||
3169 | BinaryElementRelationLink.param2(link,target); | ||
3170 | } | ||
3171 | /** | ||
3172 | * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) | ||
3173 | */ | ||
3174 | private pattern mayInRelationname_attribute_ENamedElement( | ||
3175 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3176 | source: DefinedElement, target:DefinedElement) | ||
3177 | { | ||
3178 | find interpretation(problem,interpretation); | ||
3179 | // The two endpoint of the link have to exist | ||
3180 | find mayExist(problem, interpretation, source); | ||
3181 | find mayExist(problem, interpretation, target); | ||
3182 | // Type consistency | ||
3183 | find mayInstanceOfENamedElement_class(problem,interpretation,source); | ||
3184 | StringElement(target); | ||
3185 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3186 | // the upper bound of the multiplicity should be considered. | ||
3187 | numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); | ||
3188 | check(numberOfExistingReferences < 1); | ||
3189 | } or { | ||
3190 | find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); | ||
3191 | } | ||
3192 | /** | ||
3193 | * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) | ||
3194 | */ | ||
3195 | private pattern mustInRelationnsURI_attribute_EPackage( | ||
3196 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3197 | source: DefinedElement, target:DefinedElement) | ||
3198 | { | ||
3199 | find interpretation(problem,interpretation); | ||
3200 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3201 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
3202 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3203 | BinaryElementRelationLink.param1(link,source); | ||
3204 | BinaryElementRelationLink.param2(link,target); | ||
3205 | } | ||
3206 | /** | ||
3207 | * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) | ||
3208 | */ | ||
3209 | private pattern mayInRelationnsURI_attribute_EPackage( | ||
3210 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3211 | source: DefinedElement, target:DefinedElement) | ||
3212 | { | ||
3213 | find interpretation(problem,interpretation); | ||
3214 | // The two endpoint of the link have to exist | ||
3215 | find mayExist(problem, interpretation, source); | ||
3216 | find mayExist(problem, interpretation, target); | ||
3217 | // Type consistency | ||
3218 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
3219 | StringElement(target); | ||
3220 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3221 | // the upper bound of the multiplicity should be considered. | ||
3222 | numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); | ||
3223 | check(numberOfExistingReferences < 1); | ||
3224 | } or { | ||
3225 | find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); | ||
3226 | } | ||
3227 | /** | ||
3228 | * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) | ||
3229 | */ | ||
3230 | private pattern mustInRelationnsPrefix_attribute_EPackage( | ||
3231 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3232 | source: DefinedElement, target:DefinedElement) | ||
3233 | { | ||
3234 | find interpretation(problem,interpretation); | ||
3235 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3236 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
3237 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3238 | BinaryElementRelationLink.param1(link,source); | ||
3239 | BinaryElementRelationLink.param2(link,target); | ||
3240 | } | ||
3241 | /** | ||
3242 | * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) | ||
3243 | */ | ||
3244 | private pattern mayInRelationnsPrefix_attribute_EPackage( | ||
3245 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3246 | source: DefinedElement, target:DefinedElement) | ||
3247 | { | ||
3248 | find interpretation(problem,interpretation); | ||
3249 | // The two endpoint of the link have to exist | ||
3250 | find mayExist(problem, interpretation, source); | ||
3251 | find mayExist(problem, interpretation, target); | ||
3252 | // Type consistency | ||
3253 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
3254 | StringElement(target); | ||
3255 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3256 | // the upper bound of the multiplicity should be considered. | ||
3257 | numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); | ||
3258 | check(numberOfExistingReferences < 1); | ||
3259 | } or { | ||
3260 | find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); | ||
3261 | } | ||
3262 | /** | ||
3263 | * Matcher for detecting tuples t where []containment attribute EReference(source,target) | ||
3264 | */ | ||
3265 | private pattern mustInRelationcontainment_attribute_EReference( | ||
3266 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3267 | source: DefinedElement, target:DefinedElement) | ||
3268 | { | ||
3269 | find interpretation(problem,interpretation); | ||
3270 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3271 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
3272 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3273 | BinaryElementRelationLink.param1(link,source); | ||
3274 | BinaryElementRelationLink.param2(link,target); | ||
3275 | } | ||
3276 | /** | ||
3277 | * Matcher for detecting tuples t where <>containment attribute EReference(source,target) | ||
3278 | */ | ||
3279 | private pattern mayInRelationcontainment_attribute_EReference( | ||
3280 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3281 | source: DefinedElement, target:DefinedElement) | ||
3282 | { | ||
3283 | find interpretation(problem,interpretation); | ||
3284 | // The two endpoint of the link have to exist | ||
3285 | find mayExist(problem, interpretation, source); | ||
3286 | find mayExist(problem, interpretation, target); | ||
3287 | // Type consistency | ||
3288 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
3289 | BooleanElement(target); | ||
3290 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3291 | // the upper bound of the multiplicity should be considered. | ||
3292 | numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); | ||
3293 | check(numberOfExistingReferences < 1); | ||
3294 | } or { | ||
3295 | find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); | ||
3296 | } | ||
3297 | /** | ||
3298 | * Matcher for detecting tuples t where []container attribute EReference(source,target) | ||
3299 | */ | ||
3300 | private pattern mustInRelationcontainer_attribute_EReference( | ||
3301 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3302 | source: DefinedElement, target:DefinedElement) | ||
3303 | { | ||
3304 | find interpretation(problem,interpretation); | ||
3305 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3306 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
3307 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3308 | BinaryElementRelationLink.param1(link,source); | ||
3309 | BinaryElementRelationLink.param2(link,target); | ||
3310 | } | ||
3311 | /** | ||
3312 | * Matcher for detecting tuples t where <>container attribute EReference(source,target) | ||
3313 | */ | ||
3314 | private pattern mayInRelationcontainer_attribute_EReference( | ||
3315 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3316 | source: DefinedElement, target:DefinedElement) | ||
3317 | { | ||
3318 | find interpretation(problem,interpretation); | ||
3319 | // The two endpoint of the link have to exist | ||
3320 | find mayExist(problem, interpretation, source); | ||
3321 | find mayExist(problem, interpretation, target); | ||
3322 | // Type consistency | ||
3323 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
3324 | BooleanElement(target); | ||
3325 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3326 | // the upper bound of the multiplicity should be considered. | ||
3327 | numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); | ||
3328 | check(numberOfExistingReferences < 1); | ||
3329 | } or { | ||
3330 | find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); | ||
3331 | } | ||
3332 | /** | ||
3333 | * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) | ||
3334 | */ | ||
3335 | private pattern mustInRelationresolveProxies_attribute_EReference( | ||
3336 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3337 | source: DefinedElement, target:DefinedElement) | ||
3338 | { | ||
3339 | find interpretation(problem,interpretation); | ||
3340 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3341 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
3342 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3343 | BinaryElementRelationLink.param1(link,source); | ||
3344 | BinaryElementRelationLink.param2(link,target); | ||
3345 | } | ||
3346 | /** | ||
3347 | * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) | ||
3348 | */ | ||
3349 | private pattern mayInRelationresolveProxies_attribute_EReference( | ||
3350 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3351 | source: DefinedElement, target:DefinedElement) | ||
3352 | { | ||
3353 | find interpretation(problem,interpretation); | ||
3354 | // The two endpoint of the link have to exist | ||
3355 | find mayExist(problem, interpretation, source); | ||
3356 | find mayExist(problem, interpretation, target); | ||
3357 | // Type consistency | ||
3358 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
3359 | BooleanElement(target); | ||
3360 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3361 | // the upper bound of the multiplicity should be considered. | ||
3362 | numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); | ||
3363 | check(numberOfExistingReferences < 1); | ||
3364 | } or { | ||
3365 | find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); | ||
3366 | } | ||
3367 | /** | ||
3368 | * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) | ||
3369 | */ | ||
3370 | private pattern mustInRelationchangeable_attribute_EStructuralFeature( | ||
3371 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3372 | source: DefinedElement, target:DefinedElement) | ||
3373 | { | ||
3374 | find interpretation(problem,interpretation); | ||
3375 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3376 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
3377 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3378 | BinaryElementRelationLink.param1(link,source); | ||
3379 | BinaryElementRelationLink.param2(link,target); | ||
3380 | } | ||
3381 | /** | ||
3382 | * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) | ||
3383 | */ | ||
3384 | private pattern mayInRelationchangeable_attribute_EStructuralFeature( | ||
3385 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3386 | source: DefinedElement, target:DefinedElement) | ||
3387 | { | ||
3388 | find interpretation(problem,interpretation); | ||
3389 | // The two endpoint of the link have to exist | ||
3390 | find mayExist(problem, interpretation, source); | ||
3391 | find mayExist(problem, interpretation, target); | ||
3392 | // Type consistency | ||
3393 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3394 | BooleanElement(target); | ||
3395 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3396 | // the upper bound of the multiplicity should be considered. | ||
3397 | numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3398 | check(numberOfExistingReferences < 1); | ||
3399 | } or { | ||
3400 | find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3401 | } | ||
3402 | /** | ||
3403 | * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) | ||
3404 | */ | ||
3405 | private pattern mustInRelationvolatile_attribute_EStructuralFeature( | ||
3406 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3407 | source: DefinedElement, target:DefinedElement) | ||
3408 | { | ||
3409 | find interpretation(problem,interpretation); | ||
3410 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3411 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
3412 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3413 | BinaryElementRelationLink.param1(link,source); | ||
3414 | BinaryElementRelationLink.param2(link,target); | ||
3415 | } | ||
3416 | /** | ||
3417 | * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) | ||
3418 | */ | ||
3419 | private pattern mayInRelationvolatile_attribute_EStructuralFeature( | ||
3420 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3421 | source: DefinedElement, target:DefinedElement) | ||
3422 | { | ||
3423 | find interpretation(problem,interpretation); | ||
3424 | // The two endpoint of the link have to exist | ||
3425 | find mayExist(problem, interpretation, source); | ||
3426 | find mayExist(problem, interpretation, target); | ||
3427 | // Type consistency | ||
3428 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3429 | BooleanElement(target); | ||
3430 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3431 | // the upper bound of the multiplicity should be considered. | ||
3432 | numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3433 | check(numberOfExistingReferences < 1); | ||
3434 | } or { | ||
3435 | find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3436 | } | ||
3437 | /** | ||
3438 | * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) | ||
3439 | */ | ||
3440 | private pattern mustInRelationtransient_attribute_EStructuralFeature( | ||
3441 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3442 | source: DefinedElement, target:DefinedElement) | ||
3443 | { | ||
3444 | find interpretation(problem,interpretation); | ||
3445 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3446 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
3447 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3448 | BinaryElementRelationLink.param1(link,source); | ||
3449 | BinaryElementRelationLink.param2(link,target); | ||
3450 | } | ||
3451 | /** | ||
3452 | * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) | ||
3453 | */ | ||
3454 | private pattern mayInRelationtransient_attribute_EStructuralFeature( | ||
3455 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3456 | source: DefinedElement, target:DefinedElement) | ||
3457 | { | ||
3458 | find interpretation(problem,interpretation); | ||
3459 | // The two endpoint of the link have to exist | ||
3460 | find mayExist(problem, interpretation, source); | ||
3461 | find mayExist(problem, interpretation, target); | ||
3462 | // Type consistency | ||
3463 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3464 | BooleanElement(target); | ||
3465 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3466 | // the upper bound of the multiplicity should be considered. | ||
3467 | numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3468 | check(numberOfExistingReferences < 1); | ||
3469 | } or { | ||
3470 | find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3471 | } | ||
3472 | /** | ||
3473 | * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) | ||
3474 | */ | ||
3475 | private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
3476 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3477 | source: DefinedElement, target:DefinedElement) | ||
3478 | { | ||
3479 | find interpretation(problem,interpretation); | ||
3480 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3481 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
3482 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3483 | BinaryElementRelationLink.param1(link,source); | ||
3484 | BinaryElementRelationLink.param2(link,target); | ||
3485 | } | ||
3486 | /** | ||
3487 | * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) | ||
3488 | */ | ||
3489 | private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
3490 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3491 | source: DefinedElement, target:DefinedElement) | ||
3492 | { | ||
3493 | find interpretation(problem,interpretation); | ||
3494 | // The two endpoint of the link have to exist | ||
3495 | find mayExist(problem, interpretation, source); | ||
3496 | find mayExist(problem, interpretation, target); | ||
3497 | // Type consistency | ||
3498 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3499 | StringElement(target); | ||
3500 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3501 | // the upper bound of the multiplicity should be considered. | ||
3502 | numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3503 | check(numberOfExistingReferences < 1); | ||
3504 | } or { | ||
3505 | find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3506 | } | ||
3507 | /** | ||
3508 | * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) | ||
3509 | */ | ||
3510 | private pattern mustInRelationunsettable_attribute_EStructuralFeature( | ||
3511 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3512 | source: DefinedElement, target:DefinedElement) | ||
3513 | { | ||
3514 | find interpretation(problem,interpretation); | ||
3515 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3516 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
3517 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3518 | BinaryElementRelationLink.param1(link,source); | ||
3519 | BinaryElementRelationLink.param2(link,target); | ||
3520 | } | ||
3521 | /** | ||
3522 | * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) | ||
3523 | */ | ||
3524 | private pattern mayInRelationunsettable_attribute_EStructuralFeature( | ||
3525 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3526 | source: DefinedElement, target:DefinedElement) | ||
3527 | { | ||
3528 | find interpretation(problem,interpretation); | ||
3529 | // The two endpoint of the link have to exist | ||
3530 | find mayExist(problem, interpretation, source); | ||
3531 | find mayExist(problem, interpretation, target); | ||
3532 | // Type consistency | ||
3533 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3534 | BooleanElement(target); | ||
3535 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3536 | // the upper bound of the multiplicity should be considered. | ||
3537 | numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3538 | check(numberOfExistingReferences < 1); | ||
3539 | } or { | ||
3540 | find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3541 | } | ||
3542 | /** | ||
3543 | * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) | ||
3544 | */ | ||
3545 | private pattern mustInRelationderived_attribute_EStructuralFeature( | ||
3546 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3547 | source: DefinedElement, target:DefinedElement) | ||
3548 | { | ||
3549 | find interpretation(problem,interpretation); | ||
3550 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3551 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
3552 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3553 | BinaryElementRelationLink.param1(link,source); | ||
3554 | BinaryElementRelationLink.param2(link,target); | ||
3555 | } | ||
3556 | /** | ||
3557 | * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) | ||
3558 | */ | ||
3559 | private pattern mayInRelationderived_attribute_EStructuralFeature( | ||
3560 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3561 | source: DefinedElement, target:DefinedElement) | ||
3562 | { | ||
3563 | find interpretation(problem,interpretation); | ||
3564 | // The two endpoint of the link have to exist | ||
3565 | find mayExist(problem, interpretation, source); | ||
3566 | find mayExist(problem, interpretation, target); | ||
3567 | // Type consistency | ||
3568 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
3569 | BooleanElement(target); | ||
3570 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3571 | // the upper bound of the multiplicity should be considered. | ||
3572 | numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
3573 | check(numberOfExistingReferences < 1); | ||
3574 | } or { | ||
3575 | find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
3576 | } | ||
3577 | /** | ||
3578 | * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) | ||
3579 | */ | ||
3580 | private pattern mustInRelationordered_attribute_ETypedElement( | ||
3581 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3582 | source: DefinedElement, target:DefinedElement) | ||
3583 | { | ||
3584 | find interpretation(problem,interpretation); | ||
3585 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3586 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
3587 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3588 | BinaryElementRelationLink.param1(link,source); | ||
3589 | BinaryElementRelationLink.param2(link,target); | ||
3590 | } | ||
3591 | /** | ||
3592 | * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) | ||
3593 | */ | ||
3594 | private pattern mayInRelationordered_attribute_ETypedElement( | ||
3595 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3596 | source: DefinedElement, target:DefinedElement) | ||
3597 | { | ||
3598 | find interpretation(problem,interpretation); | ||
3599 | // The two endpoint of the link have to exist | ||
3600 | find mayExist(problem, interpretation, source); | ||
3601 | find mayExist(problem, interpretation, target); | ||
3602 | // Type consistency | ||
3603 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3604 | BooleanElement(target); | ||
3605 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3606 | // the upper bound of the multiplicity should be considered. | ||
3607 | numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); | ||
3608 | check(numberOfExistingReferences < 1); | ||
3609 | } or { | ||
3610 | find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); | ||
3611 | } | ||
3612 | /** | ||
3613 | * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) | ||
3614 | */ | ||
3615 | private pattern mustInRelationunique_attribute_ETypedElement( | ||
3616 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3617 | source: DefinedElement, target:DefinedElement) | ||
3618 | { | ||
3619 | find interpretation(problem,interpretation); | ||
3620 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3621 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
3622 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3623 | BinaryElementRelationLink.param1(link,source); | ||
3624 | BinaryElementRelationLink.param2(link,target); | ||
3625 | } | ||
3626 | /** | ||
3627 | * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) | ||
3628 | */ | ||
3629 | private pattern mayInRelationunique_attribute_ETypedElement( | ||
3630 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3631 | source: DefinedElement, target:DefinedElement) | ||
3632 | { | ||
3633 | find interpretation(problem,interpretation); | ||
3634 | // The two endpoint of the link have to exist | ||
3635 | find mayExist(problem, interpretation, source); | ||
3636 | find mayExist(problem, interpretation, target); | ||
3637 | // Type consistency | ||
3638 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3639 | BooleanElement(target); | ||
3640 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3641 | // the upper bound of the multiplicity should be considered. | ||
3642 | numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); | ||
3643 | check(numberOfExistingReferences < 1); | ||
3644 | } or { | ||
3645 | find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); | ||
3646 | } | ||
3647 | /** | ||
3648 | * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) | ||
3649 | */ | ||
3650 | private pattern mustInRelationlowerBound_attribute_ETypedElement( | ||
3651 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3652 | source: DefinedElement, target:DefinedElement) | ||
3653 | { | ||
3654 | find interpretation(problem,interpretation); | ||
3655 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3656 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
3657 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3658 | BinaryElementRelationLink.param1(link,source); | ||
3659 | BinaryElementRelationLink.param2(link,target); | ||
3660 | } | ||
3661 | /** | ||
3662 | * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) | ||
3663 | */ | ||
3664 | private pattern mayInRelationlowerBound_attribute_ETypedElement( | ||
3665 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3666 | source: DefinedElement, target:DefinedElement) | ||
3667 | { | ||
3668 | find interpretation(problem,interpretation); | ||
3669 | // The two endpoint of the link have to exist | ||
3670 | find mayExist(problem, interpretation, source); | ||
3671 | find mayExist(problem, interpretation, target); | ||
3672 | // Type consistency | ||
3673 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3674 | IntegerElement(target); | ||
3675 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3676 | // the upper bound of the multiplicity should be considered. | ||
3677 | numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
3678 | check(numberOfExistingReferences < 1); | ||
3679 | } or { | ||
3680 | find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
3681 | } | ||
3682 | /** | ||
3683 | * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) | ||
3684 | */ | ||
3685 | private pattern mustInRelationupperBound_attribute_ETypedElement( | ||
3686 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3687 | source: DefinedElement, target:DefinedElement) | ||
3688 | { | ||
3689 | find interpretation(problem,interpretation); | ||
3690 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3691 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
3692 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3693 | BinaryElementRelationLink.param1(link,source); | ||
3694 | BinaryElementRelationLink.param2(link,target); | ||
3695 | } | ||
3696 | /** | ||
3697 | * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) | ||
3698 | */ | ||
3699 | private pattern mayInRelationupperBound_attribute_ETypedElement( | ||
3700 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3701 | source: DefinedElement, target:DefinedElement) | ||
3702 | { | ||
3703 | find interpretation(problem,interpretation); | ||
3704 | // The two endpoint of the link have to exist | ||
3705 | find mayExist(problem, interpretation, source); | ||
3706 | find mayExist(problem, interpretation, target); | ||
3707 | // Type consistency | ||
3708 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3709 | IntegerElement(target); | ||
3710 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3711 | // the upper bound of the multiplicity should be considered. | ||
3712 | numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
3713 | check(numberOfExistingReferences < 1); | ||
3714 | } or { | ||
3715 | find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
3716 | } | ||
3717 | /** | ||
3718 | * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) | ||
3719 | */ | ||
3720 | private pattern mustInRelationmany_attribute_ETypedElement( | ||
3721 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3722 | source: DefinedElement, target:DefinedElement) | ||
3723 | { | ||
3724 | find interpretation(problem,interpretation); | ||
3725 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3726 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
3727 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3728 | BinaryElementRelationLink.param1(link,source); | ||
3729 | BinaryElementRelationLink.param2(link,target); | ||
3730 | } | ||
3731 | /** | ||
3732 | * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) | ||
3733 | */ | ||
3734 | private pattern mayInRelationmany_attribute_ETypedElement( | ||
3735 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3736 | source: DefinedElement, target:DefinedElement) | ||
3737 | { | ||
3738 | find interpretation(problem,interpretation); | ||
3739 | // The two endpoint of the link have to exist | ||
3740 | find mayExist(problem, interpretation, source); | ||
3741 | find mayExist(problem, interpretation, target); | ||
3742 | // Type consistency | ||
3743 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3744 | BooleanElement(target); | ||
3745 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3746 | // the upper bound of the multiplicity should be considered. | ||
3747 | numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); | ||
3748 | check(numberOfExistingReferences < 1); | ||
3749 | } or { | ||
3750 | find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); | ||
3751 | } | ||
3752 | /** | ||
3753 | * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) | ||
3754 | */ | ||
3755 | private pattern mustInRelationrequired_attribute_ETypedElement( | ||
3756 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3757 | source: DefinedElement, target:DefinedElement) | ||
3758 | { | ||
3759 | find interpretation(problem,interpretation); | ||
3760 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3761 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
3762 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3763 | BinaryElementRelationLink.param1(link,source); | ||
3764 | BinaryElementRelationLink.param2(link,target); | ||
3765 | } | ||
3766 | /** | ||
3767 | * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) | ||
3768 | */ | ||
3769 | private pattern mayInRelationrequired_attribute_ETypedElement( | ||
3770 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3771 | source: DefinedElement, target:DefinedElement) | ||
3772 | { | ||
3773 | find interpretation(problem,interpretation); | ||
3774 | // The two endpoint of the link have to exist | ||
3775 | find mayExist(problem, interpretation, source); | ||
3776 | find mayExist(problem, interpretation, target); | ||
3777 | // Type consistency | ||
3778 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
3779 | BooleanElement(target); | ||
3780 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3781 | // the upper bound of the multiplicity should be considered. | ||
3782 | numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); | ||
3783 | check(numberOfExistingReferences < 1); | ||
3784 | } or { | ||
3785 | find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); | ||
3786 | } | ||
3787 | /** | ||
3788 | * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) | ||
3789 | */ | ||
3790 | private pattern mustInRelationkey_attribute_EStringToStringMapEntry( | ||
3791 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3792 | source: DefinedElement, target:DefinedElement) | ||
3793 | { | ||
3794 | find interpretation(problem,interpretation); | ||
3795 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3796 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
3797 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3798 | BinaryElementRelationLink.param1(link,source); | ||
3799 | BinaryElementRelationLink.param2(link,target); | ||
3800 | } | ||
3801 | /** | ||
3802 | * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) | ||
3803 | */ | ||
3804 | private pattern mayInRelationkey_attribute_EStringToStringMapEntry( | ||
3805 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3806 | source: DefinedElement, target:DefinedElement) | ||
3807 | { | ||
3808 | find interpretation(problem,interpretation); | ||
3809 | // The two endpoint of the link have to exist | ||
3810 | find mayExist(problem, interpretation, source); | ||
3811 | find mayExist(problem, interpretation, target); | ||
3812 | // Type consistency | ||
3813 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
3814 | StringElement(target); | ||
3815 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3816 | // the upper bound of the multiplicity should be considered. | ||
3817 | numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
3818 | check(numberOfExistingReferences < 1); | ||
3819 | } or { | ||
3820 | find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
3821 | } | ||
3822 | /** | ||
3823 | * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) | ||
3824 | */ | ||
3825 | private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( | ||
3826 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3827 | source: DefinedElement, target:DefinedElement) | ||
3828 | { | ||
3829 | find interpretation(problem,interpretation); | ||
3830 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3831 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
3832 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
3833 | BinaryElementRelationLink.param1(link,source); | ||
3834 | BinaryElementRelationLink.param2(link,target); | ||
3835 | } | ||
3836 | /** | ||
3837 | * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) | ||
3838 | */ | ||
3839 | private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( | ||
3840 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3841 | source: DefinedElement, target:DefinedElement) | ||
3842 | { | ||
3843 | find interpretation(problem,interpretation); | ||
3844 | // The two endpoint of the link have to exist | ||
3845 | find mayExist(problem, interpretation, source); | ||
3846 | find mayExist(problem, interpretation, target); | ||
3847 | // Type consistency | ||
3848 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
3849 | StringElement(target); | ||
3850 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
3851 | // the upper bound of the multiplicity should be considered. | ||
3852 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
3853 | check(numberOfExistingReferences < 1); | ||
3854 | } or { | ||
3855 | find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
3856 | } | ||
3857 | |||
3858 | ////////// | ||
3859 | // 1.3 Relation Definition Indexers | ||
3860 | ////////// | ||
3861 | |||
3862 | ////////// | ||
3863 | // 1.4 Containment Indexer | ||
3864 | ////////// | ||
3865 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
3866 | find mustContains4(_,_,source,target); | ||
3867 | } | ||
3868 | |||
3869 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3870 | source: DefinedElement, target: DefinedElement) | ||
3871 | { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or | ||
3872 | |||
3873 | { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or | ||
3874 | |||
3875 | { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or | ||
3876 | |||
3877 | { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or | ||
3878 | |||
3879 | { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or | ||
3880 | |||
3881 | { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or | ||
3882 | |||
3883 | { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or | ||
3884 | |||
3885 | { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or | ||
3886 | |||
3887 | { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
3888 | |||
3889 | { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
3890 | |||
3891 | { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or | ||
3892 | |||
3893 | { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or | ||
3894 | |||
3895 | { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or | ||
3896 | |||
3897 | { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or | ||
3898 | |||
3899 | { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
3900 | |||
3901 | { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or | ||
3902 | |||
3903 | { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
3904 | |||
3905 | { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } | ||
3906 | |||
3907 | private pattern mustTransitiveContains(source,target) { | ||
3908 | find mustContains2+(source,target); | ||
3909 | } | ||
3910 | |||
3911 | ////////// | ||
3912 | // 2. Invalidation Indexers | ||
3913 | ////////// | ||
3914 | // 2.1 Invalidated by WF Queries | ||
3915 | ////////// | ||
3916 | |||
3917 | ////////// | ||
3918 | // 3. Unfinishedness Indexers | ||
3919 | ////////// | ||
3920 | // 3.1 Unfinishedness Measured by Multiplicity | ||
3921 | ////////// | ||
3922 | pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
3923 | find interpretation(problem,interpretation); | ||
3924 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3925 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
3926 | find mustInstanceOfEAttribute_class(problem,interpretation,object); | ||
3927 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); | ||
3928 | check(numberOfExistingReferences < 1); | ||
3929 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3930 | } | ||
3931 | pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
3932 | find interpretation(problem,interpretation); | ||
3933 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3934 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
3935 | find mustInstanceOfEReference_class(problem,interpretation,object); | ||
3936 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); | ||
3937 | check(numberOfExistingReferences < 1); | ||
3938 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3939 | } | ||
3940 | pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
3941 | find interpretation(problem,interpretation); | ||
3942 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3943 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
3944 | find mustInstanceOfEGenericType_class(problem,interpretation,object); | ||
3945 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); | ||
3946 | check(numberOfExistingReferences < 1); | ||
3947 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3948 | } | ||
3949 | |||
3950 | ////////// | ||
3951 | // 3.2 Unfinishedness Measured by WF Queries | ||
3952 | ////////// | ||
3953 | |||
3954 | ////////// | ||
3955 | // 4. Refinement Indexers | ||
3956 | ////////// | ||
3957 | // 4.1 Object constructors | ||
3958 | ////////// | ||
3959 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
3960 | { | ||
3961 | find interpretation(problem,interpretation); | ||
3962 | find mustInstanceOfEObject_class(problem,interpretation,root); | ||
3963 | find mustExist(problem, interpretation, root); | ||
3964 | }or{ | ||
3965 | find interpretation(problem,interpretation); | ||
3966 | find mustInstanceOfEGenericType_class(problem,interpretation,root); | ||
3967 | find mustExist(problem, interpretation, root); | ||
3968 | }or{ | ||
3969 | find interpretation(problem,interpretation); | ||
3970 | find mustInstanceOfEClassifier_class(problem,interpretation,root); | ||
3971 | find mustExist(problem, interpretation, root); | ||
3972 | }or{ | ||
3973 | find interpretation(problem,interpretation); | ||
3974 | find mustInstanceOfEPackage_class(problem,interpretation,root); | ||
3975 | find mustExist(problem, interpretation, root); | ||
3976 | }or{ | ||
3977 | find interpretation(problem,interpretation); | ||
3978 | find mustInstanceOfEReference_class(problem,interpretation,root); | ||
3979 | find mustExist(problem, interpretation, root); | ||
3980 | }or{ | ||
3981 | find interpretation(problem,interpretation); | ||
3982 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,root); | ||
3983 | find mustExist(problem, interpretation, root); | ||
3984 | }or{ | ||
3985 | find interpretation(problem,interpretation); | ||
3986 | find mustInstanceOfETypeParameter_class(problem,interpretation,root); | ||
3987 | find mustExist(problem, interpretation, root); | ||
3988 | }or{ | ||
3989 | find interpretation(problem,interpretation); | ||
3990 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,root); | ||
3991 | find mustExist(problem, interpretation, root); | ||
3992 | }or{ | ||
3993 | find interpretation(problem,interpretation); | ||
3994 | find mustInstanceOfEOperation_class(problem,interpretation,root); | ||
3995 | find mustExist(problem, interpretation, root); | ||
3996 | }or{ | ||
3997 | find interpretation(problem,interpretation); | ||
3998 | find mustInstanceOfEAnnotation_class(problem,interpretation,root); | ||
3999 | find mustExist(problem, interpretation, root); | ||
4000 | }or{ | ||
4001 | find interpretation(problem,interpretation); | ||
4002 | find mustInstanceOfEAttribute_class(problem,interpretation,root); | ||
4003 | find mustExist(problem, interpretation, root); | ||
4004 | }or{ | ||
4005 | find interpretation(problem,interpretation); | ||
4006 | find mustInstanceOfEClass_class(problem,interpretation,root); | ||
4007 | find mustExist(problem, interpretation, root); | ||
4008 | }or{ | ||
4009 | find interpretation(problem,interpretation); | ||
4010 | find mustInstanceOfEDataType_class(problem,interpretation,root); | ||
4011 | find mustExist(problem, interpretation, root); | ||
4012 | }or{ | ||
4013 | find interpretation(problem,interpretation); | ||
4014 | find mustInstanceOfEModelElement_class(problem,interpretation,root); | ||
4015 | find mustExist(problem, interpretation, root); | ||
4016 | }or{ | ||
4017 | find interpretation(problem,interpretation); | ||
4018 | find mustInstanceOfETypedElement_class(problem,interpretation,root); | ||
4019 | find mustExist(problem, interpretation, root); | ||
4020 | }or{ | ||
4021 | find interpretation(problem,interpretation); | ||
4022 | find mustInstanceOfENamedElement_class(problem,interpretation,root); | ||
4023 | find mustExist(problem, interpretation, root); | ||
4024 | }or{ | ||
4025 | find interpretation(problem,interpretation); | ||
4026 | find mustInstanceOfEEnum_class(problem,interpretation,root); | ||
4027 | find mustExist(problem, interpretation, root); | ||
4028 | }or{ | ||
4029 | find interpretation(problem,interpretation); | ||
4030 | find mustInstanceOfEParameter_class(problem,interpretation,root); | ||
4031 | find mustExist(problem, interpretation, root); | ||
4032 | }or{ | ||
4033 | find interpretation(problem,interpretation); | ||
4034 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root); | ||
4035 | find mustExist(problem, interpretation, root); | ||
4036 | }or{ | ||
4037 | find interpretation(problem,interpretation); | ||
4038 | find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); | ||
4039 | find mustExist(problem, interpretation, root); | ||
4040 | }or{ | ||
4041 | find interpretation(problem,interpretation); | ||
4042 | find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); | ||
4043 | find mustExist(problem, interpretation, root); | ||
4044 | }or{ | ||
4045 | find interpretation(problem,interpretation); | ||
4046 | find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); | ||
4047 | find mustExist(problem, interpretation, root); | ||
4048 | }or{ | ||
4049 | find interpretation(problem,interpretation); | ||
4050 | find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); | ||
4051 | find mustExist(problem, interpretation, root); | ||
4052 | }or{ | ||
4053 | find interpretation(problem,interpretation); | ||
4054 | find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); | ||
4055 | find mustExist(problem, interpretation, root); | ||
4056 | }or{ | ||
4057 | find interpretation(problem,interpretation); | ||
4058 | find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); | ||
4059 | find mustExist(problem, interpretation, root); | ||
4060 | } | ||
4061 | pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( | ||
4062 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4063 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4064 | container:DefinedElement) | ||
4065 | { | ||
4066 | find interpretation(problem,interpretation); | ||
4067 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4068 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
4069 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4070 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); | ||
4071 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4072 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); | ||
4073 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
4074 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
4075 | find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
4076 | find mustExist(problem, interpretation, container); | ||
4077 | neg find mustExist(problem, interpretation, newObject); | ||
4078 | } | ||
4079 | pattern createObject_EParameter_class( | ||
4080 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4081 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4082 | { | ||
4083 | find interpretation(problem,interpretation); | ||
4084 | neg find hasElementInContainment(problem,interpretation); | ||
4085 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4086 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
4087 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
4088 | find mayExist(problem, interpretation, newObject); | ||
4089 | neg find mustExist(problem, interpretation, newObject); | ||
4090 | } | ||
4091 | pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
4092 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4093 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4094 | container:DefinedElement) | ||
4095 | { | ||
4096 | find interpretation(problem,interpretation); | ||
4097 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4098 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
4099 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4100 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
4101 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4102 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
4103 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
4104 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
4105 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
4106 | find mustExist(problem, interpretation, container); | ||
4107 | neg find mustExist(problem, interpretation, newObject); | ||
4108 | } | ||
4109 | pattern createObject_EDataType_class( | ||
4110 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4111 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4112 | { | ||
4113 | find interpretation(problem,interpretation); | ||
4114 | neg find hasElementInContainment(problem,interpretation); | ||
4115 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4116 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
4117 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
4118 | find mayExist(problem, interpretation, newObject); | ||
4119 | neg find mustExist(problem, interpretation, newObject); | ||
4120 | } | ||
4121 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( | ||
4122 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4123 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4124 | container:DefinedElement) | ||
4125 | { | ||
4126 | find interpretation(problem,interpretation); | ||
4127 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4128 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
4129 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4130 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier"); | ||
4131 | find mustInstanceOfEClassifier_class(problem,interpretation,container); | ||
4132 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
4133 | find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject); | ||
4134 | find mustExist(problem, interpretation, container); | ||
4135 | neg find mustExist(problem, interpretation, newObject); | ||
4136 | } | ||
4137 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation( | ||
4138 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4139 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4140 | container:DefinedElement) | ||
4141 | { | ||
4142 | find interpretation(problem,interpretation); | ||
4143 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4144 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
4145 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4146 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation"); | ||
4147 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
4148 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
4149 | find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
4150 | find mustExist(problem, interpretation, container); | ||
4151 | neg find mustExist(problem, interpretation, newObject); | ||
4152 | } | ||
4153 | pattern createObject_ETypeParameter_class( | ||
4154 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4155 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4156 | { | ||
4157 | find interpretation(problem,interpretation); | ||
4158 | neg find hasElementInContainment(problem,interpretation); | ||
4159 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4160 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
4161 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
4162 | find mayExist(problem, interpretation, newObject); | ||
4163 | neg find mustExist(problem, interpretation, newObject); | ||
4164 | } | ||
4165 | pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( | ||
4166 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4167 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4168 | container:DefinedElement) | ||
4169 | { | ||
4170 | find interpretation(problem,interpretation); | ||
4171 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4172 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
4173 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4174 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); | ||
4175 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4176 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); | ||
4177 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
4178 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
4179 | find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); | ||
4180 | find mustExist(problem, interpretation, container); | ||
4181 | neg find mustExist(problem, interpretation, newObject); | ||
4182 | } | ||
4183 | pattern createObject_EPackage_class_UndefinedPart( | ||
4184 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4185 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4186 | { | ||
4187 | find interpretation(problem,interpretation); | ||
4188 | neg find hasElementInContainment(problem,interpretation); | ||
4189 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4190 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
4191 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
4192 | find mayExist(problem, interpretation, newObject); | ||
4193 | neg find mustExist(problem, interpretation, newObject); | ||
4194 | } | ||
4195 | pattern createObject_EObject_class_by_contents_reference_EAnnotation( | ||
4196 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4197 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4198 | container:DefinedElement) | ||
4199 | { | ||
4200 | find interpretation(problem,interpretation); | ||
4201 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4202 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
4203 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4204 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); | ||
4205 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
4206 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
4207 | find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); | ||
4208 | find mustExist(problem, interpretation, container); | ||
4209 | neg find mustExist(problem, interpretation, newObject); | ||
4210 | } | ||
4211 | pattern createObject_EObject_class( | ||
4212 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4213 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4214 | { | ||
4215 | find interpretation(problem,interpretation); | ||
4216 | neg find hasElementInContainment(problem,interpretation); | ||
4217 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4218 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
4219 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
4220 | find mayExist(problem, interpretation, newObject); | ||
4221 | neg find mustExist(problem, interpretation, newObject); | ||
4222 | } | ||
4223 | pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( | ||
4224 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4225 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4226 | container:DefinedElement) | ||
4227 | { | ||
4228 | find interpretation(problem,interpretation); | ||
4229 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4230 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
4231 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4232 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation"); | ||
4233 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
4234 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
4235 | find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject); | ||
4236 | find mustExist(problem, interpretation, container); | ||
4237 | neg find mustExist(problem, interpretation, newObject); | ||
4238 | } | ||
4239 | pattern createObject_EStringToStringMapEntry_class( | ||
4240 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4241 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4242 | { | ||
4243 | find interpretation(problem,interpretation); | ||
4244 | neg find hasElementInContainment(problem,interpretation); | ||
4245 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4246 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
4247 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
4248 | find mayExist(problem, interpretation, newObject); | ||
4249 | neg find mustExist(problem, interpretation, newObject); | ||
4250 | } | ||
4251 | pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
4252 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4253 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4254 | container:DefinedElement) | ||
4255 | { | ||
4256 | find interpretation(problem,interpretation); | ||
4257 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4258 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
4259 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4260 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
4261 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4262 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
4263 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
4264 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
4265 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
4266 | find mustExist(problem, interpretation, container); | ||
4267 | neg find mustExist(problem, interpretation, newObject); | ||
4268 | } | ||
4269 | pattern createObject_EReference_class( | ||
4270 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4271 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4272 | { | ||
4273 | find interpretation(problem,interpretation); | ||
4274 | neg find hasElementInContainment(problem,interpretation); | ||
4275 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4276 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
4277 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
4278 | find mayExist(problem, interpretation, newObject); | ||
4279 | neg find mustExist(problem, interpretation, newObject); | ||
4280 | } | ||
4281 | pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( | ||
4282 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4283 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4284 | container:DefinedElement) | ||
4285 | { | ||
4286 | find interpretation(problem,interpretation); | ||
4287 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4288 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
4289 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4290 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); | ||
4291 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4292 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); | ||
4293 | find mustInstanceOfEEnum_class(problem,interpretation,container); | ||
4294 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
4295 | find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); | ||
4296 | find mustExist(problem, interpretation, container); | ||
4297 | neg find mustExist(problem, interpretation, newObject); | ||
4298 | } | ||
4299 | pattern createObject_EEnumLiteral_class( | ||
4300 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4301 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4302 | { | ||
4303 | find interpretation(problem,interpretation); | ||
4304 | neg find hasElementInContainment(problem,interpretation); | ||
4305 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4306 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
4307 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
4308 | find mayExist(problem, interpretation, newObject); | ||
4309 | neg find mustExist(problem, interpretation, newObject); | ||
4310 | } | ||
4311 | pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
4312 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4313 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4314 | container:DefinedElement) | ||
4315 | { | ||
4316 | find interpretation(problem,interpretation); | ||
4317 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4318 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
4319 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4320 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
4321 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4322 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
4323 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
4324 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
4325 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
4326 | find mustExist(problem, interpretation, container); | ||
4327 | neg find mustExist(problem, interpretation, newObject); | ||
4328 | } | ||
4329 | pattern createObject_EClass_class( | ||
4330 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4331 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4332 | { | ||
4333 | find interpretation(problem,interpretation); | ||
4334 | neg find hasElementInContainment(problem,interpretation); | ||
4335 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4336 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
4337 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
4338 | find mayExist(problem, interpretation, newObject); | ||
4339 | neg find mustExist(problem, interpretation, newObject); | ||
4340 | } | ||
4341 | pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( | ||
4342 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4343 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4344 | container:DefinedElement) | ||
4345 | { | ||
4346 | find interpretation(problem,interpretation); | ||
4347 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4348 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
4349 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4350 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); | ||
4351 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4352 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); | ||
4353 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
4354 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
4355 | find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); | ||
4356 | find mustExist(problem, interpretation, container); | ||
4357 | neg find mustExist(problem, interpretation, newObject); | ||
4358 | } | ||
4359 | pattern createObject_EOperation_class( | ||
4360 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4361 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4362 | { | ||
4363 | find interpretation(problem,interpretation); | ||
4364 | neg find hasElementInContainment(problem,interpretation); | ||
4365 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4366 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
4367 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
4368 | find mayExist(problem, interpretation, newObject); | ||
4369 | neg find mustExist(problem, interpretation, newObject); | ||
4370 | } | ||
4371 | pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( | ||
4372 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4373 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4374 | container:DefinedElement) | ||
4375 | { | ||
4376 | find interpretation(problem,interpretation); | ||
4377 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4378 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
4379 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4380 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); | ||
4381 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4382 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); | ||
4383 | find mustInstanceOfEModelElement_class(problem,interpretation,container); | ||
4384 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
4385 | find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); | ||
4386 | find mustExist(problem, interpretation, container); | ||
4387 | neg find mustExist(problem, interpretation, newObject); | ||
4388 | } | ||
4389 | pattern createObject_EAnnotation_class( | ||
4390 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4391 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4392 | { | ||
4393 | find interpretation(problem,interpretation); | ||
4394 | neg find hasElementInContainment(problem,interpretation); | ||
4395 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4396 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
4397 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
4398 | find mayExist(problem, interpretation, newObject); | ||
4399 | neg find mustExist(problem, interpretation, newObject); | ||
4400 | } | ||
4401 | pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
4402 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4403 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4404 | container:DefinedElement) | ||
4405 | { | ||
4406 | find interpretation(problem,interpretation); | ||
4407 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4408 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
4409 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4410 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
4411 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4412 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
4413 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
4414 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
4415 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
4416 | find mustExist(problem, interpretation, container); | ||
4417 | neg find mustExist(problem, interpretation, newObject); | ||
4418 | } | ||
4419 | pattern createObject_EAttribute_class( | ||
4420 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4421 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4422 | { | ||
4423 | find interpretation(problem,interpretation); | ||
4424 | neg find hasElementInContainment(problem,interpretation); | ||
4425 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4426 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
4427 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
4428 | find mayExist(problem, interpretation, newObject); | ||
4429 | neg find mustExist(problem, interpretation, newObject); | ||
4430 | } | ||
4431 | pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( | ||
4432 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4433 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4434 | container:DefinedElement) | ||
4435 | { | ||
4436 | find interpretation(problem,interpretation); | ||
4437 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4438 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4439 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4440 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass"); | ||
4441 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
4442 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4443 | find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject); | ||
4444 | find mustExist(problem, interpretation, container); | ||
4445 | neg find mustExist(problem, interpretation, newObject); | ||
4446 | } | ||
4447 | pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation( | ||
4448 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4449 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4450 | container:DefinedElement) | ||
4451 | { | ||
4452 | find interpretation(problem,interpretation); | ||
4453 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4454 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4455 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4456 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); | ||
4457 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
4458 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4459 | find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); | ||
4460 | find mustExist(problem, interpretation, container); | ||
4461 | neg find mustExist(problem, interpretation, newObject); | ||
4462 | } | ||
4463 | pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( | ||
4464 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4465 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4466 | container:DefinedElement) | ||
4467 | { | ||
4468 | find interpretation(problem,interpretation); | ||
4469 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4470 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4471 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4472 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); | ||
4473 | find mustInstanceOfETypedElement_class(problem,interpretation,container); | ||
4474 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4475 | find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); | ||
4476 | find mustExist(problem, interpretation, container); | ||
4477 | neg find mustExist(problem, interpretation, newObject); | ||
4478 | } | ||
4479 | pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( | ||
4480 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4481 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4482 | container:DefinedElement) | ||
4483 | { | ||
4484 | find interpretation(problem,interpretation); | ||
4485 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4486 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4487 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4488 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); | ||
4489 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
4490 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4491 | find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
4492 | find mustExist(problem, interpretation, container); | ||
4493 | neg find mustExist(problem, interpretation, newObject); | ||
4494 | } | ||
4495 | pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( | ||
4496 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4497 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4498 | container:DefinedElement) | ||
4499 | { | ||
4500 | find interpretation(problem,interpretation); | ||
4501 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4502 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4503 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4504 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); | ||
4505 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
4506 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4507 | find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); | ||
4508 | find mustExist(problem, interpretation, container); | ||
4509 | neg find mustExist(problem, interpretation, newObject); | ||
4510 | } | ||
4511 | pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( | ||
4512 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4513 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4514 | container:DefinedElement) | ||
4515 | { | ||
4516 | find interpretation(problem,interpretation); | ||
4517 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4518 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4519 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4520 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); | ||
4521 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
4522 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4523 | find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
4524 | find mustExist(problem, interpretation, container); | ||
4525 | neg find mustExist(problem, interpretation, newObject); | ||
4526 | } | ||
4527 | pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( | ||
4528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4529 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4530 | container:DefinedElement) | ||
4531 | { | ||
4532 | find interpretation(problem,interpretation); | ||
4533 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4534 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4535 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4536 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); | ||
4537 | find mustInstanceOfETypeParameter_class(problem,interpretation,container); | ||
4538 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4539 | find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); | ||
4540 | find mustExist(problem, interpretation, container); | ||
4541 | neg find mustExist(problem, interpretation, newObject); | ||
4542 | } | ||
4543 | pattern createObject_EGenericType_class( | ||
4544 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4545 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4546 | { | ||
4547 | find interpretation(problem,interpretation); | ||
4548 | neg find hasElementInContainment(problem,interpretation); | ||
4549 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4550 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
4551 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
4552 | find mayExist(problem, interpretation, newObject); | ||
4553 | neg find mustExist(problem, interpretation, newObject); | ||
4554 | } | ||
4555 | pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
4556 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4557 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
4558 | container:DefinedElement) | ||
4559 | { | ||
4560 | find interpretation(problem,interpretation); | ||
4561 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4562 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
4563 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
4564 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
4565 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
4566 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
4567 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
4568 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
4569 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
4570 | find mustExist(problem, interpretation, container); | ||
4571 | neg find mustExist(problem, interpretation, newObject); | ||
4572 | } | ||
4573 | pattern createObject_EEnum_class( | ||
4574 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4575 | typeInterpretation:PartialComplexTypeInterpretation) | ||
4576 | { | ||
4577 | find interpretation(problem,interpretation); | ||
4578 | neg find hasElementInContainment(problem,interpretation); | ||
4579 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
4580 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
4581 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
4582 | find mayExist(problem, interpretation, newObject); | ||
4583 | neg find mustExist(problem, interpretation, newObject); | ||
4584 | } | ||
4585 | |||
4586 | ////////// | ||
4587 | // 4.2 Type refinement | ||
4588 | ////////// | ||
4589 | pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4590 | find interpretation(problem,interpretation); | ||
4591 | PartialInterpretation.newElements(interpretation,element); | ||
4592 | find mayInstanceOfEParameter_class(problem,interpretation,element); | ||
4593 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4594 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4595 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
4596 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
4597 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
4598 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4599 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4600 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4601 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4602 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4603 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4604 | } | ||
4605 | pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4606 | find interpretation(problem,interpretation); | ||
4607 | PartialInterpretation.newElements(interpretation,element); | ||
4608 | find mayInstanceOfEDataType_class(problem,interpretation,element); | ||
4609 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4610 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4611 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4612 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
4613 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
4614 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4615 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4616 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4617 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
4618 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4619 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4620 | } | ||
4621 | pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4622 | find interpretation(problem,interpretation); | ||
4623 | PartialInterpretation.newElements(interpretation,element); | ||
4624 | find mayInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4625 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4626 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4627 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4628 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4629 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4630 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4631 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4632 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4633 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4634 | } | ||
4635 | pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4636 | find interpretation(problem,interpretation); | ||
4637 | PartialInterpretation.newElements(interpretation,element); | ||
4638 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
4639 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4640 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4641 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4642 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4643 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4644 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4645 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4646 | neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
4647 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4648 | } | ||
4649 | pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4650 | find interpretation(problem,interpretation); | ||
4651 | PartialInterpretation.newElements(interpretation,element); | ||
4652 | find mayInstanceOfEObject_class(problem,interpretation,element); | ||
4653 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4654 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
4655 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4656 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4657 | } | ||
4658 | pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4659 | find interpretation(problem,interpretation); | ||
4660 | PartialInterpretation.newElements(interpretation,element); | ||
4661 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4662 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4663 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
4664 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4665 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4666 | } | ||
4667 | pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4668 | find interpretation(problem,interpretation); | ||
4669 | PartialInterpretation.newElements(interpretation,element); | ||
4670 | find mayInstanceOfEReference_class(problem,interpretation,element); | ||
4671 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4672 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
4673 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4674 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
4675 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
4676 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4677 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
4678 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4679 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4680 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4681 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4682 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4683 | } | ||
4684 | pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4685 | find interpretation(problem,interpretation); | ||
4686 | PartialInterpretation.newElements(interpretation,element); | ||
4687 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4688 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4689 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4690 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4691 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4692 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4693 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4694 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4695 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4696 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4697 | } | ||
4698 | pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4699 | find interpretation(problem,interpretation); | ||
4700 | PartialInterpretation.newElements(interpretation,element); | ||
4701 | find mayInstanceOfEClass_class(problem,interpretation,element); | ||
4702 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4703 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4704 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4705 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
4706 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
4707 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4708 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4709 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4710 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4711 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4712 | } | ||
4713 | pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4714 | find interpretation(problem,interpretation); | ||
4715 | PartialInterpretation.newElements(interpretation,element); | ||
4716 | find mayInstanceOfEOperation_class(problem,interpretation,element); | ||
4717 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4718 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4719 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
4720 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
4721 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
4722 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4723 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4724 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4725 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4726 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4727 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4728 | } | ||
4729 | pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4730 | find interpretation(problem,interpretation); | ||
4731 | PartialInterpretation.newElements(interpretation,element); | ||
4732 | find mayInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4733 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4734 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4735 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4736 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
4737 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4738 | } | ||
4739 | pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4740 | find interpretation(problem,interpretation); | ||
4741 | PartialInterpretation.newElements(interpretation,element); | ||
4742 | find mayInstanceOfEAttribute_class(problem,interpretation,element); | ||
4743 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4744 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
4745 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4746 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
4747 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
4748 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
4749 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4750 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4751 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4752 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
4753 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4754 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4755 | } | ||
4756 | pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4757 | find interpretation(problem,interpretation); | ||
4758 | PartialInterpretation.newElements(interpretation,element); | ||
4759 | find mayInstanceOfEGenericType_class(problem,interpretation,element); | ||
4760 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4761 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
4762 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4763 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4764 | } | ||
4765 | pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
4766 | find interpretation(problem,interpretation); | ||
4767 | PartialInterpretation.newElements(interpretation,element); | ||
4768 | find mayInstanceOfEEnum_class(problem,interpretation,element); | ||
4769 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
4770 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
4771 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
4772 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
4773 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
4774 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
4775 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
4776 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
4777 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
4778 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
4779 | } | ||
4780 | |||
4781 | ////////// | ||
4782 | // 4.3 Relation refinement | ||
4783 | ////////// | ||
4784 | pattern refineRelation_eAttributeType_reference_EAttribute( | ||
4785 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4786 | relationIterpretation:PartialRelationInterpretation, | ||
4787 | from: DefinedElement, to: DefinedElement) | ||
4788 | { | ||
4789 | find interpretation(problem,interpretation); | ||
4790 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4791 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
4792 | find mustExist(problem, interpretation, from); | ||
4793 | find mustExist(problem, interpretation, to); | ||
4794 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
4795 | find mustInstanceOfEDataType_class(problem,interpretation,to); | ||
4796 | find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
4797 | neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
4798 | } | ||
4799 | pattern refineRelation_references_reference_EAnnotation( | ||
4800 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4801 | relationIterpretation:PartialRelationInterpretation, | ||
4802 | from: DefinedElement, to: DefinedElement) | ||
4803 | { | ||
4804 | find interpretation(problem,interpretation); | ||
4805 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4806 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
4807 | find mustExist(problem, interpretation, from); | ||
4808 | find mustExist(problem, interpretation, to); | ||
4809 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
4810 | find mustInstanceOfEObject_class(problem,interpretation,to); | ||
4811 | find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
4812 | neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
4813 | } | ||
4814 | pattern refineRelation_eSuperTypes_reference_EClass( | ||
4815 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4816 | relationIterpretation:PartialRelationInterpretation, | ||
4817 | from: DefinedElement, to: DefinedElement) | ||
4818 | { | ||
4819 | find interpretation(problem,interpretation); | ||
4820 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4821 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
4822 | find mustExist(problem, interpretation, from); | ||
4823 | find mustExist(problem, interpretation, to); | ||
4824 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4825 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
4826 | find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4827 | neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4828 | } | ||
4829 | pattern refineRelation_eAllAttributes_reference_EClass( | ||
4830 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4831 | relationIterpretation:PartialRelationInterpretation, | ||
4832 | from: DefinedElement, to: DefinedElement) | ||
4833 | { | ||
4834 | find interpretation(problem,interpretation); | ||
4835 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4836 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
4837 | find mustExist(problem, interpretation, from); | ||
4838 | find mustExist(problem, interpretation, to); | ||
4839 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4840 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
4841 | find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
4842 | neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
4843 | } | ||
4844 | pattern refineRelation_eAllReferences_reference_EClass( | ||
4845 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4846 | relationIterpretation:PartialRelationInterpretation, | ||
4847 | from: DefinedElement, to: DefinedElement) | ||
4848 | { | ||
4849 | find interpretation(problem,interpretation); | ||
4850 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4851 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
4852 | find mustExist(problem, interpretation, from); | ||
4853 | find mustExist(problem, interpretation, to); | ||
4854 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4855 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
4856 | find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
4857 | neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
4858 | } | ||
4859 | pattern refineRelation_eReferences_reference_EClass( | ||
4860 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4861 | relationIterpretation:PartialRelationInterpretation, | ||
4862 | from: DefinedElement, to: DefinedElement) | ||
4863 | { | ||
4864 | find interpretation(problem,interpretation); | ||
4865 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4866 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
4867 | find mustExist(problem, interpretation, from); | ||
4868 | find mustExist(problem, interpretation, to); | ||
4869 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4870 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
4871 | find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
4872 | neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
4873 | } | ||
4874 | pattern refineRelation_eAttributes_reference_EClass( | ||
4875 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4876 | relationIterpretation:PartialRelationInterpretation, | ||
4877 | from: DefinedElement, to: DefinedElement) | ||
4878 | { | ||
4879 | find interpretation(problem,interpretation); | ||
4880 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4881 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
4882 | find mustExist(problem, interpretation, from); | ||
4883 | find mustExist(problem, interpretation, to); | ||
4884 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4885 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
4886 | find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
4887 | neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
4888 | } | ||
4889 | pattern refineRelation_eAllContainments_reference_EClass( | ||
4890 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4891 | relationIterpretation:PartialRelationInterpretation, | ||
4892 | from: DefinedElement, to: DefinedElement) | ||
4893 | { | ||
4894 | find interpretation(problem,interpretation); | ||
4895 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4896 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
4897 | find mustExist(problem, interpretation, from); | ||
4898 | find mustExist(problem, interpretation, to); | ||
4899 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4900 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
4901 | find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
4902 | neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
4903 | } | ||
4904 | pattern refineRelation_eAllOperations_reference_EClass( | ||
4905 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4906 | relationIterpretation:PartialRelationInterpretation, | ||
4907 | from: DefinedElement, to: DefinedElement) | ||
4908 | { | ||
4909 | find interpretation(problem,interpretation); | ||
4910 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4911 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
4912 | find mustExist(problem, interpretation, from); | ||
4913 | find mustExist(problem, interpretation, to); | ||
4914 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4915 | find mustInstanceOfEOperation_class(problem,interpretation,to); | ||
4916 | find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
4917 | neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
4918 | } | ||
4919 | pattern refineRelation_eAllStructuralFeatures_reference_EClass( | ||
4920 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4921 | relationIterpretation:PartialRelationInterpretation, | ||
4922 | from: DefinedElement, to: DefinedElement) | ||
4923 | { | ||
4924 | find interpretation(problem,interpretation); | ||
4925 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4926 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
4927 | find mustExist(problem, interpretation, from); | ||
4928 | find mustExist(problem, interpretation, to); | ||
4929 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4930 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,to); | ||
4931 | find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
4932 | neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
4933 | } | ||
4934 | pattern refineRelation_eAllSuperTypes_reference_EClass( | ||
4935 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4936 | relationIterpretation:PartialRelationInterpretation, | ||
4937 | from: DefinedElement, to: DefinedElement) | ||
4938 | { | ||
4939 | find interpretation(problem,interpretation); | ||
4940 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4941 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
4942 | find mustExist(problem, interpretation, from); | ||
4943 | find mustExist(problem, interpretation, to); | ||
4944 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4945 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
4946 | find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4947 | neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4948 | } | ||
4949 | pattern refineRelation_eIDAttribute_reference_EClass( | ||
4950 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4951 | relationIterpretation:PartialRelationInterpretation, | ||
4952 | from: DefinedElement, to: DefinedElement) | ||
4953 | { | ||
4954 | find interpretation(problem,interpretation); | ||
4955 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4956 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
4957 | find mustExist(problem, interpretation, from); | ||
4958 | find mustExist(problem, interpretation, to); | ||
4959 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4960 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
4961 | find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
4962 | neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
4963 | } | ||
4964 | pattern refineRelation_eAllGenericSuperTypes_reference_EClass( | ||
4965 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4966 | relationIterpretation:PartialRelationInterpretation, | ||
4967 | from: DefinedElement, to: DefinedElement) | ||
4968 | { | ||
4969 | find interpretation(problem,interpretation); | ||
4970 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4971 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
4972 | find mustExist(problem, interpretation, from); | ||
4973 | find mustExist(problem, interpretation, to); | ||
4974 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
4975 | find mustInstanceOfEGenericType_class(problem,interpretation,to); | ||
4976 | find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4977 | neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
4978 | } | ||
4979 | pattern refineRelation_eExceptions_reference_EOperation( | ||
4980 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4981 | relationIterpretation:PartialRelationInterpretation, | ||
4982 | from: DefinedElement, to: DefinedElement) | ||
4983 | { | ||
4984 | find interpretation(problem,interpretation); | ||
4985 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
4986 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
4987 | find mustExist(problem, interpretation, from); | ||
4988 | find mustExist(problem, interpretation, to); | ||
4989 | find mustInstanceOfEOperation_class(problem,interpretation,from); | ||
4990 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
4991 | find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
4992 | neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
4993 | } | ||
4994 | pattern refineRelation_eOpposite_reference_EReference( | ||
4995 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
4996 | relationIterpretation:PartialRelationInterpretation, | ||
4997 | from: DefinedElement, to: DefinedElement) | ||
4998 | { | ||
4999 | find interpretation(problem,interpretation); | ||
5000 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5001 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
5002 | find mustExist(problem, interpretation, from); | ||
5003 | find mustExist(problem, interpretation, to); | ||
5004 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5005 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
5006 | find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
5007 | neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
5008 | } | ||
5009 | pattern refineRelation_eReferenceType_reference_EReference( | ||
5010 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5011 | relationIterpretation:PartialRelationInterpretation, | ||
5012 | from: DefinedElement, to: DefinedElement) | ||
5013 | { | ||
5014 | find interpretation(problem,interpretation); | ||
5015 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5016 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
5017 | find mustExist(problem, interpretation, from); | ||
5018 | find mustExist(problem, interpretation, to); | ||
5019 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5020 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
5021 | find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
5022 | neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
5023 | } | ||
5024 | pattern refineRelation_eKeys_reference_EReference( | ||
5025 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5026 | relationIterpretation:PartialRelationInterpretation, | ||
5027 | from: DefinedElement, to: DefinedElement) | ||
5028 | { | ||
5029 | find interpretation(problem,interpretation); | ||
5030 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5031 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
5032 | find mustExist(problem, interpretation, from); | ||
5033 | find mustExist(problem, interpretation, to); | ||
5034 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5035 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
5036 | find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
5037 | neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
5038 | } | ||
5039 | pattern refineRelation_eType_reference_ETypedElement( | ||
5040 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5041 | relationIterpretation:PartialRelationInterpretation, | ||
5042 | from: DefinedElement, to: DefinedElement) | ||
5043 | { | ||
5044 | find interpretation(problem,interpretation); | ||
5045 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5046 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
5047 | find mustExist(problem, interpretation, from); | ||
5048 | find mustExist(problem, interpretation, to); | ||
5049 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5050 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
5051 | find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
5052 | neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
5053 | } | ||
5054 | pattern refineRelation_eRawType_reference_EGenericType( | ||
5055 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5056 | relationIterpretation:PartialRelationInterpretation, | ||
5057 | from: DefinedElement, to: DefinedElement) | ||
5058 | { | ||
5059 | find interpretation(problem,interpretation); | ||
5060 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5061 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
5062 | find mustExist(problem, interpretation, from); | ||
5063 | find mustExist(problem, interpretation, to); | ||
5064 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
5065 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
5066 | find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
5067 | neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
5068 | } | ||
5069 | pattern refineRelation_eTypeParameter_reference_EGenericType( | ||
5070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5071 | relationIterpretation:PartialRelationInterpretation, | ||
5072 | from: DefinedElement, to: DefinedElement) | ||
5073 | { | ||
5074 | find interpretation(problem,interpretation); | ||
5075 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5076 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
5077 | find mustExist(problem, interpretation, from); | ||
5078 | find mustExist(problem, interpretation, to); | ||
5079 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
5080 | find mustInstanceOfETypeParameter_class(problem,interpretation,to); | ||
5081 | find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
5082 | neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
5083 | } | ||
5084 | pattern refineRelation_eClassifier_reference_EGenericType( | ||
5085 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5086 | relationIterpretation:PartialRelationInterpretation, | ||
5087 | from: DefinedElement, to: DefinedElement) | ||
5088 | { | ||
5089 | find interpretation(problem,interpretation); | ||
5090 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5091 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
5092 | find mustExist(problem, interpretation, from); | ||
5093 | find mustExist(problem, interpretation, to); | ||
5094 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
5095 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
5096 | find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
5097 | neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
5098 | } | ||
5099 | pattern refineRelation_iD_attribute_EAttribute( | ||
5100 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5101 | relationIterpretation:PartialRelationInterpretation, | ||
5102 | from: DefinedElement, to: DefinedElement) | ||
5103 | { | ||
5104 | find interpretation(problem,interpretation); | ||
5105 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5106 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
5107 | find mustExist(problem, interpretation, from); | ||
5108 | find mustExist(problem, interpretation, to); | ||
5109 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
5110 | BooleanElement(to); | ||
5111 | find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
5112 | neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
5113 | } | ||
5114 | pattern refineRelation_source_attribute_EAnnotation( | ||
5115 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5116 | relationIterpretation:PartialRelationInterpretation, | ||
5117 | from: DefinedElement, to: DefinedElement) | ||
5118 | { | ||
5119 | find interpretation(problem,interpretation); | ||
5120 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5121 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
5122 | find mustExist(problem, interpretation, from); | ||
5123 | find mustExist(problem, interpretation, to); | ||
5124 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
5125 | StringElement(to); | ||
5126 | find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
5127 | neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
5128 | } | ||
5129 | pattern refineRelation_abstract_attribute_EClass( | ||
5130 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5131 | relationIterpretation:PartialRelationInterpretation, | ||
5132 | from: DefinedElement, to: DefinedElement) | ||
5133 | { | ||
5134 | find interpretation(problem,interpretation); | ||
5135 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5136 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
5137 | find mustExist(problem, interpretation, from); | ||
5138 | find mustExist(problem, interpretation, to); | ||
5139 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
5140 | BooleanElement(to); | ||
5141 | find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
5142 | neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
5143 | } | ||
5144 | pattern refineRelation_interface_attribute_EClass( | ||
5145 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5146 | relationIterpretation:PartialRelationInterpretation, | ||
5147 | from: DefinedElement, to: DefinedElement) | ||
5148 | { | ||
5149 | find interpretation(problem,interpretation); | ||
5150 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5151 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
5152 | find mustExist(problem, interpretation, from); | ||
5153 | find mustExist(problem, interpretation, to); | ||
5154 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
5155 | BooleanElement(to); | ||
5156 | find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
5157 | neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
5158 | } | ||
5159 | pattern refineRelation_instanceClassName_attribute_EClassifier( | ||
5160 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5161 | relationIterpretation:PartialRelationInterpretation, | ||
5162 | from: DefinedElement, to: DefinedElement) | ||
5163 | { | ||
5164 | find interpretation(problem,interpretation); | ||
5165 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5166 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
5167 | find mustExist(problem, interpretation, from); | ||
5168 | find mustExist(problem, interpretation, to); | ||
5169 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
5170 | StringElement(to); | ||
5171 | find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
5172 | neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
5173 | } | ||
5174 | pattern refineRelation_instanceTypeName_attribute_EClassifier( | ||
5175 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5176 | relationIterpretation:PartialRelationInterpretation, | ||
5177 | from: DefinedElement, to: DefinedElement) | ||
5178 | { | ||
5179 | find interpretation(problem,interpretation); | ||
5180 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5181 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
5182 | find mustExist(problem, interpretation, from); | ||
5183 | find mustExist(problem, interpretation, to); | ||
5184 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
5185 | StringElement(to); | ||
5186 | find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
5187 | neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
5188 | } | ||
5189 | pattern refineRelation_serializable_attribute_EDataType( | ||
5190 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5191 | relationIterpretation:PartialRelationInterpretation, | ||
5192 | from: DefinedElement, to: DefinedElement) | ||
5193 | { | ||
5194 | find interpretation(problem,interpretation); | ||
5195 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5196 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
5197 | find mustExist(problem, interpretation, from); | ||
5198 | find mustExist(problem, interpretation, to); | ||
5199 | find mustInstanceOfEDataType_class(problem,interpretation,from); | ||
5200 | BooleanElement(to); | ||
5201 | find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
5202 | neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
5203 | } | ||
5204 | pattern refineRelation_value_attribute_EEnumLiteral( | ||
5205 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5206 | relationIterpretation:PartialRelationInterpretation, | ||
5207 | from: DefinedElement, to: DefinedElement) | ||
5208 | { | ||
5209 | find interpretation(problem,interpretation); | ||
5210 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5211 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
5212 | find mustExist(problem, interpretation, from); | ||
5213 | find mustExist(problem, interpretation, to); | ||
5214 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
5215 | IntegerElement(to); | ||
5216 | find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
5217 | neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
5218 | } | ||
5219 | pattern refineRelation_literal_attribute_EEnumLiteral( | ||
5220 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5221 | relationIterpretation:PartialRelationInterpretation, | ||
5222 | from: DefinedElement, to: DefinedElement) | ||
5223 | { | ||
5224 | find interpretation(problem,interpretation); | ||
5225 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5226 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
5227 | find mustExist(problem, interpretation, from); | ||
5228 | find mustExist(problem, interpretation, to); | ||
5229 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
5230 | StringElement(to); | ||
5231 | find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
5232 | neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
5233 | } | ||
5234 | pattern refineRelation_name_attribute_ENamedElement( | ||
5235 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5236 | relationIterpretation:PartialRelationInterpretation, | ||
5237 | from: DefinedElement, to: DefinedElement) | ||
5238 | { | ||
5239 | find interpretation(problem,interpretation); | ||
5240 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5241 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
5242 | find mustExist(problem, interpretation, from); | ||
5243 | find mustExist(problem, interpretation, to); | ||
5244 | find mustInstanceOfENamedElement_class(problem,interpretation,from); | ||
5245 | StringElement(to); | ||
5246 | find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
5247 | neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
5248 | } | ||
5249 | pattern refineRelation_nsURI_attribute_EPackage( | ||
5250 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5251 | relationIterpretation:PartialRelationInterpretation, | ||
5252 | from: DefinedElement, to: DefinedElement) | ||
5253 | { | ||
5254 | find interpretation(problem,interpretation); | ||
5255 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5256 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
5257 | find mustExist(problem, interpretation, from); | ||
5258 | find mustExist(problem, interpretation, to); | ||
5259 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
5260 | StringElement(to); | ||
5261 | find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
5262 | neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
5263 | } | ||
5264 | pattern refineRelation_nsPrefix_attribute_EPackage( | ||
5265 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5266 | relationIterpretation:PartialRelationInterpretation, | ||
5267 | from: DefinedElement, to: DefinedElement) | ||
5268 | { | ||
5269 | find interpretation(problem,interpretation); | ||
5270 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5271 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
5272 | find mustExist(problem, interpretation, from); | ||
5273 | find mustExist(problem, interpretation, to); | ||
5274 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
5275 | StringElement(to); | ||
5276 | find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
5277 | neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
5278 | } | ||
5279 | pattern refineRelation_containment_attribute_EReference( | ||
5280 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5281 | relationIterpretation:PartialRelationInterpretation, | ||
5282 | from: DefinedElement, to: DefinedElement) | ||
5283 | { | ||
5284 | find interpretation(problem,interpretation); | ||
5285 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5286 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
5287 | find mustExist(problem, interpretation, from); | ||
5288 | find mustExist(problem, interpretation, to); | ||
5289 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5290 | BooleanElement(to); | ||
5291 | find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
5292 | neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
5293 | } | ||
5294 | pattern refineRelation_container_attribute_EReference( | ||
5295 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5296 | relationIterpretation:PartialRelationInterpretation, | ||
5297 | from: DefinedElement, to: DefinedElement) | ||
5298 | { | ||
5299 | find interpretation(problem,interpretation); | ||
5300 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5301 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
5302 | find mustExist(problem, interpretation, from); | ||
5303 | find mustExist(problem, interpretation, to); | ||
5304 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5305 | BooleanElement(to); | ||
5306 | find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
5307 | neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
5308 | } | ||
5309 | pattern refineRelation_resolveProxies_attribute_EReference( | ||
5310 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5311 | relationIterpretation:PartialRelationInterpretation, | ||
5312 | from: DefinedElement, to: DefinedElement) | ||
5313 | { | ||
5314 | find interpretation(problem,interpretation); | ||
5315 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5316 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
5317 | find mustExist(problem, interpretation, from); | ||
5318 | find mustExist(problem, interpretation, to); | ||
5319 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
5320 | BooleanElement(to); | ||
5321 | find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
5322 | neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
5323 | } | ||
5324 | pattern refineRelation_changeable_attribute_EStructuralFeature( | ||
5325 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5326 | relationIterpretation:PartialRelationInterpretation, | ||
5327 | from: DefinedElement, to: DefinedElement) | ||
5328 | { | ||
5329 | find interpretation(problem,interpretation); | ||
5330 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5331 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
5332 | find mustExist(problem, interpretation, from); | ||
5333 | find mustExist(problem, interpretation, to); | ||
5334 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5335 | BooleanElement(to); | ||
5336 | find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5337 | neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5338 | } | ||
5339 | pattern refineRelation_volatile_attribute_EStructuralFeature( | ||
5340 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5341 | relationIterpretation:PartialRelationInterpretation, | ||
5342 | from: DefinedElement, to: DefinedElement) | ||
5343 | { | ||
5344 | find interpretation(problem,interpretation); | ||
5345 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5346 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
5347 | find mustExist(problem, interpretation, from); | ||
5348 | find mustExist(problem, interpretation, to); | ||
5349 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5350 | BooleanElement(to); | ||
5351 | find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5352 | neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5353 | } | ||
5354 | pattern refineRelation_transient_attribute_EStructuralFeature( | ||
5355 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5356 | relationIterpretation:PartialRelationInterpretation, | ||
5357 | from: DefinedElement, to: DefinedElement) | ||
5358 | { | ||
5359 | find interpretation(problem,interpretation); | ||
5360 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5361 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
5362 | find mustExist(problem, interpretation, from); | ||
5363 | find mustExist(problem, interpretation, to); | ||
5364 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5365 | BooleanElement(to); | ||
5366 | find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5367 | neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5368 | } | ||
5369 | pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature( | ||
5370 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5371 | relationIterpretation:PartialRelationInterpretation, | ||
5372 | from: DefinedElement, to: DefinedElement) | ||
5373 | { | ||
5374 | find interpretation(problem,interpretation); | ||
5375 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5376 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
5377 | find mustExist(problem, interpretation, from); | ||
5378 | find mustExist(problem, interpretation, to); | ||
5379 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5380 | StringElement(to); | ||
5381 | find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5382 | neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5383 | } | ||
5384 | pattern refineRelation_unsettable_attribute_EStructuralFeature( | ||
5385 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5386 | relationIterpretation:PartialRelationInterpretation, | ||
5387 | from: DefinedElement, to: DefinedElement) | ||
5388 | { | ||
5389 | find interpretation(problem,interpretation); | ||
5390 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5391 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
5392 | find mustExist(problem, interpretation, from); | ||
5393 | find mustExist(problem, interpretation, to); | ||
5394 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5395 | BooleanElement(to); | ||
5396 | find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5397 | neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5398 | } | ||
5399 | pattern refineRelation_derived_attribute_EStructuralFeature( | ||
5400 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5401 | relationIterpretation:PartialRelationInterpretation, | ||
5402 | from: DefinedElement, to: DefinedElement) | ||
5403 | { | ||
5404 | find interpretation(problem,interpretation); | ||
5405 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5406 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
5407 | find mustExist(problem, interpretation, from); | ||
5408 | find mustExist(problem, interpretation, to); | ||
5409 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
5410 | BooleanElement(to); | ||
5411 | find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5412 | neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
5413 | } | ||
5414 | pattern refineRelation_ordered_attribute_ETypedElement( | ||
5415 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5416 | relationIterpretation:PartialRelationInterpretation, | ||
5417 | from: DefinedElement, to: DefinedElement) | ||
5418 | { | ||
5419 | find interpretation(problem,interpretation); | ||
5420 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5421 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
5422 | find mustExist(problem, interpretation, from); | ||
5423 | find mustExist(problem, interpretation, to); | ||
5424 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5425 | BooleanElement(to); | ||
5426 | find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
5427 | neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
5428 | } | ||
5429 | pattern refineRelation_unique_attribute_ETypedElement( | ||
5430 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5431 | relationIterpretation:PartialRelationInterpretation, | ||
5432 | from: DefinedElement, to: DefinedElement) | ||
5433 | { | ||
5434 | find interpretation(problem,interpretation); | ||
5435 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5436 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
5437 | find mustExist(problem, interpretation, from); | ||
5438 | find mustExist(problem, interpretation, to); | ||
5439 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5440 | BooleanElement(to); | ||
5441 | find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
5442 | neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
5443 | } | ||
5444 | pattern refineRelation_lowerBound_attribute_ETypedElement( | ||
5445 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5446 | relationIterpretation:PartialRelationInterpretation, | ||
5447 | from: DefinedElement, to: DefinedElement) | ||
5448 | { | ||
5449 | find interpretation(problem,interpretation); | ||
5450 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5451 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
5452 | find mustExist(problem, interpretation, from); | ||
5453 | find mustExist(problem, interpretation, to); | ||
5454 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5455 | IntegerElement(to); | ||
5456 | find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
5457 | neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
5458 | } | ||
5459 | pattern refineRelation_upperBound_attribute_ETypedElement( | ||
5460 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5461 | relationIterpretation:PartialRelationInterpretation, | ||
5462 | from: DefinedElement, to: DefinedElement) | ||
5463 | { | ||
5464 | find interpretation(problem,interpretation); | ||
5465 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5466 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
5467 | find mustExist(problem, interpretation, from); | ||
5468 | find mustExist(problem, interpretation, to); | ||
5469 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5470 | IntegerElement(to); | ||
5471 | find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
5472 | neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
5473 | } | ||
5474 | pattern refineRelation_many_attribute_ETypedElement( | ||
5475 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5476 | relationIterpretation:PartialRelationInterpretation, | ||
5477 | from: DefinedElement, to: DefinedElement) | ||
5478 | { | ||
5479 | find interpretation(problem,interpretation); | ||
5480 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5481 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
5482 | find mustExist(problem, interpretation, from); | ||
5483 | find mustExist(problem, interpretation, to); | ||
5484 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5485 | BooleanElement(to); | ||
5486 | find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
5487 | neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
5488 | } | ||
5489 | pattern refineRelation_required_attribute_ETypedElement( | ||
5490 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5491 | relationIterpretation:PartialRelationInterpretation, | ||
5492 | from: DefinedElement, to: DefinedElement) | ||
5493 | { | ||
5494 | find interpretation(problem,interpretation); | ||
5495 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5496 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
5497 | find mustExist(problem, interpretation, from); | ||
5498 | find mustExist(problem, interpretation, to); | ||
5499 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
5500 | BooleanElement(to); | ||
5501 | find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
5502 | neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
5503 | } | ||
5504 | pattern refineRelation_key_attribute_EStringToStringMapEntry( | ||
5505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5506 | relationIterpretation:PartialRelationInterpretation, | ||
5507 | from: DefinedElement, to: DefinedElement) | ||
5508 | { | ||
5509 | find interpretation(problem,interpretation); | ||
5510 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5511 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
5512 | find mustExist(problem, interpretation, from); | ||
5513 | find mustExist(problem, interpretation, to); | ||
5514 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
5515 | StringElement(to); | ||
5516 | find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
5517 | neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
5518 | } | ||
5519 | pattern refineRelation_value_attribute_EStringToStringMapEntry( | ||
5520 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
5521 | relationIterpretation:PartialRelationInterpretation, | ||
5522 | from: DefinedElement, to: DefinedElement) | ||
5523 | { | ||
5524 | find interpretation(problem,interpretation); | ||
5525 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
5526 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
5527 | find mustExist(problem, interpretation, from); | ||
5528 | find mustExist(problem, interpretation, to); | ||
5529 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
5530 | StringElement(to); | ||
5531 | find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
5532 | neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
5533 | } | ||
5534 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
5535 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
5536 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
5537 | |||
5538 | ////////// | ||
5539 | // 0. Util | ||
5540 | ////////// | ||
5541 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5542 | PartialInterpretation.problem(interpretation,problem); | ||
5543 | } | ||
5544 | |||
5545 | ///////////////////////// | ||
5546 | // 0.1 Existence | ||
5547 | ///////////////////////// | ||
5548 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5549 | find interpretation(problem,interpretation); | ||
5550 | LogicProblem.elements(problem,element); | ||
5551 | } or { | ||
5552 | find interpretation(problem,interpretation); | ||
5553 | PartialInterpretation.newElements(interpretation,element); | ||
5554 | } | ||
5555 | |||
5556 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5557 | find mustExist(problem,interpretation,element); | ||
5558 | } or { | ||
5559 | find interpretation(problem,interpretation); | ||
5560 | neg find elementCloseWorld(element); | ||
5561 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5562 | } | ||
5563 | |||
5564 | private pattern elementCloseWorld(element:DefinedElement) { | ||
5565 | PartialInterpretation.openWorldElements(i,element); | ||
5566 | PartialInterpretation.maxNewElements(i,0); | ||
5567 | } or { | ||
5568 | Scope.targetTypeInterpretation(scope,interpretation); | ||
5569 | PartialTypeInterpratation.elements(interpretation,element); | ||
5570 | Scope.maxNewElements(scope,0); | ||
5571 | } | ||
5572 | |||
5573 | //////////////////////// | ||
5574 | // 0.2 Equivalence | ||
5575 | //////////////////////// | ||
5576 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
5577 | find mayExist(problem,interpretation,a); | ||
5578 | find mayExist(problem,interpretation,b); | ||
5579 | a == b; | ||
5580 | } | ||
5581 | |||
5582 | //////////////////////// | ||
5583 | // 0.3 Required Patterns by TypeIndexer | ||
5584 | //////////////////////// | ||
5585 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
5586 | find interpretation(problem,interpretation); | ||
5587 | LogicProblem.types(problem,type); | ||
5588 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
5589 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5590 | } | ||
5591 | |||
5592 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
5593 | find interpretation(problem,interpretation); | ||
5594 | LogicProblem.types(problem,type); | ||
5595 | TypeDefinition.elements(type,element); | ||
5596 | } or { | ||
5597 | find interpretation(problem,interpretation); | ||
5598 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
5599 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
5600 | } | ||
5601 | |||
5602 | private pattern isPrimitive(element: PrimitiveElement) { | ||
5603 | PrimitiveElement(element); | ||
5604 | } | ||
5605 | |||
5606 | ////////// | ||
5607 | // 1. Problem-Specific Base Indexers | ||
5608 | ////////// | ||
5609 | // 1.1 Type Indexers | ||
5610 | ////////// | ||
5611 | // 1.1.1 primitive Type Indexers | ||
5612 | ////////// | ||
5613 | |||
5614 | ////////// | ||
5615 | // 1.1.2 domain-specific Type Indexers | ||
5616 | ////////// | ||
5617 | /** | ||
5618 | * An element must be an instance of type "EAttribute class". | ||
5619 | */ | ||
5620 | private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5621 | Type.name(type,"EAttribute class"); | ||
5622 | find directInstanceOf(problem,interpretation,element,type); | ||
5623 | } | ||
5624 | private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5625 | find interpretation(problem,interpretation); | ||
5626 | PartialInterpretation.scopes(interpretation,scope); | ||
5627 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5628 | Scope.maxNewElements(scope,0); | ||
5629 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5630 | Type.name(type,"EAttribute class"); | ||
5631 | } | ||
5632 | |||
5633 | /** | ||
5634 | * An element may be an instance of type "EAttribute class". | ||
5635 | */ | ||
5636 | private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5637 | { | ||
5638 | find interpretation(problem,interpretation); | ||
5639 | PartialInterpretation.newElements(interpretation,element); | ||
5640 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5641 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
5642 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5643 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
5644 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5645 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5646 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
5647 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
5648 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5649 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5650 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5651 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
5652 | neg find isPrimitive(element); | ||
5653 | } or { | ||
5654 | find interpretation(problem,interpretation); | ||
5655 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5656 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5657 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
5658 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5659 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
5660 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5661 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5662 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
5663 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
5664 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5665 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5666 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5667 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
5668 | neg find isPrimitive(element); | ||
5669 | } or | ||
5670 | { find mustInstanceOfEAttribute_class(problem,interpretation,element); } | ||
5671 | /** | ||
5672 | * An element must be an instance of type "EAnnotation class". | ||
5673 | */ | ||
5674 | private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5675 | Type.name(type,"EAnnotation class"); | ||
5676 | find directInstanceOf(problem,interpretation,element,type); | ||
5677 | } | ||
5678 | private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5679 | find interpretation(problem,interpretation); | ||
5680 | PartialInterpretation.scopes(interpretation,scope); | ||
5681 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5682 | Scope.maxNewElements(scope,0); | ||
5683 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5684 | Type.name(type,"EAnnotation class"); | ||
5685 | } | ||
5686 | |||
5687 | /** | ||
5688 | * An element may be an instance of type "EAnnotation class". | ||
5689 | */ | ||
5690 | private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5691 | { | ||
5692 | find interpretation(problem,interpretation); | ||
5693 | PartialInterpretation.newElements(interpretation,element); | ||
5694 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
5695 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5696 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5697 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5698 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
5699 | neg find isPrimitive(element); | ||
5700 | } or { | ||
5701 | find interpretation(problem,interpretation); | ||
5702 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5703 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
5704 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5705 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5706 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5707 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
5708 | neg find isPrimitive(element); | ||
5709 | } or | ||
5710 | { find mustInstanceOfEAnnotation_class(problem,interpretation,element); } | ||
5711 | /** | ||
5712 | * An element must be an instance of type "EClass class". | ||
5713 | */ | ||
5714 | private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5715 | Type.name(type,"EClass class"); | ||
5716 | find directInstanceOf(problem,interpretation,element,type); | ||
5717 | } | ||
5718 | private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5719 | find interpretation(problem,interpretation); | ||
5720 | PartialInterpretation.scopes(interpretation,scope); | ||
5721 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5722 | Scope.maxNewElements(scope,0); | ||
5723 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5724 | Type.name(type,"EClass class"); | ||
5725 | } | ||
5726 | |||
5727 | /** | ||
5728 | * An element may be an instance of type "EClass class". | ||
5729 | */ | ||
5730 | private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5731 | { | ||
5732 | find interpretation(problem,interpretation); | ||
5733 | PartialInterpretation.newElements(interpretation,element); | ||
5734 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5735 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5736 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5737 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5738 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
5739 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5740 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5741 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5742 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5743 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
5744 | neg find isPrimitive(element); | ||
5745 | } or { | ||
5746 | find interpretation(problem,interpretation); | ||
5747 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5748 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5749 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5750 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5751 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5752 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
5753 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5754 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5755 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5756 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5757 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
5758 | neg find isPrimitive(element); | ||
5759 | } or | ||
5760 | { find mustInstanceOfEClass_class(problem,interpretation,element); } | ||
5761 | /** | ||
5762 | * An element must be an instance of type "EClassifier class". | ||
5763 | */ | ||
5764 | private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5765 | Type.name(type,"EClassifier class"); | ||
5766 | find directInstanceOf(problem,interpretation,element,type); | ||
5767 | } | ||
5768 | private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5769 | find interpretation(problem,interpretation); | ||
5770 | PartialInterpretation.scopes(interpretation,scope); | ||
5771 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5772 | Scope.maxNewElements(scope,0); | ||
5773 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5774 | Type.name(type,"EClassifier class"); | ||
5775 | } | ||
5776 | |||
5777 | /** | ||
5778 | * An element may be an instance of type "EClassifier class". | ||
5779 | */ | ||
5780 | private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5781 | { | ||
5782 | find interpretation(problem,interpretation); | ||
5783 | PartialInterpretation.newElements(interpretation,element); | ||
5784 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5785 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5786 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5787 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5788 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5789 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
5790 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5791 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5792 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5793 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5794 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
5795 | neg find isPrimitive(element); | ||
5796 | } or { | ||
5797 | find interpretation(problem,interpretation); | ||
5798 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5799 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5800 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5801 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5802 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5803 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5804 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
5805 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5806 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5807 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5808 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5809 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
5810 | neg find isPrimitive(element); | ||
5811 | } or | ||
5812 | { find mustInstanceOfEClassifier_class(problem,interpretation,element); } | ||
5813 | /** | ||
5814 | * An element must be an instance of type "EDataType class". | ||
5815 | */ | ||
5816 | private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5817 | Type.name(type,"EDataType class"); | ||
5818 | find directInstanceOf(problem,interpretation,element,type); | ||
5819 | } | ||
5820 | private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5821 | find interpretation(problem,interpretation); | ||
5822 | PartialInterpretation.scopes(interpretation,scope); | ||
5823 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5824 | Scope.maxNewElements(scope,0); | ||
5825 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5826 | Type.name(type,"EDataType class"); | ||
5827 | } | ||
5828 | |||
5829 | /** | ||
5830 | * An element may be an instance of type "EDataType class". | ||
5831 | */ | ||
5832 | private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5833 | { | ||
5834 | find interpretation(problem,interpretation); | ||
5835 | PartialInterpretation.newElements(interpretation,element); | ||
5836 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5837 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5838 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5839 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5840 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5841 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
5842 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5843 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5844 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5845 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5846 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
5847 | neg find isPrimitive(element); | ||
5848 | } or { | ||
5849 | find interpretation(problem,interpretation); | ||
5850 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5851 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5852 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5853 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5854 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5855 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5856 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
5857 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5858 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5859 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5860 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5861 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
5862 | neg find isPrimitive(element); | ||
5863 | } or | ||
5864 | { find mustInstanceOfEDataType_class(problem,interpretation,element); } | ||
5865 | /** | ||
5866 | * An element must be an instance of type "EEnum class". | ||
5867 | */ | ||
5868 | private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5869 | Type.name(type,"EEnum class"); | ||
5870 | find directInstanceOf(problem,interpretation,element,type); | ||
5871 | } | ||
5872 | private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5873 | find interpretation(problem,interpretation); | ||
5874 | PartialInterpretation.scopes(interpretation,scope); | ||
5875 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5876 | Scope.maxNewElements(scope,0); | ||
5877 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5878 | Type.name(type,"EEnum class"); | ||
5879 | } | ||
5880 | |||
5881 | /** | ||
5882 | * An element may be an instance of type "EEnum class". | ||
5883 | */ | ||
5884 | private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5885 | { | ||
5886 | find interpretation(problem,interpretation); | ||
5887 | PartialInterpretation.newElements(interpretation,element); | ||
5888 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5889 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5890 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5891 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5892 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5893 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5894 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5895 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5896 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5897 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
5898 | neg find isPrimitive(element); | ||
5899 | } or { | ||
5900 | find interpretation(problem,interpretation); | ||
5901 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5902 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
5903 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5904 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5905 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5906 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5907 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5908 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5909 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
5910 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5911 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
5912 | neg find isPrimitive(element); | ||
5913 | } or | ||
5914 | { find mustInstanceOfEEnum_class(problem,interpretation,element); } | ||
5915 | /** | ||
5916 | * An element must be an instance of type "EEnumLiteral class". | ||
5917 | */ | ||
5918 | private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5919 | Type.name(type,"EEnumLiteral class"); | ||
5920 | find directInstanceOf(problem,interpretation,element,type); | ||
5921 | } | ||
5922 | private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5923 | find interpretation(problem,interpretation); | ||
5924 | PartialInterpretation.scopes(interpretation,scope); | ||
5925 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5926 | Scope.maxNewElements(scope,0); | ||
5927 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5928 | Type.name(type,"EEnumLiteral class"); | ||
5929 | } | ||
5930 | |||
5931 | /** | ||
5932 | * An element may be an instance of type "EEnumLiteral class". | ||
5933 | */ | ||
5934 | private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5935 | { | ||
5936 | find interpretation(problem,interpretation); | ||
5937 | PartialInterpretation.newElements(interpretation,element); | ||
5938 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5939 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5940 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5941 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
5942 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5943 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5944 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5945 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5946 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
5947 | neg find isPrimitive(element); | ||
5948 | } or { | ||
5949 | find interpretation(problem,interpretation); | ||
5950 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5951 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
5952 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5953 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5954 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
5955 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
5956 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
5957 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5958 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
5959 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
5960 | neg find isPrimitive(element); | ||
5961 | } or | ||
5962 | { find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); } | ||
5963 | /** | ||
5964 | * An element must be an instance of type "EModelElement class". | ||
5965 | */ | ||
5966 | private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
5967 | Type.name(type,"EModelElement class"); | ||
5968 | find directInstanceOf(problem,interpretation,element,type); | ||
5969 | } | ||
5970 | private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
5971 | find interpretation(problem,interpretation); | ||
5972 | PartialInterpretation.scopes(interpretation,scope); | ||
5973 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
5974 | Scope.maxNewElements(scope,0); | ||
5975 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
5976 | Type.name(type,"EModelElement class"); | ||
5977 | } | ||
5978 | |||
5979 | /** | ||
5980 | * An element may be an instance of type "EModelElement class". | ||
5981 | */ | ||
5982 | private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
5983 | { | ||
5984 | find interpretation(problem,interpretation); | ||
5985 | PartialInterpretation.newElements(interpretation,element); | ||
5986 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
5987 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5988 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5989 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
5990 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
5991 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
5992 | neg find isPrimitive(element); | ||
5993 | } or { | ||
5994 | find interpretation(problem,interpretation); | ||
5995 | PartialInterpretation.openWorldElements(interpretation,element); | ||
5996 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
5997 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
5998 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
5999 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
6000 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6001 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
6002 | neg find isPrimitive(element); | ||
6003 | } or | ||
6004 | { find mustInstanceOfEModelElement_class(problem,interpretation,element); } | ||
6005 | /** | ||
6006 | * An element must be an instance of type "ENamedElement class". | ||
6007 | */ | ||
6008 | private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6009 | Type.name(type,"ENamedElement class"); | ||
6010 | find directInstanceOf(problem,interpretation,element,type); | ||
6011 | } | ||
6012 | private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6013 | find interpretation(problem,interpretation); | ||
6014 | PartialInterpretation.scopes(interpretation,scope); | ||
6015 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6016 | Scope.maxNewElements(scope,0); | ||
6017 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6018 | Type.name(type,"ENamedElement class"); | ||
6019 | } | ||
6020 | |||
6021 | /** | ||
6022 | * An element may be an instance of type "ENamedElement class". | ||
6023 | */ | ||
6024 | private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6025 | { | ||
6026 | find interpretation(problem,interpretation); | ||
6027 | PartialInterpretation.newElements(interpretation,element); | ||
6028 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6029 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
6030 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6031 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6032 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6033 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
6034 | neg find isPrimitive(element); | ||
6035 | } or { | ||
6036 | find interpretation(problem,interpretation); | ||
6037 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6038 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6039 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
6040 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6041 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6042 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6043 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
6044 | neg find isPrimitive(element); | ||
6045 | } or | ||
6046 | { find mustInstanceOfENamedElement_class(problem,interpretation,element); } | ||
6047 | /** | ||
6048 | * An element must be an instance of type "EObject class". | ||
6049 | */ | ||
6050 | private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6051 | Type.name(type,"EObject class"); | ||
6052 | find directInstanceOf(problem,interpretation,element,type); | ||
6053 | } | ||
6054 | private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6055 | find interpretation(problem,interpretation); | ||
6056 | PartialInterpretation.scopes(interpretation,scope); | ||
6057 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6058 | Scope.maxNewElements(scope,0); | ||
6059 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6060 | Type.name(type,"EObject class"); | ||
6061 | } | ||
6062 | |||
6063 | /** | ||
6064 | * An element may be an instance of type "EObject class". | ||
6065 | */ | ||
6066 | private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6067 | { | ||
6068 | find interpretation(problem,interpretation); | ||
6069 | PartialInterpretation.newElements(interpretation,element); | ||
6070 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6071 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6072 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6073 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
6074 | neg find isPrimitive(element); | ||
6075 | } or { | ||
6076 | find interpretation(problem,interpretation); | ||
6077 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6078 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6079 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6080 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6081 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
6082 | neg find isPrimitive(element); | ||
6083 | } or | ||
6084 | { find mustInstanceOfEObject_class(problem,interpretation,element); } | ||
6085 | /** | ||
6086 | * An element must be an instance of type "EOperation class". | ||
6087 | */ | ||
6088 | private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6089 | Type.name(type,"EOperation class"); | ||
6090 | find directInstanceOf(problem,interpretation,element,type); | ||
6091 | } | ||
6092 | private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6093 | find interpretation(problem,interpretation); | ||
6094 | PartialInterpretation.scopes(interpretation,scope); | ||
6095 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6096 | Scope.maxNewElements(scope,0); | ||
6097 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6098 | Type.name(type,"EOperation class"); | ||
6099 | } | ||
6100 | |||
6101 | /** | ||
6102 | * An element may be an instance of type "EOperation class". | ||
6103 | */ | ||
6104 | private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6105 | { | ||
6106 | find interpretation(problem,interpretation); | ||
6107 | PartialInterpretation.newElements(interpretation,element); | ||
6108 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6109 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6110 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6111 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6112 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6113 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6114 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6115 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6116 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6117 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6118 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
6119 | neg find isPrimitive(element); | ||
6120 | } or { | ||
6121 | find interpretation(problem,interpretation); | ||
6122 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6123 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6124 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6125 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6126 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6127 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6128 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6129 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6130 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6131 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6132 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6133 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
6134 | neg find isPrimitive(element); | ||
6135 | } or | ||
6136 | { find mustInstanceOfEOperation_class(problem,interpretation,element); } | ||
6137 | /** | ||
6138 | * An element must be an instance of type "EPackage class". | ||
6139 | */ | ||
6140 | private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6141 | Type.name(type,"EPackage class"); | ||
6142 | find directInstanceOf(problem,interpretation,element,type); | ||
6143 | } | ||
6144 | private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6145 | find interpretation(problem,interpretation); | ||
6146 | PartialInterpretation.scopes(interpretation,scope); | ||
6147 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6148 | Scope.maxNewElements(scope,0); | ||
6149 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6150 | Type.name(type,"EPackage class"); | ||
6151 | } | ||
6152 | |||
6153 | /** | ||
6154 | * An element may be an instance of type "EPackage class". | ||
6155 | */ | ||
6156 | private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6157 | { | ||
6158 | find interpretation(problem,interpretation); | ||
6159 | PartialInterpretation.newElements(interpretation,element); | ||
6160 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6161 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
6162 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6163 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6164 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
6165 | neg find isPrimitive(element); | ||
6166 | } or { | ||
6167 | find interpretation(problem,interpretation); | ||
6168 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6169 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6170 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
6171 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6172 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6173 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
6174 | neg find isPrimitive(element); | ||
6175 | } or | ||
6176 | { find mustInstanceOfEPackage_class(problem,interpretation,element); } | ||
6177 | /** | ||
6178 | * An element must be an instance of type "EParameter class". | ||
6179 | */ | ||
6180 | private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6181 | Type.name(type,"EParameter class"); | ||
6182 | find directInstanceOf(problem,interpretation,element,type); | ||
6183 | } | ||
6184 | private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6185 | find interpretation(problem,interpretation); | ||
6186 | PartialInterpretation.scopes(interpretation,scope); | ||
6187 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6188 | Scope.maxNewElements(scope,0); | ||
6189 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6190 | Type.name(type,"EParameter class"); | ||
6191 | } | ||
6192 | |||
6193 | /** | ||
6194 | * An element may be an instance of type "EParameter class". | ||
6195 | */ | ||
6196 | private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6197 | { | ||
6198 | find interpretation(problem,interpretation); | ||
6199 | PartialInterpretation.newElements(interpretation,element); | ||
6200 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6201 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6202 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6203 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6204 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6205 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6206 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6207 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6208 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6209 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6210 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
6211 | neg find isPrimitive(element); | ||
6212 | } or { | ||
6213 | find interpretation(problem,interpretation); | ||
6214 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6215 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6216 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6217 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6218 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6219 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6220 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6221 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6222 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6223 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6224 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6225 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
6226 | neg find isPrimitive(element); | ||
6227 | } or | ||
6228 | { find mustInstanceOfEParameter_class(problem,interpretation,element); } | ||
6229 | /** | ||
6230 | * An element must be an instance of type "EReference class". | ||
6231 | */ | ||
6232 | private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6233 | Type.name(type,"EReference class"); | ||
6234 | find directInstanceOf(problem,interpretation,element,type); | ||
6235 | } | ||
6236 | private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6237 | find interpretation(problem,interpretation); | ||
6238 | PartialInterpretation.scopes(interpretation,scope); | ||
6239 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6240 | Scope.maxNewElements(scope,0); | ||
6241 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6242 | Type.name(type,"EReference class"); | ||
6243 | } | ||
6244 | |||
6245 | /** | ||
6246 | * An element may be an instance of type "EReference class". | ||
6247 | */ | ||
6248 | private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6249 | { | ||
6250 | find interpretation(problem,interpretation); | ||
6251 | PartialInterpretation.newElements(interpretation,element); | ||
6252 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6253 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6254 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6255 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6256 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6257 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6258 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6259 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6260 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6261 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
6262 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6263 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
6264 | neg find isPrimitive(element); | ||
6265 | } or { | ||
6266 | find interpretation(problem,interpretation); | ||
6267 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6268 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6269 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6270 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6271 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6272 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6273 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6274 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6275 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6276 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6277 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
6278 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6279 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
6280 | neg find isPrimitive(element); | ||
6281 | } or | ||
6282 | { find mustInstanceOfEReference_class(problem,interpretation,element); } | ||
6283 | /** | ||
6284 | * An element must be an instance of type "EStructuralFeature class". | ||
6285 | */ | ||
6286 | private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6287 | Type.name(type,"EStructuralFeature class"); | ||
6288 | find directInstanceOf(problem,interpretation,element,type); | ||
6289 | } | ||
6290 | private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6291 | find interpretation(problem,interpretation); | ||
6292 | PartialInterpretation.scopes(interpretation,scope); | ||
6293 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6294 | Scope.maxNewElements(scope,0); | ||
6295 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6296 | Type.name(type,"EStructuralFeature class"); | ||
6297 | } | ||
6298 | |||
6299 | /** | ||
6300 | * An element may be an instance of type "EStructuralFeature class". | ||
6301 | */ | ||
6302 | private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6303 | { | ||
6304 | find interpretation(problem,interpretation); | ||
6305 | PartialInterpretation.newElements(interpretation,element); | ||
6306 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6307 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
6308 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6309 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6310 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6311 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6312 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6313 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6314 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6315 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6316 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6317 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
6318 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
6319 | neg find isPrimitive(element); | ||
6320 | } or { | ||
6321 | find interpretation(problem,interpretation); | ||
6322 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6323 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6324 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
6325 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6326 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6327 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6328 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6329 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6330 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6331 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6332 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6333 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6334 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
6335 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
6336 | neg find isPrimitive(element); | ||
6337 | } or | ||
6338 | { find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } | ||
6339 | /** | ||
6340 | * An element must be an instance of type "ETypedElement class". | ||
6341 | */ | ||
6342 | private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6343 | Type.name(type,"ETypedElement class"); | ||
6344 | find directInstanceOf(problem,interpretation,element,type); | ||
6345 | } | ||
6346 | private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6347 | find interpretation(problem,interpretation); | ||
6348 | PartialInterpretation.scopes(interpretation,scope); | ||
6349 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6350 | Scope.maxNewElements(scope,0); | ||
6351 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6352 | Type.name(type,"ETypedElement class"); | ||
6353 | } | ||
6354 | |||
6355 | /** | ||
6356 | * An element may be an instance of type "ETypedElement class". | ||
6357 | */ | ||
6358 | private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6359 | { | ||
6360 | find interpretation(problem,interpretation); | ||
6361 | PartialInterpretation.newElements(interpretation,element); | ||
6362 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6363 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6364 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6365 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6366 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6367 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6368 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6369 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6370 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6371 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6372 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6373 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
6374 | neg find isPrimitive(element); | ||
6375 | } or { | ||
6376 | find interpretation(problem,interpretation); | ||
6377 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6378 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6379 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6380 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6381 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6382 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6383 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
6384 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
6385 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6386 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6387 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
6388 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6389 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
6390 | neg find isPrimitive(element); | ||
6391 | } or | ||
6392 | { find mustInstanceOfETypedElement_class(problem,interpretation,element); } | ||
6393 | /** | ||
6394 | * An element must be an instance of type "EStringToStringMapEntry class". | ||
6395 | */ | ||
6396 | private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6397 | Type.name(type,"EStringToStringMapEntry class"); | ||
6398 | find directInstanceOf(problem,interpretation,element,type); | ||
6399 | } | ||
6400 | private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6401 | find interpretation(problem,interpretation); | ||
6402 | PartialInterpretation.scopes(interpretation,scope); | ||
6403 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6404 | Scope.maxNewElements(scope,0); | ||
6405 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6406 | Type.name(type,"EStringToStringMapEntry class"); | ||
6407 | } | ||
6408 | |||
6409 | /** | ||
6410 | * An element may be an instance of type "EStringToStringMapEntry class". | ||
6411 | */ | ||
6412 | private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6413 | { | ||
6414 | find interpretation(problem,interpretation); | ||
6415 | PartialInterpretation.newElements(interpretation,element); | ||
6416 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6417 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6418 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6419 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
6420 | neg find isPrimitive(element); | ||
6421 | } or { | ||
6422 | find interpretation(problem,interpretation); | ||
6423 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6424 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6425 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6426 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6427 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
6428 | neg find isPrimitive(element); | ||
6429 | } or | ||
6430 | { find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } | ||
6431 | /** | ||
6432 | * An element must be an instance of type "EGenericType class". | ||
6433 | */ | ||
6434 | private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6435 | Type.name(type,"EGenericType class"); | ||
6436 | find directInstanceOf(problem,interpretation,element,type); | ||
6437 | } | ||
6438 | private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6439 | find interpretation(problem,interpretation); | ||
6440 | PartialInterpretation.scopes(interpretation,scope); | ||
6441 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6442 | Scope.maxNewElements(scope,0); | ||
6443 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6444 | Type.name(type,"EGenericType class"); | ||
6445 | } | ||
6446 | |||
6447 | /** | ||
6448 | * An element may be an instance of type "EGenericType class". | ||
6449 | */ | ||
6450 | private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6451 | { | ||
6452 | find interpretation(problem,interpretation); | ||
6453 | PartialInterpretation.newElements(interpretation,element); | ||
6454 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6455 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6456 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6457 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
6458 | neg find isPrimitive(element); | ||
6459 | } or { | ||
6460 | find interpretation(problem,interpretation); | ||
6461 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6462 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6463 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
6464 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6465 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
6466 | neg find isPrimitive(element); | ||
6467 | } or | ||
6468 | { find mustInstanceOfEGenericType_class(problem,interpretation,element); } | ||
6469 | /** | ||
6470 | * An element must be an instance of type "ETypeParameter class". | ||
6471 | */ | ||
6472 | private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6473 | Type.name(type,"ETypeParameter class"); | ||
6474 | find directInstanceOf(problem,interpretation,element,type); | ||
6475 | } | ||
6476 | private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6477 | find interpretation(problem,interpretation); | ||
6478 | PartialInterpretation.scopes(interpretation,scope); | ||
6479 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6480 | Scope.maxNewElements(scope,0); | ||
6481 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6482 | Type.name(type,"ETypeParameter class"); | ||
6483 | } | ||
6484 | |||
6485 | /** | ||
6486 | * An element may be an instance of type "ETypeParameter class". | ||
6487 | */ | ||
6488 | private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6489 | { | ||
6490 | find interpretation(problem,interpretation); | ||
6491 | PartialInterpretation.newElements(interpretation,element); | ||
6492 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6493 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6494 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6495 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6496 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6497 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6498 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6499 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6500 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
6501 | neg find isPrimitive(element); | ||
6502 | } or { | ||
6503 | find interpretation(problem,interpretation); | ||
6504 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6505 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6506 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6507 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6508 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6509 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6510 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6511 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6512 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6513 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
6514 | neg find isPrimitive(element); | ||
6515 | } or | ||
6516 | { find mustInstanceOfETypeParameter_class(problem,interpretation,element); } | ||
6517 | /** | ||
6518 | * An element must be an instance of type "EModelElement class DefinedPart". | ||
6519 | */ | ||
6520 | private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6521 | Type.name(type,"EModelElement class DefinedPart"); | ||
6522 | find directInstanceOf(problem,interpretation,element,type); | ||
6523 | } | ||
6524 | private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6525 | find interpretation(problem,interpretation); | ||
6526 | PartialInterpretation.scopes(interpretation,scope); | ||
6527 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6528 | Scope.maxNewElements(scope,0); | ||
6529 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6530 | Type.name(type,"EModelElement class DefinedPart"); | ||
6531 | } | ||
6532 | |||
6533 | /** | ||
6534 | * An element may be an instance of type "EModelElement class DefinedPart". | ||
6535 | */ | ||
6536 | private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6537 | { find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); } | ||
6538 | /** | ||
6539 | * An element must be an instance of type "EModelElement class UndefinedPart". | ||
6540 | */ | ||
6541 | private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6542 | Type.name(type,"EModelElement class UndefinedPart"); | ||
6543 | find directInstanceOf(problem,interpretation,element,type); | ||
6544 | } | ||
6545 | private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6546 | find interpretation(problem,interpretation); | ||
6547 | PartialInterpretation.scopes(interpretation,scope); | ||
6548 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6549 | Scope.maxNewElements(scope,0); | ||
6550 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6551 | Type.name(type,"EModelElement class UndefinedPart"); | ||
6552 | } | ||
6553 | |||
6554 | /** | ||
6555 | * An element may be an instance of type "EModelElement class UndefinedPart". | ||
6556 | */ | ||
6557 | private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6558 | { | ||
6559 | find interpretation(problem,interpretation); | ||
6560 | PartialInterpretation.newElements(interpretation,element); | ||
6561 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
6562 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6563 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6564 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6565 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6566 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
6567 | neg find isPrimitive(element); | ||
6568 | } or { | ||
6569 | find interpretation(problem,interpretation); | ||
6570 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6571 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
6572 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6573 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6574 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6575 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6576 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
6577 | neg find isPrimitive(element); | ||
6578 | } or | ||
6579 | { find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } | ||
6580 | /** | ||
6581 | * An element must be an instance of type "ENamedElement class DefinedPart". | ||
6582 | */ | ||
6583 | private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6584 | Type.name(type,"ENamedElement class DefinedPart"); | ||
6585 | find directInstanceOf(problem,interpretation,element,type); | ||
6586 | } | ||
6587 | private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6588 | find interpretation(problem,interpretation); | ||
6589 | PartialInterpretation.scopes(interpretation,scope); | ||
6590 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6591 | Scope.maxNewElements(scope,0); | ||
6592 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6593 | Type.name(type,"ENamedElement class DefinedPart"); | ||
6594 | } | ||
6595 | |||
6596 | /** | ||
6597 | * An element may be an instance of type "ENamedElement class DefinedPart". | ||
6598 | */ | ||
6599 | private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6600 | { find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); } | ||
6601 | /** | ||
6602 | * An element must be an instance of type "ENamedElement class UndefinedPart". | ||
6603 | */ | ||
6604 | private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6605 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
6606 | find directInstanceOf(problem,interpretation,element,type); | ||
6607 | } | ||
6608 | private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6609 | find interpretation(problem,interpretation); | ||
6610 | PartialInterpretation.scopes(interpretation,scope); | ||
6611 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6612 | Scope.maxNewElements(scope,0); | ||
6613 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6614 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
6615 | } | ||
6616 | |||
6617 | /** | ||
6618 | * An element may be an instance of type "ENamedElement class UndefinedPart". | ||
6619 | */ | ||
6620 | private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6621 | { | ||
6622 | find interpretation(problem,interpretation); | ||
6623 | PartialInterpretation.newElements(interpretation,element); | ||
6624 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6625 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6626 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6627 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6628 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6629 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6630 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6631 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6632 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6633 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
6634 | neg find isPrimitive(element); | ||
6635 | } or { | ||
6636 | find interpretation(problem,interpretation); | ||
6637 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6638 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6639 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6640 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6641 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6642 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6643 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
6644 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6645 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6646 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6647 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
6648 | neg find isPrimitive(element); | ||
6649 | } or | ||
6650 | { find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } | ||
6651 | /** | ||
6652 | * An element must be an instance of type "EPackage class DefinedPart". | ||
6653 | */ | ||
6654 | private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6655 | Type.name(type,"EPackage class DefinedPart"); | ||
6656 | find directInstanceOf(problem,interpretation,element,type); | ||
6657 | } | ||
6658 | private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6659 | find interpretation(problem,interpretation); | ||
6660 | PartialInterpretation.scopes(interpretation,scope); | ||
6661 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6662 | Scope.maxNewElements(scope,0); | ||
6663 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6664 | Type.name(type,"EPackage class DefinedPart"); | ||
6665 | } | ||
6666 | |||
6667 | /** | ||
6668 | * An element may be an instance of type "EPackage class DefinedPart". | ||
6669 | */ | ||
6670 | private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6671 | { find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } | ||
6672 | /** | ||
6673 | * An element must be an instance of type "EPackage class UndefinedPart". | ||
6674 | */ | ||
6675 | private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
6676 | Type.name(type,"EPackage class UndefinedPart"); | ||
6677 | find directInstanceOf(problem,interpretation,element,type); | ||
6678 | } | ||
6679 | private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
6680 | find interpretation(problem,interpretation); | ||
6681 | PartialInterpretation.scopes(interpretation,scope); | ||
6682 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
6683 | Scope.maxNewElements(scope,0); | ||
6684 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
6685 | Type.name(type,"EPackage class UndefinedPart"); | ||
6686 | } | ||
6687 | |||
6688 | /** | ||
6689 | * An element may be an instance of type "EPackage class UndefinedPart". | ||
6690 | */ | ||
6691 | private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
6692 | { | ||
6693 | find interpretation(problem,interpretation); | ||
6694 | PartialInterpretation.newElements(interpretation,element); | ||
6695 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6696 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6697 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6698 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6699 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6700 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6701 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6702 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6703 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
6704 | neg find isPrimitive(element); | ||
6705 | } or { | ||
6706 | find interpretation(problem,interpretation); | ||
6707 | PartialInterpretation.openWorldElements(interpretation,element); | ||
6708 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
6709 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
6710 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
6711 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
6712 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
6713 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
6714 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
6715 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
6716 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
6717 | neg find isPrimitive(element); | ||
6718 | } or | ||
6719 | { find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } | ||
6720 | |||
6721 | ////////// | ||
6722 | // 1.2 Relation Declaration Indexers | ||
6723 | ////////// | ||
6724 | /** | ||
6725 | * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) | ||
6726 | */ | ||
6727 | private pattern mustInRelationeAttributeType_reference_EAttribute( | ||
6728 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6729 | source: DefinedElement, target:DefinedElement) | ||
6730 | { | ||
6731 | find interpretation(problem,interpretation); | ||
6732 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6733 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
6734 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6735 | BinaryElementRelationLink.param1(link,source); | ||
6736 | BinaryElementRelationLink.param2(link,target); | ||
6737 | } | ||
6738 | /** | ||
6739 | * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) | ||
6740 | */ | ||
6741 | private pattern mayInRelationeAttributeType_reference_EAttribute( | ||
6742 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6743 | source: DefinedElement, target:DefinedElement) | ||
6744 | { | ||
6745 | find interpretation(problem,interpretation); | ||
6746 | // The two endpoint of the link have to exist | ||
6747 | find mayExist(problem, interpretation, source); | ||
6748 | find mayExist(problem, interpretation, target); | ||
6749 | // Type consistency | ||
6750 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
6751 | find mayInstanceOfEDataType_class(problem,interpretation,target); | ||
6752 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
6753 | // the upper bound of the multiplicity should be considered. | ||
6754 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); | ||
6755 | check(numberOfExistingReferences < 1); | ||
6756 | } or { | ||
6757 | find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); | ||
6758 | } | ||
6759 | /** | ||
6760 | * Matcher for detecting tuples t where []details reference EAnnotation(source,target) | ||
6761 | */ | ||
6762 | private pattern mustInRelationdetails_reference_EAnnotation( | ||
6763 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6764 | source: DefinedElement, target:DefinedElement) | ||
6765 | { | ||
6766 | find interpretation(problem,interpretation); | ||
6767 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6768 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); | ||
6769 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6770 | BinaryElementRelationLink.param1(link,source); | ||
6771 | BinaryElementRelationLink.param2(link,target); | ||
6772 | } | ||
6773 | /** | ||
6774 | * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) | ||
6775 | */ | ||
6776 | private pattern mayInRelationdetails_reference_EAnnotation( | ||
6777 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6778 | source: DefinedElement, target:DefinedElement) | ||
6779 | { | ||
6780 | find interpretation(problem,interpretation); | ||
6781 | // The two endpoint of the link have to exist | ||
6782 | find mayExist(problem, interpretation, source); | ||
6783 | find mayExist(problem, interpretation, target); | ||
6784 | // Type consistency | ||
6785 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
6786 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); | ||
6787 | // The reference is containment, then a new reference cannot be create if: | ||
6788 | // 1. Multiple parents | ||
6789 | neg find mustContains4(problem,interpretation,_,target); | ||
6790 | // 2. Circle in the containment hierarchy | ||
6791 | neg find mustTransitiveContains(source,target); | ||
6792 | } or { | ||
6793 | find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); | ||
6794 | } | ||
6795 | /** | ||
6796 | * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) | ||
6797 | */ | ||
6798 | private pattern mustInRelationeModelElement_reference_EAnnotation( | ||
6799 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6800 | source: DefinedElement, target:DefinedElement) | ||
6801 | { | ||
6802 | find interpretation(problem,interpretation); | ||
6803 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6804 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); | ||
6805 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6806 | BinaryElementRelationLink.param1(link,source); | ||
6807 | BinaryElementRelationLink.param2(link,target); | ||
6808 | } | ||
6809 | /** | ||
6810 | * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) | ||
6811 | */ | ||
6812 | private pattern mayInRelationeModelElement_reference_EAnnotation( | ||
6813 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6814 | source: DefinedElement, target:DefinedElement) | ||
6815 | { | ||
6816 | find interpretation(problem,interpretation); | ||
6817 | // The two endpoint of the link have to exist | ||
6818 | find mayExist(problem, interpretation, source); | ||
6819 | find mayExist(problem, interpretation, target); | ||
6820 | // Type consistency | ||
6821 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
6822 | find mayInstanceOfEModelElement_class(problem,interpretation,target); | ||
6823 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
6824 | // the upper bound of the multiplicity should be considered. | ||
6825 | numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); | ||
6826 | check(numberOfExistingReferences < 1); | ||
6827 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
6828 | // 1. Multiple parents | ||
6829 | neg find mustContains4(problem,interpretation,source,_); | ||
6830 | // 2. Circle in the containment hierarchy | ||
6831 | neg find mustTransitiveContains(source,target); | ||
6832 | } or { | ||
6833 | find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); | ||
6834 | } | ||
6835 | /** | ||
6836 | * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) | ||
6837 | */ | ||
6838 | private pattern mustInRelationcontents_reference_EAnnotation( | ||
6839 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6840 | source: DefinedElement, target:DefinedElement) | ||
6841 | { | ||
6842 | find interpretation(problem,interpretation); | ||
6843 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6844 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); | ||
6845 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6846 | BinaryElementRelationLink.param1(link,source); | ||
6847 | BinaryElementRelationLink.param2(link,target); | ||
6848 | } | ||
6849 | /** | ||
6850 | * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) | ||
6851 | */ | ||
6852 | private pattern mayInRelationcontents_reference_EAnnotation( | ||
6853 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6854 | source: DefinedElement, target:DefinedElement) | ||
6855 | { | ||
6856 | find interpretation(problem,interpretation); | ||
6857 | // The two endpoint of the link have to exist | ||
6858 | find mayExist(problem, interpretation, source); | ||
6859 | find mayExist(problem, interpretation, target); | ||
6860 | // Type consistency | ||
6861 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
6862 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
6863 | // The reference is containment, then a new reference cannot be create if: | ||
6864 | // 1. Multiple parents | ||
6865 | neg find mustContains4(problem,interpretation,_,target); | ||
6866 | // 2. Circle in the containment hierarchy | ||
6867 | neg find mustTransitiveContains(source,target); | ||
6868 | } or { | ||
6869 | find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); | ||
6870 | } | ||
6871 | /** | ||
6872 | * Matcher for detecting tuples t where []references reference EAnnotation(source,target) | ||
6873 | */ | ||
6874 | private pattern mustInRelationreferences_reference_EAnnotation( | ||
6875 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6876 | source: DefinedElement, target:DefinedElement) | ||
6877 | { | ||
6878 | find interpretation(problem,interpretation); | ||
6879 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6880 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
6881 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6882 | BinaryElementRelationLink.param1(link,source); | ||
6883 | BinaryElementRelationLink.param2(link,target); | ||
6884 | } | ||
6885 | /** | ||
6886 | * Matcher for detecting tuples t where <>references reference EAnnotation(source,target) | ||
6887 | */ | ||
6888 | private pattern mayInRelationreferences_reference_EAnnotation( | ||
6889 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6890 | source: DefinedElement, target:DefinedElement) | ||
6891 | { | ||
6892 | find interpretation(problem,interpretation); | ||
6893 | // The two endpoint of the link have to exist | ||
6894 | find mayExist(problem, interpretation, source); | ||
6895 | find mayExist(problem, interpretation, target); | ||
6896 | // Type consistency | ||
6897 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
6898 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
6899 | } or { | ||
6900 | find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target); | ||
6901 | } | ||
6902 | /** | ||
6903 | * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target) | ||
6904 | */ | ||
6905 | private pattern mustInRelationeSuperTypes_reference_EClass( | ||
6906 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6907 | source: DefinedElement, target:DefinedElement) | ||
6908 | { | ||
6909 | find interpretation(problem,interpretation); | ||
6910 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6911 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
6912 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6913 | BinaryElementRelationLink.param1(link,source); | ||
6914 | BinaryElementRelationLink.param2(link,target); | ||
6915 | } | ||
6916 | /** | ||
6917 | * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target) | ||
6918 | */ | ||
6919 | private pattern mayInRelationeSuperTypes_reference_EClass( | ||
6920 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6921 | source: DefinedElement, target:DefinedElement) | ||
6922 | { | ||
6923 | find interpretation(problem,interpretation); | ||
6924 | // The two endpoint of the link have to exist | ||
6925 | find mayExist(problem, interpretation, source); | ||
6926 | find mayExist(problem, interpretation, target); | ||
6927 | // Type consistency | ||
6928 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
6929 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
6930 | } or { | ||
6931 | find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
6932 | } | ||
6933 | /** | ||
6934 | * Matcher for detecting tuples t where []eOperations reference EClass(source,target) | ||
6935 | */ | ||
6936 | private pattern mustInRelationeOperations_reference_EClass( | ||
6937 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6938 | source: DefinedElement, target:DefinedElement) | ||
6939 | { | ||
6940 | find interpretation(problem,interpretation); | ||
6941 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6942 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); | ||
6943 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6944 | BinaryElementRelationLink.param1(link,source); | ||
6945 | BinaryElementRelationLink.param2(link,target); | ||
6946 | } | ||
6947 | /** | ||
6948 | * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) | ||
6949 | */ | ||
6950 | private pattern mayInRelationeOperations_reference_EClass( | ||
6951 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6952 | source: DefinedElement, target:DefinedElement) | ||
6953 | { | ||
6954 | find interpretation(problem,interpretation); | ||
6955 | // The two endpoint of the link have to exist | ||
6956 | find mayExist(problem, interpretation, source); | ||
6957 | find mayExist(problem, interpretation, target); | ||
6958 | // Type consistency | ||
6959 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
6960 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
6961 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
6962 | // the upper bound of the opposite reference multiplicity should be considered. | ||
6963 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); | ||
6964 | check(numberOfExistingOppositeReferences < 1); | ||
6965 | // The reference is containment, then a new reference cannot be create if: | ||
6966 | // 1. Multiple parents | ||
6967 | neg find mustContains4(problem,interpretation,_,target); | ||
6968 | // 2. Circle in the containment hierarchy | ||
6969 | neg find mustTransitiveContains(source,target); | ||
6970 | } or { | ||
6971 | find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); | ||
6972 | } | ||
6973 | /** | ||
6974 | * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target) | ||
6975 | */ | ||
6976 | private pattern mustInRelationeAllAttributes_reference_EClass( | ||
6977 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6978 | source: DefinedElement, target:DefinedElement) | ||
6979 | { | ||
6980 | find interpretation(problem,interpretation); | ||
6981 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
6982 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
6983 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
6984 | BinaryElementRelationLink.param1(link,source); | ||
6985 | BinaryElementRelationLink.param2(link,target); | ||
6986 | } | ||
6987 | /** | ||
6988 | * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target) | ||
6989 | */ | ||
6990 | private pattern mayInRelationeAllAttributes_reference_EClass( | ||
6991 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
6992 | source: DefinedElement, target:DefinedElement) | ||
6993 | { | ||
6994 | find interpretation(problem,interpretation); | ||
6995 | // The two endpoint of the link have to exist | ||
6996 | find mayExist(problem, interpretation, source); | ||
6997 | find mayExist(problem, interpretation, target); | ||
6998 | // Type consistency | ||
6999 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7000 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
7001 | } or { | ||
7002 | find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target); | ||
7003 | } | ||
7004 | /** | ||
7005 | * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target) | ||
7006 | */ | ||
7007 | private pattern mustInRelationeAllReferences_reference_EClass( | ||
7008 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7009 | source: DefinedElement, target:DefinedElement) | ||
7010 | { | ||
7011 | find interpretation(problem,interpretation); | ||
7012 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7013 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
7014 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7015 | BinaryElementRelationLink.param1(link,source); | ||
7016 | BinaryElementRelationLink.param2(link,target); | ||
7017 | } | ||
7018 | /** | ||
7019 | * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target) | ||
7020 | */ | ||
7021 | private pattern mayInRelationeAllReferences_reference_EClass( | ||
7022 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7023 | source: DefinedElement, target:DefinedElement) | ||
7024 | { | ||
7025 | find interpretation(problem,interpretation); | ||
7026 | // The two endpoint of the link have to exist | ||
7027 | find mayExist(problem, interpretation, source); | ||
7028 | find mayExist(problem, interpretation, target); | ||
7029 | // Type consistency | ||
7030 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7031 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
7032 | } or { | ||
7033 | find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target); | ||
7034 | } | ||
7035 | /** | ||
7036 | * Matcher for detecting tuples t where []eReferences reference EClass(source,target) | ||
7037 | */ | ||
7038 | private pattern mustInRelationeReferences_reference_EClass( | ||
7039 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7040 | source: DefinedElement, target:DefinedElement) | ||
7041 | { | ||
7042 | find interpretation(problem,interpretation); | ||
7043 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7044 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
7045 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7046 | BinaryElementRelationLink.param1(link,source); | ||
7047 | BinaryElementRelationLink.param2(link,target); | ||
7048 | } | ||
7049 | /** | ||
7050 | * Matcher for detecting tuples t where <>eReferences reference EClass(source,target) | ||
7051 | */ | ||
7052 | private pattern mayInRelationeReferences_reference_EClass( | ||
7053 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7054 | source: DefinedElement, target:DefinedElement) | ||
7055 | { | ||
7056 | find interpretation(problem,interpretation); | ||
7057 | // The two endpoint of the link have to exist | ||
7058 | find mayExist(problem, interpretation, source); | ||
7059 | find mayExist(problem, interpretation, target); | ||
7060 | // Type consistency | ||
7061 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7062 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
7063 | } or { | ||
7064 | find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target); | ||
7065 | } | ||
7066 | /** | ||
7067 | * Matcher for detecting tuples t where []eAttributes reference EClass(source,target) | ||
7068 | */ | ||
7069 | private pattern mustInRelationeAttributes_reference_EClass( | ||
7070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7071 | source: DefinedElement, target:DefinedElement) | ||
7072 | { | ||
7073 | find interpretation(problem,interpretation); | ||
7074 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7075 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
7076 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7077 | BinaryElementRelationLink.param1(link,source); | ||
7078 | BinaryElementRelationLink.param2(link,target); | ||
7079 | } | ||
7080 | /** | ||
7081 | * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target) | ||
7082 | */ | ||
7083 | private pattern mayInRelationeAttributes_reference_EClass( | ||
7084 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7085 | source: DefinedElement, target:DefinedElement) | ||
7086 | { | ||
7087 | find interpretation(problem,interpretation); | ||
7088 | // The two endpoint of the link have to exist | ||
7089 | find mayExist(problem, interpretation, source); | ||
7090 | find mayExist(problem, interpretation, target); | ||
7091 | // Type consistency | ||
7092 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7093 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
7094 | } or { | ||
7095 | find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target); | ||
7096 | } | ||
7097 | /** | ||
7098 | * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target) | ||
7099 | */ | ||
7100 | private pattern mustInRelationeAllContainments_reference_EClass( | ||
7101 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7102 | source: DefinedElement, target:DefinedElement) | ||
7103 | { | ||
7104 | find interpretation(problem,interpretation); | ||
7105 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7106 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
7107 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7108 | BinaryElementRelationLink.param1(link,source); | ||
7109 | BinaryElementRelationLink.param2(link,target); | ||
7110 | } | ||
7111 | /** | ||
7112 | * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target) | ||
7113 | */ | ||
7114 | private pattern mayInRelationeAllContainments_reference_EClass( | ||
7115 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7116 | source: DefinedElement, target:DefinedElement) | ||
7117 | { | ||
7118 | find interpretation(problem,interpretation); | ||
7119 | // The two endpoint of the link have to exist | ||
7120 | find mayExist(problem, interpretation, source); | ||
7121 | find mayExist(problem, interpretation, target); | ||
7122 | // Type consistency | ||
7123 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7124 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
7125 | } or { | ||
7126 | find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target); | ||
7127 | } | ||
7128 | /** | ||
7129 | * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target) | ||
7130 | */ | ||
7131 | private pattern mustInRelationeAllOperations_reference_EClass( | ||
7132 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7133 | source: DefinedElement, target:DefinedElement) | ||
7134 | { | ||
7135 | find interpretation(problem,interpretation); | ||
7136 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7137 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
7138 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7139 | BinaryElementRelationLink.param1(link,source); | ||
7140 | BinaryElementRelationLink.param2(link,target); | ||
7141 | } | ||
7142 | /** | ||
7143 | * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target) | ||
7144 | */ | ||
7145 | private pattern mayInRelationeAllOperations_reference_EClass( | ||
7146 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7147 | source: DefinedElement, target:DefinedElement) | ||
7148 | { | ||
7149 | find interpretation(problem,interpretation); | ||
7150 | // The two endpoint of the link have to exist | ||
7151 | find mayExist(problem, interpretation, source); | ||
7152 | find mayExist(problem, interpretation, target); | ||
7153 | // Type consistency | ||
7154 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7155 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
7156 | } or { | ||
7157 | find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target); | ||
7158 | } | ||
7159 | /** | ||
7160 | * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) | ||
7161 | */ | ||
7162 | private pattern mustInRelationeAllStructuralFeatures_reference_EClass( | ||
7163 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7164 | source: DefinedElement, target:DefinedElement) | ||
7165 | { | ||
7166 | find interpretation(problem,interpretation); | ||
7167 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7168 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
7169 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7170 | BinaryElementRelationLink.param1(link,source); | ||
7171 | BinaryElementRelationLink.param2(link,target); | ||
7172 | } | ||
7173 | /** | ||
7174 | * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) | ||
7175 | */ | ||
7176 | private pattern mayInRelationeAllStructuralFeatures_reference_EClass( | ||
7177 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7178 | source: DefinedElement, target:DefinedElement) | ||
7179 | { | ||
7180 | find interpretation(problem,interpretation); | ||
7181 | // The two endpoint of the link have to exist | ||
7182 | find mayExist(problem, interpretation, source); | ||
7183 | find mayExist(problem, interpretation, target); | ||
7184 | // Type consistency | ||
7185 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7186 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
7187 | } or { | ||
7188 | find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
7189 | } | ||
7190 | /** | ||
7191 | * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) | ||
7192 | */ | ||
7193 | private pattern mustInRelationeAllSuperTypes_reference_EClass( | ||
7194 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7195 | source: DefinedElement, target:DefinedElement) | ||
7196 | { | ||
7197 | find interpretation(problem,interpretation); | ||
7198 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7199 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
7200 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7201 | BinaryElementRelationLink.param1(link,source); | ||
7202 | BinaryElementRelationLink.param2(link,target); | ||
7203 | } | ||
7204 | /** | ||
7205 | * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) | ||
7206 | */ | ||
7207 | private pattern mayInRelationeAllSuperTypes_reference_EClass( | ||
7208 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7209 | source: DefinedElement, target:DefinedElement) | ||
7210 | { | ||
7211 | find interpretation(problem,interpretation); | ||
7212 | // The two endpoint of the link have to exist | ||
7213 | find mayExist(problem, interpretation, source); | ||
7214 | find mayExist(problem, interpretation, target); | ||
7215 | // Type consistency | ||
7216 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7217 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
7218 | } or { | ||
7219 | find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
7220 | } | ||
7221 | /** | ||
7222 | * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) | ||
7223 | */ | ||
7224 | private pattern mustInRelationeIDAttribute_reference_EClass( | ||
7225 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7226 | source: DefinedElement, target:DefinedElement) | ||
7227 | { | ||
7228 | find interpretation(problem,interpretation); | ||
7229 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7230 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
7231 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7232 | BinaryElementRelationLink.param1(link,source); | ||
7233 | BinaryElementRelationLink.param2(link,target); | ||
7234 | } | ||
7235 | /** | ||
7236 | * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) | ||
7237 | */ | ||
7238 | private pattern mayInRelationeIDAttribute_reference_EClass( | ||
7239 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7240 | source: DefinedElement, target:DefinedElement) | ||
7241 | { | ||
7242 | find interpretation(problem,interpretation); | ||
7243 | // The two endpoint of the link have to exist | ||
7244 | find mayExist(problem, interpretation, source); | ||
7245 | find mayExist(problem, interpretation, target); | ||
7246 | // Type consistency | ||
7247 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7248 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
7249 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7250 | // the upper bound of the multiplicity should be considered. | ||
7251 | numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); | ||
7252 | check(numberOfExistingReferences < 1); | ||
7253 | } or { | ||
7254 | find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); | ||
7255 | } | ||
7256 | /** | ||
7257 | * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) | ||
7258 | */ | ||
7259 | private pattern mustInRelationeStructuralFeatures_reference_EClass( | ||
7260 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7261 | source: DefinedElement, target:DefinedElement) | ||
7262 | { | ||
7263 | find interpretation(problem,interpretation); | ||
7264 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7265 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); | ||
7266 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7267 | BinaryElementRelationLink.param1(link,source); | ||
7268 | BinaryElementRelationLink.param2(link,target); | ||
7269 | } | ||
7270 | /** | ||
7271 | * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) | ||
7272 | */ | ||
7273 | private pattern mayInRelationeStructuralFeatures_reference_EClass( | ||
7274 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7275 | source: DefinedElement, target:DefinedElement) | ||
7276 | { | ||
7277 | find interpretation(problem,interpretation); | ||
7278 | // The two endpoint of the link have to exist | ||
7279 | find mayExist(problem, interpretation, source); | ||
7280 | find mayExist(problem, interpretation, target); | ||
7281 | // Type consistency | ||
7282 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7283 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
7284 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7285 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7286 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); | ||
7287 | check(numberOfExistingOppositeReferences < 1); | ||
7288 | // The reference is containment, then a new reference cannot be create if: | ||
7289 | // 1. Multiple parents | ||
7290 | neg find mustContains4(problem,interpretation,_,target); | ||
7291 | // 2. Circle in the containment hierarchy | ||
7292 | neg find mustTransitiveContains(source,target); | ||
7293 | } or { | ||
7294 | find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
7295 | } | ||
7296 | /** | ||
7297 | * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target) | ||
7298 | */ | ||
7299 | private pattern mustInRelationeGenericSuperTypes_reference_EClass( | ||
7300 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7301 | source: DefinedElement, target:DefinedElement) | ||
7302 | { | ||
7303 | find interpretation(problem,interpretation); | ||
7304 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7305 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass"); | ||
7306 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7307 | BinaryElementRelationLink.param1(link,source); | ||
7308 | BinaryElementRelationLink.param2(link,target); | ||
7309 | } | ||
7310 | /** | ||
7311 | * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target) | ||
7312 | */ | ||
7313 | private pattern mayInRelationeGenericSuperTypes_reference_EClass( | ||
7314 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7315 | source: DefinedElement, target:DefinedElement) | ||
7316 | { | ||
7317 | find interpretation(problem,interpretation); | ||
7318 | // The two endpoint of the link have to exist | ||
7319 | find mayExist(problem, interpretation, source); | ||
7320 | find mayExist(problem, interpretation, target); | ||
7321 | // Type consistency | ||
7322 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7323 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
7324 | // The reference is containment, then a new reference cannot be create if: | ||
7325 | // 1. Multiple parents | ||
7326 | neg find mustContains4(problem,interpretation,_,target); | ||
7327 | // 2. Circle in the containment hierarchy | ||
7328 | neg find mustTransitiveContains(source,target); | ||
7329 | } or { | ||
7330 | find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
7331 | } | ||
7332 | /** | ||
7333 | * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target) | ||
7334 | */ | ||
7335 | private pattern mustInRelationeAllGenericSuperTypes_reference_EClass( | ||
7336 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7337 | source: DefinedElement, target:DefinedElement) | ||
7338 | { | ||
7339 | find interpretation(problem,interpretation); | ||
7340 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7341 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
7342 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7343 | BinaryElementRelationLink.param1(link,source); | ||
7344 | BinaryElementRelationLink.param2(link,target); | ||
7345 | } | ||
7346 | /** | ||
7347 | * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target) | ||
7348 | */ | ||
7349 | private pattern mayInRelationeAllGenericSuperTypes_reference_EClass( | ||
7350 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7351 | source: DefinedElement, target:DefinedElement) | ||
7352 | { | ||
7353 | find interpretation(problem,interpretation); | ||
7354 | // The two endpoint of the link have to exist | ||
7355 | find mayExist(problem, interpretation, source); | ||
7356 | find mayExist(problem, interpretation, target); | ||
7357 | // Type consistency | ||
7358 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
7359 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
7360 | } or { | ||
7361 | find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
7362 | } | ||
7363 | /** | ||
7364 | * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) | ||
7365 | */ | ||
7366 | private pattern mustInRelationePackage_reference_EClassifier( | ||
7367 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7368 | source: DefinedElement, target:DefinedElement) | ||
7369 | { | ||
7370 | find interpretation(problem,interpretation); | ||
7371 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7372 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); | ||
7373 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7374 | BinaryElementRelationLink.param1(link,source); | ||
7375 | BinaryElementRelationLink.param2(link,target); | ||
7376 | } | ||
7377 | /** | ||
7378 | * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) | ||
7379 | */ | ||
7380 | private pattern mayInRelationePackage_reference_EClassifier( | ||
7381 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7382 | source: DefinedElement, target:DefinedElement) | ||
7383 | { | ||
7384 | find interpretation(problem,interpretation); | ||
7385 | // The two endpoint of the link have to exist | ||
7386 | find mayExist(problem, interpretation, source); | ||
7387 | find mayExist(problem, interpretation, target); | ||
7388 | // Type consistency | ||
7389 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
7390 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
7391 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7392 | // the upper bound of the multiplicity should be considered. | ||
7393 | numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); | ||
7394 | check(numberOfExistingReferences < 1); | ||
7395 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
7396 | // 1. Multiple parents | ||
7397 | neg find mustContains4(problem,interpretation,source,_); | ||
7398 | // 2. Circle in the containment hierarchy | ||
7399 | neg find mustTransitiveContains(source,target); | ||
7400 | } or { | ||
7401 | find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); | ||
7402 | } | ||
7403 | /** | ||
7404 | * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) | ||
7405 | */ | ||
7406 | private pattern mustInRelationeTypeParameters_reference_EClassifier( | ||
7407 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7408 | source: DefinedElement, target:DefinedElement) | ||
7409 | { | ||
7410 | find interpretation(problem,interpretation); | ||
7411 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7412 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); | ||
7413 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7414 | BinaryElementRelationLink.param1(link,source); | ||
7415 | BinaryElementRelationLink.param2(link,target); | ||
7416 | } | ||
7417 | /** | ||
7418 | * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) | ||
7419 | */ | ||
7420 | private pattern mayInRelationeTypeParameters_reference_EClassifier( | ||
7421 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7422 | source: DefinedElement, target:DefinedElement) | ||
7423 | { | ||
7424 | find interpretation(problem,interpretation); | ||
7425 | // The two endpoint of the link have to exist | ||
7426 | find mayExist(problem, interpretation, source); | ||
7427 | find mayExist(problem, interpretation, target); | ||
7428 | // Type consistency | ||
7429 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
7430 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
7431 | // The reference is containment, then a new reference cannot be create if: | ||
7432 | // 1. Multiple parents | ||
7433 | neg find mustContains4(problem,interpretation,_,target); | ||
7434 | // 2. Circle in the containment hierarchy | ||
7435 | neg find mustTransitiveContains(source,target); | ||
7436 | } or { | ||
7437 | find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); | ||
7438 | } | ||
7439 | /** | ||
7440 | * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) | ||
7441 | */ | ||
7442 | private pattern mustInRelationeLiterals_reference_EEnum( | ||
7443 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7444 | source: DefinedElement, target:DefinedElement) | ||
7445 | { | ||
7446 | find interpretation(problem,interpretation); | ||
7447 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7448 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); | ||
7449 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7450 | BinaryElementRelationLink.param1(link,source); | ||
7451 | BinaryElementRelationLink.param2(link,target); | ||
7452 | } | ||
7453 | /** | ||
7454 | * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) | ||
7455 | */ | ||
7456 | private pattern mayInRelationeLiterals_reference_EEnum( | ||
7457 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7458 | source: DefinedElement, target:DefinedElement) | ||
7459 | { | ||
7460 | find interpretation(problem,interpretation); | ||
7461 | // The two endpoint of the link have to exist | ||
7462 | find mayExist(problem, interpretation, source); | ||
7463 | find mayExist(problem, interpretation, target); | ||
7464 | // Type consistency | ||
7465 | find mayInstanceOfEEnum_class(problem,interpretation,source); | ||
7466 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); | ||
7467 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7468 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7469 | numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); | ||
7470 | check(numberOfExistingOppositeReferences < 1); | ||
7471 | // The reference is containment, then a new reference cannot be create if: | ||
7472 | // 1. Multiple parents | ||
7473 | neg find mustContains4(problem,interpretation,_,target); | ||
7474 | // 2. Circle in the containment hierarchy | ||
7475 | neg find mustTransitiveContains(source,target); | ||
7476 | } or { | ||
7477 | find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); | ||
7478 | } | ||
7479 | /** | ||
7480 | * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) | ||
7481 | */ | ||
7482 | private pattern mustInRelationeEnum_reference_EEnumLiteral( | ||
7483 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7484 | source: DefinedElement, target:DefinedElement) | ||
7485 | { | ||
7486 | find interpretation(problem,interpretation); | ||
7487 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7488 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); | ||
7489 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7490 | BinaryElementRelationLink.param1(link,source); | ||
7491 | BinaryElementRelationLink.param2(link,target); | ||
7492 | } | ||
7493 | /** | ||
7494 | * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) | ||
7495 | */ | ||
7496 | private pattern mayInRelationeEnum_reference_EEnumLiteral( | ||
7497 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7498 | source: DefinedElement, target:DefinedElement) | ||
7499 | { | ||
7500 | find interpretation(problem,interpretation); | ||
7501 | // The two endpoint of the link have to exist | ||
7502 | find mayExist(problem, interpretation, source); | ||
7503 | find mayExist(problem, interpretation, target); | ||
7504 | // Type consistency | ||
7505 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
7506 | find mayInstanceOfEEnum_class(problem,interpretation,target); | ||
7507 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7508 | // the upper bound of the multiplicity should be considered. | ||
7509 | numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); | ||
7510 | check(numberOfExistingReferences < 1); | ||
7511 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
7512 | // 1. Multiple parents | ||
7513 | neg find mustContains4(problem,interpretation,source,_); | ||
7514 | // 2. Circle in the containment hierarchy | ||
7515 | neg find mustTransitiveContains(source,target); | ||
7516 | } or { | ||
7517 | find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); | ||
7518 | } | ||
7519 | /** | ||
7520 | * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) | ||
7521 | */ | ||
7522 | private pattern mustInRelationeAnnotations_reference_EModelElement( | ||
7523 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7524 | source: DefinedElement, target:DefinedElement) | ||
7525 | { | ||
7526 | find interpretation(problem,interpretation); | ||
7527 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7528 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); | ||
7529 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7530 | BinaryElementRelationLink.param1(link,source); | ||
7531 | BinaryElementRelationLink.param2(link,target); | ||
7532 | } | ||
7533 | /** | ||
7534 | * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) | ||
7535 | */ | ||
7536 | private pattern mayInRelationeAnnotations_reference_EModelElement( | ||
7537 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7538 | source: DefinedElement, target:DefinedElement) | ||
7539 | { | ||
7540 | find interpretation(problem,interpretation); | ||
7541 | // The two endpoint of the link have to exist | ||
7542 | find mayExist(problem, interpretation, source); | ||
7543 | find mayExist(problem, interpretation, target); | ||
7544 | // Type consistency | ||
7545 | find mayInstanceOfEModelElement_class(problem,interpretation,source); | ||
7546 | find mayInstanceOfEAnnotation_class(problem,interpretation,target); | ||
7547 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7548 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7549 | numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); | ||
7550 | check(numberOfExistingOppositeReferences < 1); | ||
7551 | // The reference is containment, then a new reference cannot be create if: | ||
7552 | // 1. Multiple parents | ||
7553 | neg find mustContains4(problem,interpretation,_,target); | ||
7554 | // 2. Circle in the containment hierarchy | ||
7555 | neg find mustTransitiveContains(source,target); | ||
7556 | } or { | ||
7557 | find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); | ||
7558 | } | ||
7559 | /** | ||
7560 | * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) | ||
7561 | */ | ||
7562 | private pattern mustInRelationeContainingClass_reference_EOperation( | ||
7563 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7564 | source: DefinedElement, target:DefinedElement) | ||
7565 | { | ||
7566 | find interpretation(problem,interpretation); | ||
7567 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7568 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); | ||
7569 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7570 | BinaryElementRelationLink.param1(link,source); | ||
7571 | BinaryElementRelationLink.param2(link,target); | ||
7572 | } | ||
7573 | /** | ||
7574 | * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) | ||
7575 | */ | ||
7576 | private pattern mayInRelationeContainingClass_reference_EOperation( | ||
7577 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7578 | source: DefinedElement, target:DefinedElement) | ||
7579 | { | ||
7580 | find interpretation(problem,interpretation); | ||
7581 | // The two endpoint of the link have to exist | ||
7582 | find mayExist(problem, interpretation, source); | ||
7583 | find mayExist(problem, interpretation, target); | ||
7584 | // Type consistency | ||
7585 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
7586 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
7587 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7588 | // the upper bound of the multiplicity should be considered. | ||
7589 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); | ||
7590 | check(numberOfExistingReferences < 1); | ||
7591 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
7592 | // 1. Multiple parents | ||
7593 | neg find mustContains4(problem,interpretation,source,_); | ||
7594 | // 2. Circle in the containment hierarchy | ||
7595 | neg find mustTransitiveContains(source,target); | ||
7596 | } or { | ||
7597 | find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); | ||
7598 | } | ||
7599 | /** | ||
7600 | * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) | ||
7601 | */ | ||
7602 | private pattern mustInRelationeTypeParameters_reference_EOperation( | ||
7603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7604 | source: DefinedElement, target:DefinedElement) | ||
7605 | { | ||
7606 | find interpretation(problem,interpretation); | ||
7607 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7608 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); | ||
7609 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7610 | BinaryElementRelationLink.param1(link,source); | ||
7611 | BinaryElementRelationLink.param2(link,target); | ||
7612 | } | ||
7613 | /** | ||
7614 | * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) | ||
7615 | */ | ||
7616 | private pattern mayInRelationeTypeParameters_reference_EOperation( | ||
7617 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7618 | source: DefinedElement, target:DefinedElement) | ||
7619 | { | ||
7620 | find interpretation(problem,interpretation); | ||
7621 | // The two endpoint of the link have to exist | ||
7622 | find mayExist(problem, interpretation, source); | ||
7623 | find mayExist(problem, interpretation, target); | ||
7624 | // Type consistency | ||
7625 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
7626 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
7627 | // The reference is containment, then a new reference cannot be create if: | ||
7628 | // 1. Multiple parents | ||
7629 | neg find mustContains4(problem,interpretation,_,target); | ||
7630 | // 2. Circle in the containment hierarchy | ||
7631 | neg find mustTransitiveContains(source,target); | ||
7632 | } or { | ||
7633 | find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); | ||
7634 | } | ||
7635 | /** | ||
7636 | * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) | ||
7637 | */ | ||
7638 | private pattern mustInRelationeParameters_reference_EOperation( | ||
7639 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7640 | source: DefinedElement, target:DefinedElement) | ||
7641 | { | ||
7642 | find interpretation(problem,interpretation); | ||
7643 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7644 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); | ||
7645 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7646 | BinaryElementRelationLink.param1(link,source); | ||
7647 | BinaryElementRelationLink.param2(link,target); | ||
7648 | } | ||
7649 | /** | ||
7650 | * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) | ||
7651 | */ | ||
7652 | private pattern mayInRelationeParameters_reference_EOperation( | ||
7653 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7654 | source: DefinedElement, target:DefinedElement) | ||
7655 | { | ||
7656 | find interpretation(problem,interpretation); | ||
7657 | // The two endpoint of the link have to exist | ||
7658 | find mayExist(problem, interpretation, source); | ||
7659 | find mayExist(problem, interpretation, target); | ||
7660 | // Type consistency | ||
7661 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
7662 | find mayInstanceOfEParameter_class(problem,interpretation,target); | ||
7663 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7664 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7665 | numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); | ||
7666 | check(numberOfExistingOppositeReferences < 1); | ||
7667 | // The reference is containment, then a new reference cannot be create if: | ||
7668 | // 1. Multiple parents | ||
7669 | neg find mustContains4(problem,interpretation,_,target); | ||
7670 | // 2. Circle in the containment hierarchy | ||
7671 | neg find mustTransitiveContains(source,target); | ||
7672 | } or { | ||
7673 | find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); | ||
7674 | } | ||
7675 | /** | ||
7676 | * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target) | ||
7677 | */ | ||
7678 | private pattern mustInRelationeExceptions_reference_EOperation( | ||
7679 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7680 | source: DefinedElement, target:DefinedElement) | ||
7681 | { | ||
7682 | find interpretation(problem,interpretation); | ||
7683 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7684 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
7685 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7686 | BinaryElementRelationLink.param1(link,source); | ||
7687 | BinaryElementRelationLink.param2(link,target); | ||
7688 | } | ||
7689 | /** | ||
7690 | * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) | ||
7691 | */ | ||
7692 | private pattern mayInRelationeExceptions_reference_EOperation( | ||
7693 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7694 | source: DefinedElement, target:DefinedElement) | ||
7695 | { | ||
7696 | find interpretation(problem,interpretation); | ||
7697 | // The two endpoint of the link have to exist | ||
7698 | find mayExist(problem, interpretation, source); | ||
7699 | find mayExist(problem, interpretation, target); | ||
7700 | // Type consistency | ||
7701 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
7702 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
7703 | } or { | ||
7704 | find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); | ||
7705 | } | ||
7706 | /** | ||
7707 | * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target) | ||
7708 | */ | ||
7709 | private pattern mustInRelationeGenericExceptions_reference_EOperation( | ||
7710 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7711 | source: DefinedElement, target:DefinedElement) | ||
7712 | { | ||
7713 | find interpretation(problem,interpretation); | ||
7714 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7715 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); | ||
7716 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7717 | BinaryElementRelationLink.param1(link,source); | ||
7718 | BinaryElementRelationLink.param2(link,target); | ||
7719 | } | ||
7720 | /** | ||
7721 | * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) | ||
7722 | */ | ||
7723 | private pattern mayInRelationeGenericExceptions_reference_EOperation( | ||
7724 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7725 | source: DefinedElement, target:DefinedElement) | ||
7726 | { | ||
7727 | find interpretation(problem,interpretation); | ||
7728 | // The two endpoint of the link have to exist | ||
7729 | find mayExist(problem, interpretation, source); | ||
7730 | find mayExist(problem, interpretation, target); | ||
7731 | // Type consistency | ||
7732 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
7733 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
7734 | // The reference is containment, then a new reference cannot be create if: | ||
7735 | // 1. Multiple parents | ||
7736 | neg find mustContains4(problem,interpretation,_,target); | ||
7737 | // 2. Circle in the containment hierarchy | ||
7738 | neg find mustTransitiveContains(source,target); | ||
7739 | } or { | ||
7740 | find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); | ||
7741 | } | ||
7742 | /** | ||
7743 | * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) | ||
7744 | */ | ||
7745 | private pattern mustInRelationeClassifiers_reference_EPackage( | ||
7746 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7747 | source: DefinedElement, target:DefinedElement) | ||
7748 | { | ||
7749 | find interpretation(problem,interpretation); | ||
7750 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7751 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); | ||
7752 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7753 | BinaryElementRelationLink.param1(link,source); | ||
7754 | BinaryElementRelationLink.param2(link,target); | ||
7755 | } | ||
7756 | /** | ||
7757 | * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) | ||
7758 | */ | ||
7759 | private pattern mayInRelationeClassifiers_reference_EPackage( | ||
7760 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7761 | source: DefinedElement, target:DefinedElement) | ||
7762 | { | ||
7763 | find interpretation(problem,interpretation); | ||
7764 | // The two endpoint of the link have to exist | ||
7765 | find mayExist(problem, interpretation, source); | ||
7766 | find mayExist(problem, interpretation, target); | ||
7767 | // Type consistency | ||
7768 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
7769 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
7770 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7771 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7772 | numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); | ||
7773 | check(numberOfExistingOppositeReferences < 1); | ||
7774 | // The reference is containment, then a new reference cannot be create if: | ||
7775 | // 1. Multiple parents | ||
7776 | neg find mustContains4(problem,interpretation,_,target); | ||
7777 | // 2. Circle in the containment hierarchy | ||
7778 | neg find mustTransitiveContains(source,target); | ||
7779 | } or { | ||
7780 | find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); | ||
7781 | } | ||
7782 | /** | ||
7783 | * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) | ||
7784 | */ | ||
7785 | private pattern mustInRelationeSubpackages_reference_EPackage( | ||
7786 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7787 | source: DefinedElement, target:DefinedElement) | ||
7788 | { | ||
7789 | find interpretation(problem,interpretation); | ||
7790 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7791 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); | ||
7792 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7793 | BinaryElementRelationLink.param1(link,source); | ||
7794 | BinaryElementRelationLink.param2(link,target); | ||
7795 | } | ||
7796 | /** | ||
7797 | * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) | ||
7798 | */ | ||
7799 | private pattern mayInRelationeSubpackages_reference_EPackage( | ||
7800 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7801 | source: DefinedElement, target:DefinedElement) | ||
7802 | { | ||
7803 | find interpretation(problem,interpretation); | ||
7804 | // The two endpoint of the link have to exist | ||
7805 | find mayExist(problem, interpretation, source); | ||
7806 | find mayExist(problem, interpretation, target); | ||
7807 | // Type consistency | ||
7808 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
7809 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
7810 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
7811 | // the upper bound of the opposite reference multiplicity should be considered. | ||
7812 | numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); | ||
7813 | check(numberOfExistingOppositeReferences < 1); | ||
7814 | // The reference is containment, then a new reference cannot be create if: | ||
7815 | // 1. Multiple parents | ||
7816 | neg find mustContains4(problem,interpretation,_,target); | ||
7817 | // 2. Circle in the containment hierarchy | ||
7818 | neg find mustTransitiveContains(source,target); | ||
7819 | } or { | ||
7820 | find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); | ||
7821 | } | ||
7822 | /** | ||
7823 | * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) | ||
7824 | */ | ||
7825 | private pattern mustInRelationeSuperPackage_reference_EPackage( | ||
7826 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7827 | source: DefinedElement, target:DefinedElement) | ||
7828 | { | ||
7829 | find interpretation(problem,interpretation); | ||
7830 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7831 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); | ||
7832 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7833 | BinaryElementRelationLink.param1(link,source); | ||
7834 | BinaryElementRelationLink.param2(link,target); | ||
7835 | } | ||
7836 | /** | ||
7837 | * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) | ||
7838 | */ | ||
7839 | private pattern mayInRelationeSuperPackage_reference_EPackage( | ||
7840 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7841 | source: DefinedElement, target:DefinedElement) | ||
7842 | { | ||
7843 | find interpretation(problem,interpretation); | ||
7844 | // The two endpoint of the link have to exist | ||
7845 | find mayExist(problem, interpretation, source); | ||
7846 | find mayExist(problem, interpretation, target); | ||
7847 | // Type consistency | ||
7848 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
7849 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
7850 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7851 | // the upper bound of the multiplicity should be considered. | ||
7852 | numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); | ||
7853 | check(numberOfExistingReferences < 1); | ||
7854 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
7855 | // 1. Multiple parents | ||
7856 | neg find mustContains4(problem,interpretation,source,_); | ||
7857 | // 2. Circle in the containment hierarchy | ||
7858 | neg find mustTransitiveContains(source,target); | ||
7859 | } or { | ||
7860 | find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); | ||
7861 | } | ||
7862 | /** | ||
7863 | * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) | ||
7864 | */ | ||
7865 | private pattern mustInRelationeOperation_reference_EParameter( | ||
7866 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7867 | source: DefinedElement, target:DefinedElement) | ||
7868 | { | ||
7869 | find interpretation(problem,interpretation); | ||
7870 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7871 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); | ||
7872 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7873 | BinaryElementRelationLink.param1(link,source); | ||
7874 | BinaryElementRelationLink.param2(link,target); | ||
7875 | } | ||
7876 | /** | ||
7877 | * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) | ||
7878 | */ | ||
7879 | private pattern mayInRelationeOperation_reference_EParameter( | ||
7880 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7881 | source: DefinedElement, target:DefinedElement) | ||
7882 | { | ||
7883 | find interpretation(problem,interpretation); | ||
7884 | // The two endpoint of the link have to exist | ||
7885 | find mayExist(problem, interpretation, source); | ||
7886 | find mayExist(problem, interpretation, target); | ||
7887 | // Type consistency | ||
7888 | find mayInstanceOfEParameter_class(problem,interpretation,source); | ||
7889 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
7890 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7891 | // the upper bound of the multiplicity should be considered. | ||
7892 | numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); | ||
7893 | check(numberOfExistingReferences < 1); | ||
7894 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
7895 | // 1. Multiple parents | ||
7896 | neg find mustContains4(problem,interpretation,source,_); | ||
7897 | // 2. Circle in the containment hierarchy | ||
7898 | neg find mustTransitiveContains(source,target); | ||
7899 | } or { | ||
7900 | find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); | ||
7901 | } | ||
7902 | /** | ||
7903 | * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) | ||
7904 | */ | ||
7905 | private pattern mustInRelationeOpposite_reference_EReference( | ||
7906 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7907 | source: DefinedElement, target:DefinedElement) | ||
7908 | { | ||
7909 | find interpretation(problem,interpretation); | ||
7910 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7911 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
7912 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7913 | BinaryElementRelationLink.param1(link,source); | ||
7914 | BinaryElementRelationLink.param2(link,target); | ||
7915 | } | ||
7916 | /** | ||
7917 | * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target) | ||
7918 | */ | ||
7919 | private pattern mayInRelationeOpposite_reference_EReference( | ||
7920 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7921 | source: DefinedElement, target:DefinedElement) | ||
7922 | { | ||
7923 | find interpretation(problem,interpretation); | ||
7924 | // The two endpoint of the link have to exist | ||
7925 | find mayExist(problem, interpretation, source); | ||
7926 | find mayExist(problem, interpretation, target); | ||
7927 | // Type consistency | ||
7928 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
7929 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
7930 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7931 | // the upper bound of the multiplicity should be considered. | ||
7932 | numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); | ||
7933 | check(numberOfExistingReferences < 1); | ||
7934 | } or { | ||
7935 | find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); | ||
7936 | } | ||
7937 | /** | ||
7938 | * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target) | ||
7939 | */ | ||
7940 | private pattern mustInRelationeReferenceType_reference_EReference( | ||
7941 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7942 | source: DefinedElement, target:DefinedElement) | ||
7943 | { | ||
7944 | find interpretation(problem,interpretation); | ||
7945 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7946 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
7947 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7948 | BinaryElementRelationLink.param1(link,source); | ||
7949 | BinaryElementRelationLink.param2(link,target); | ||
7950 | } | ||
7951 | /** | ||
7952 | * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) | ||
7953 | */ | ||
7954 | private pattern mayInRelationeReferenceType_reference_EReference( | ||
7955 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7956 | source: DefinedElement, target:DefinedElement) | ||
7957 | { | ||
7958 | find interpretation(problem,interpretation); | ||
7959 | // The two endpoint of the link have to exist | ||
7960 | find mayExist(problem, interpretation, source); | ||
7961 | find mayExist(problem, interpretation, target); | ||
7962 | // Type consistency | ||
7963 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
7964 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
7965 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
7966 | // the upper bound of the multiplicity should be considered. | ||
7967 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); | ||
7968 | check(numberOfExistingReferences < 1); | ||
7969 | } or { | ||
7970 | find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); | ||
7971 | } | ||
7972 | /** | ||
7973 | * Matcher for detecting tuples t where []eKeys reference EReference(source,target) | ||
7974 | */ | ||
7975 | private pattern mustInRelationeKeys_reference_EReference( | ||
7976 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7977 | source: DefinedElement, target:DefinedElement) | ||
7978 | { | ||
7979 | find interpretation(problem,interpretation); | ||
7980 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
7981 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
7982 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
7983 | BinaryElementRelationLink.param1(link,source); | ||
7984 | BinaryElementRelationLink.param2(link,target); | ||
7985 | } | ||
7986 | /** | ||
7987 | * Matcher for detecting tuples t where <>eKeys reference EReference(source,target) | ||
7988 | */ | ||
7989 | private pattern mayInRelationeKeys_reference_EReference( | ||
7990 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
7991 | source: DefinedElement, target:DefinedElement) | ||
7992 | { | ||
7993 | find interpretation(problem,interpretation); | ||
7994 | // The two endpoint of the link have to exist | ||
7995 | find mayExist(problem, interpretation, source); | ||
7996 | find mayExist(problem, interpretation, target); | ||
7997 | // Type consistency | ||
7998 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
7999 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
8000 | } or { | ||
8001 | find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target); | ||
8002 | } | ||
8003 | /** | ||
8004 | * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) | ||
8005 | */ | ||
8006 | private pattern mustInRelationeContainingClass_reference_EStructuralFeature( | ||
8007 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8008 | source: DefinedElement, target:DefinedElement) | ||
8009 | { | ||
8010 | find interpretation(problem,interpretation); | ||
8011 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8012 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); | ||
8013 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8014 | BinaryElementRelationLink.param1(link,source); | ||
8015 | BinaryElementRelationLink.param2(link,target); | ||
8016 | } | ||
8017 | /** | ||
8018 | * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) | ||
8019 | */ | ||
8020 | private pattern mayInRelationeContainingClass_reference_EStructuralFeature( | ||
8021 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8022 | source: DefinedElement, target:DefinedElement) | ||
8023 | { | ||
8024 | find interpretation(problem,interpretation); | ||
8025 | // The two endpoint of the link have to exist | ||
8026 | find mayExist(problem, interpretation, source); | ||
8027 | find mayExist(problem, interpretation, target); | ||
8028 | // Type consistency | ||
8029 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
8030 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
8031 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8032 | // the upper bound of the multiplicity should be considered. | ||
8033 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); | ||
8034 | check(numberOfExistingReferences < 1); | ||
8035 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
8036 | // 1. Multiple parents | ||
8037 | neg find mustContains4(problem,interpretation,source,_); | ||
8038 | // 2. Circle in the containment hierarchy | ||
8039 | neg find mustTransitiveContains(source,target); | ||
8040 | } or { | ||
8041 | find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); | ||
8042 | } | ||
8043 | /** | ||
8044 | * Matcher for detecting tuples t where []eType reference ETypedElement(source,target) | ||
8045 | */ | ||
8046 | private pattern mustInRelationeType_reference_ETypedElement( | ||
8047 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8048 | source: DefinedElement, target:DefinedElement) | ||
8049 | { | ||
8050 | find interpretation(problem,interpretation); | ||
8051 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8052 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
8053 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8054 | BinaryElementRelationLink.param1(link,source); | ||
8055 | BinaryElementRelationLink.param2(link,target); | ||
8056 | } | ||
8057 | /** | ||
8058 | * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target) | ||
8059 | */ | ||
8060 | private pattern mayInRelationeType_reference_ETypedElement( | ||
8061 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8062 | source: DefinedElement, target:DefinedElement) | ||
8063 | { | ||
8064 | find interpretation(problem,interpretation); | ||
8065 | // The two endpoint of the link have to exist | ||
8066 | find mayExist(problem, interpretation, source); | ||
8067 | find mayExist(problem, interpretation, target); | ||
8068 | // Type consistency | ||
8069 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
8070 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
8071 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8072 | // the upper bound of the multiplicity should be considered. | ||
8073 | numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); | ||
8074 | check(numberOfExistingReferences < 1); | ||
8075 | } or { | ||
8076 | find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target); | ||
8077 | } | ||
8078 | /** | ||
8079 | * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target) | ||
8080 | */ | ||
8081 | private pattern mustInRelationeGenericType_reference_ETypedElement( | ||
8082 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8083 | source: DefinedElement, target:DefinedElement) | ||
8084 | { | ||
8085 | find interpretation(problem,interpretation); | ||
8086 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8087 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); | ||
8088 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8089 | BinaryElementRelationLink.param1(link,source); | ||
8090 | BinaryElementRelationLink.param2(link,target); | ||
8091 | } | ||
8092 | /** | ||
8093 | * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) | ||
8094 | */ | ||
8095 | private pattern mayInRelationeGenericType_reference_ETypedElement( | ||
8096 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8097 | source: DefinedElement, target:DefinedElement) | ||
8098 | { | ||
8099 | find interpretation(problem,interpretation); | ||
8100 | // The two endpoint of the link have to exist | ||
8101 | find mayExist(problem, interpretation, source); | ||
8102 | find mayExist(problem, interpretation, target); | ||
8103 | // Type consistency | ||
8104 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
8105 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
8106 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8107 | // the upper bound of the multiplicity should be considered. | ||
8108 | numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); | ||
8109 | check(numberOfExistingReferences < 1); | ||
8110 | // The reference is containment, then a new reference cannot be create if: | ||
8111 | // 1. Multiple parents | ||
8112 | neg find mustContains4(problem,interpretation,_,target); | ||
8113 | // 2. Circle in the containment hierarchy | ||
8114 | neg find mustTransitiveContains(source,target); | ||
8115 | } or { | ||
8116 | find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); | ||
8117 | } | ||
8118 | /** | ||
8119 | * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target) | ||
8120 | */ | ||
8121 | private pattern mustInRelationeUpperBound_reference_EGenericType( | ||
8122 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8123 | source: DefinedElement, target:DefinedElement) | ||
8124 | { | ||
8125 | find interpretation(problem,interpretation); | ||
8126 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8127 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); | ||
8128 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8129 | BinaryElementRelationLink.param1(link,source); | ||
8130 | BinaryElementRelationLink.param2(link,target); | ||
8131 | } | ||
8132 | /** | ||
8133 | * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target) | ||
8134 | */ | ||
8135 | private pattern mayInRelationeUpperBound_reference_EGenericType( | ||
8136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8137 | source: DefinedElement, target:DefinedElement) | ||
8138 | { | ||
8139 | find interpretation(problem,interpretation); | ||
8140 | // The two endpoint of the link have to exist | ||
8141 | find mayExist(problem, interpretation, source); | ||
8142 | find mayExist(problem, interpretation, target); | ||
8143 | // Type consistency | ||
8144 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8145 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
8146 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8147 | // the upper bound of the multiplicity should be considered. | ||
8148 | numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); | ||
8149 | check(numberOfExistingReferences < 1); | ||
8150 | // The reference is containment, then a new reference cannot be create if: | ||
8151 | // 1. Multiple parents | ||
8152 | neg find mustContains4(problem,interpretation,_,target); | ||
8153 | // 2. Circle in the containment hierarchy | ||
8154 | neg find mustTransitiveContains(source,target); | ||
8155 | } or { | ||
8156 | find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); | ||
8157 | } | ||
8158 | /** | ||
8159 | * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) | ||
8160 | */ | ||
8161 | private pattern mustInRelationeTypeArguments_reference_EGenericType( | ||
8162 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8163 | source: DefinedElement, target:DefinedElement) | ||
8164 | { | ||
8165 | find interpretation(problem,interpretation); | ||
8166 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8167 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); | ||
8168 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8169 | BinaryElementRelationLink.param1(link,source); | ||
8170 | BinaryElementRelationLink.param2(link,target); | ||
8171 | } | ||
8172 | /** | ||
8173 | * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) | ||
8174 | */ | ||
8175 | private pattern mayInRelationeTypeArguments_reference_EGenericType( | ||
8176 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8177 | source: DefinedElement, target:DefinedElement) | ||
8178 | { | ||
8179 | find interpretation(problem,interpretation); | ||
8180 | // The two endpoint of the link have to exist | ||
8181 | find mayExist(problem, interpretation, source); | ||
8182 | find mayExist(problem, interpretation, target); | ||
8183 | // Type consistency | ||
8184 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8185 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
8186 | // The reference is containment, then a new reference cannot be create if: | ||
8187 | // 1. Multiple parents | ||
8188 | neg find mustContains4(problem,interpretation,_,target); | ||
8189 | // 2. Circle in the containment hierarchy | ||
8190 | neg find mustTransitiveContains(source,target); | ||
8191 | } or { | ||
8192 | find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); | ||
8193 | } | ||
8194 | /** | ||
8195 | * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target) | ||
8196 | */ | ||
8197 | private pattern mustInRelationeRawType_reference_EGenericType( | ||
8198 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8199 | source: DefinedElement, target:DefinedElement) | ||
8200 | { | ||
8201 | find interpretation(problem,interpretation); | ||
8202 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8203 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
8204 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8205 | BinaryElementRelationLink.param1(link,source); | ||
8206 | BinaryElementRelationLink.param2(link,target); | ||
8207 | } | ||
8208 | /** | ||
8209 | * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target) | ||
8210 | */ | ||
8211 | private pattern mayInRelationeRawType_reference_EGenericType( | ||
8212 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8213 | source: DefinedElement, target:DefinedElement) | ||
8214 | { | ||
8215 | find interpretation(problem,interpretation); | ||
8216 | // The two endpoint of the link have to exist | ||
8217 | find mayExist(problem, interpretation, source); | ||
8218 | find mayExist(problem, interpretation, target); | ||
8219 | // Type consistency | ||
8220 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8221 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
8222 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8223 | // the upper bound of the multiplicity should be considered. | ||
8224 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); | ||
8225 | check(numberOfExistingReferences < 1); | ||
8226 | } or { | ||
8227 | find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target); | ||
8228 | } | ||
8229 | /** | ||
8230 | * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) | ||
8231 | */ | ||
8232 | private pattern mustInRelationeLowerBound_reference_EGenericType( | ||
8233 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8234 | source: DefinedElement, target:DefinedElement) | ||
8235 | { | ||
8236 | find interpretation(problem,interpretation); | ||
8237 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8238 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); | ||
8239 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8240 | BinaryElementRelationLink.param1(link,source); | ||
8241 | BinaryElementRelationLink.param2(link,target); | ||
8242 | } | ||
8243 | /** | ||
8244 | * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) | ||
8245 | */ | ||
8246 | private pattern mayInRelationeLowerBound_reference_EGenericType( | ||
8247 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8248 | source: DefinedElement, target:DefinedElement) | ||
8249 | { | ||
8250 | find interpretation(problem,interpretation); | ||
8251 | // The two endpoint of the link have to exist | ||
8252 | find mayExist(problem, interpretation, source); | ||
8253 | find mayExist(problem, interpretation, target); | ||
8254 | // Type consistency | ||
8255 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8256 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
8257 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8258 | // the upper bound of the multiplicity should be considered. | ||
8259 | numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); | ||
8260 | check(numberOfExistingReferences < 1); | ||
8261 | // The reference is containment, then a new reference cannot be create if: | ||
8262 | // 1. Multiple parents | ||
8263 | neg find mustContains4(problem,interpretation,_,target); | ||
8264 | // 2. Circle in the containment hierarchy | ||
8265 | neg find mustTransitiveContains(source,target); | ||
8266 | } or { | ||
8267 | find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); | ||
8268 | } | ||
8269 | /** | ||
8270 | * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target) | ||
8271 | */ | ||
8272 | private pattern mustInRelationeTypeParameter_reference_EGenericType( | ||
8273 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8274 | source: DefinedElement, target:DefinedElement) | ||
8275 | { | ||
8276 | find interpretation(problem,interpretation); | ||
8277 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8278 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
8279 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8280 | BinaryElementRelationLink.param1(link,source); | ||
8281 | BinaryElementRelationLink.param2(link,target); | ||
8282 | } | ||
8283 | /** | ||
8284 | * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) | ||
8285 | */ | ||
8286 | private pattern mayInRelationeTypeParameter_reference_EGenericType( | ||
8287 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8288 | source: DefinedElement, target:DefinedElement) | ||
8289 | { | ||
8290 | find interpretation(problem,interpretation); | ||
8291 | // The two endpoint of the link have to exist | ||
8292 | find mayExist(problem, interpretation, source); | ||
8293 | find mayExist(problem, interpretation, target); | ||
8294 | // Type consistency | ||
8295 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8296 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
8297 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8298 | // the upper bound of the multiplicity should be considered. | ||
8299 | numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_); | ||
8300 | check(numberOfExistingReferences < 1); | ||
8301 | } or { | ||
8302 | find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target); | ||
8303 | } | ||
8304 | /** | ||
8305 | * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) | ||
8306 | */ | ||
8307 | private pattern mustInRelationeClassifier_reference_EGenericType( | ||
8308 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8309 | source: DefinedElement, target:DefinedElement) | ||
8310 | { | ||
8311 | find interpretation(problem,interpretation); | ||
8312 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8313 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
8314 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8315 | BinaryElementRelationLink.param1(link,source); | ||
8316 | BinaryElementRelationLink.param2(link,target); | ||
8317 | } | ||
8318 | /** | ||
8319 | * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) | ||
8320 | */ | ||
8321 | private pattern mayInRelationeClassifier_reference_EGenericType( | ||
8322 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8323 | source: DefinedElement, target:DefinedElement) | ||
8324 | { | ||
8325 | find interpretation(problem,interpretation); | ||
8326 | // The two endpoint of the link have to exist | ||
8327 | find mayExist(problem, interpretation, source); | ||
8328 | find mayExist(problem, interpretation, target); | ||
8329 | // Type consistency | ||
8330 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
8331 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
8332 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8333 | // the upper bound of the multiplicity should be considered. | ||
8334 | numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); | ||
8335 | check(numberOfExistingReferences < 1); | ||
8336 | } or { | ||
8337 | find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); | ||
8338 | } | ||
8339 | /** | ||
8340 | * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) | ||
8341 | */ | ||
8342 | private pattern mustInRelationeBounds_reference_ETypeParameter( | ||
8343 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8344 | source: DefinedElement, target:DefinedElement) | ||
8345 | { | ||
8346 | find interpretation(problem,interpretation); | ||
8347 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8348 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); | ||
8349 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8350 | BinaryElementRelationLink.param1(link,source); | ||
8351 | BinaryElementRelationLink.param2(link,target); | ||
8352 | } | ||
8353 | /** | ||
8354 | * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) | ||
8355 | */ | ||
8356 | private pattern mayInRelationeBounds_reference_ETypeParameter( | ||
8357 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8358 | source: DefinedElement, target:DefinedElement) | ||
8359 | { | ||
8360 | find interpretation(problem,interpretation); | ||
8361 | // The two endpoint of the link have to exist | ||
8362 | find mayExist(problem, interpretation, source); | ||
8363 | find mayExist(problem, interpretation, target); | ||
8364 | // Type consistency | ||
8365 | find mayInstanceOfETypeParameter_class(problem,interpretation,source); | ||
8366 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
8367 | // The reference is containment, then a new reference cannot be create if: | ||
8368 | // 1. Multiple parents | ||
8369 | neg find mustContains4(problem,interpretation,_,target); | ||
8370 | // 2. Circle in the containment hierarchy | ||
8371 | neg find mustTransitiveContains(source,target); | ||
8372 | } or { | ||
8373 | find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); | ||
8374 | } | ||
8375 | /** | ||
8376 | * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) | ||
8377 | */ | ||
8378 | private pattern mustInRelationiD_attribute_EAttribute( | ||
8379 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8380 | source: DefinedElement, target:DefinedElement) | ||
8381 | { | ||
8382 | find interpretation(problem,interpretation); | ||
8383 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8384 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
8385 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8386 | BinaryElementRelationLink.param1(link,source); | ||
8387 | BinaryElementRelationLink.param2(link,target); | ||
8388 | } | ||
8389 | /** | ||
8390 | * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) | ||
8391 | */ | ||
8392 | private pattern mayInRelationiD_attribute_EAttribute( | ||
8393 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8394 | source: DefinedElement, target:DefinedElement) | ||
8395 | { | ||
8396 | find interpretation(problem,interpretation); | ||
8397 | // The two endpoint of the link have to exist | ||
8398 | find mayExist(problem, interpretation, source); | ||
8399 | find mayExist(problem, interpretation, target); | ||
8400 | // Type consistency | ||
8401 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
8402 | BooleanElement(target); | ||
8403 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8404 | // the upper bound of the multiplicity should be considered. | ||
8405 | numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); | ||
8406 | check(numberOfExistingReferences < 1); | ||
8407 | } or { | ||
8408 | find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); | ||
8409 | } | ||
8410 | /** | ||
8411 | * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) | ||
8412 | */ | ||
8413 | private pattern mustInRelationsource_attribute_EAnnotation( | ||
8414 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8415 | source: DefinedElement, target:DefinedElement) | ||
8416 | { | ||
8417 | find interpretation(problem,interpretation); | ||
8418 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8419 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
8420 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8421 | BinaryElementRelationLink.param1(link,source); | ||
8422 | BinaryElementRelationLink.param2(link,target); | ||
8423 | } | ||
8424 | /** | ||
8425 | * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) | ||
8426 | */ | ||
8427 | private pattern mayInRelationsource_attribute_EAnnotation( | ||
8428 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8429 | source: DefinedElement, target:DefinedElement) | ||
8430 | { | ||
8431 | find interpretation(problem,interpretation); | ||
8432 | // The two endpoint of the link have to exist | ||
8433 | find mayExist(problem, interpretation, source); | ||
8434 | find mayExist(problem, interpretation, target); | ||
8435 | // Type consistency | ||
8436 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
8437 | StringElement(target); | ||
8438 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8439 | // the upper bound of the multiplicity should be considered. | ||
8440 | numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); | ||
8441 | check(numberOfExistingReferences < 1); | ||
8442 | } or { | ||
8443 | find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); | ||
8444 | } | ||
8445 | /** | ||
8446 | * Matcher for detecting tuples t where []abstract attribute EClass(source,target) | ||
8447 | */ | ||
8448 | private pattern mustInRelationabstract_attribute_EClass( | ||
8449 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8450 | source: DefinedElement, target:DefinedElement) | ||
8451 | { | ||
8452 | find interpretation(problem,interpretation); | ||
8453 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8454 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
8455 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8456 | BinaryElementRelationLink.param1(link,source); | ||
8457 | BinaryElementRelationLink.param2(link,target); | ||
8458 | } | ||
8459 | /** | ||
8460 | * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) | ||
8461 | */ | ||
8462 | private pattern mayInRelationabstract_attribute_EClass( | ||
8463 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8464 | source: DefinedElement, target:DefinedElement) | ||
8465 | { | ||
8466 | find interpretation(problem,interpretation); | ||
8467 | // The two endpoint of the link have to exist | ||
8468 | find mayExist(problem, interpretation, source); | ||
8469 | find mayExist(problem, interpretation, target); | ||
8470 | // Type consistency | ||
8471 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
8472 | BooleanElement(target); | ||
8473 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8474 | // the upper bound of the multiplicity should be considered. | ||
8475 | numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); | ||
8476 | check(numberOfExistingReferences < 1); | ||
8477 | } or { | ||
8478 | find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); | ||
8479 | } | ||
8480 | /** | ||
8481 | * Matcher for detecting tuples t where []interface attribute EClass(source,target) | ||
8482 | */ | ||
8483 | private pattern mustInRelationinterface_attribute_EClass( | ||
8484 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8485 | source: DefinedElement, target:DefinedElement) | ||
8486 | { | ||
8487 | find interpretation(problem,interpretation); | ||
8488 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8489 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
8490 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8491 | BinaryElementRelationLink.param1(link,source); | ||
8492 | BinaryElementRelationLink.param2(link,target); | ||
8493 | } | ||
8494 | /** | ||
8495 | * Matcher for detecting tuples t where <>interface attribute EClass(source,target) | ||
8496 | */ | ||
8497 | private pattern mayInRelationinterface_attribute_EClass( | ||
8498 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8499 | source: DefinedElement, target:DefinedElement) | ||
8500 | { | ||
8501 | find interpretation(problem,interpretation); | ||
8502 | // The two endpoint of the link have to exist | ||
8503 | find mayExist(problem, interpretation, source); | ||
8504 | find mayExist(problem, interpretation, target); | ||
8505 | // Type consistency | ||
8506 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
8507 | BooleanElement(target); | ||
8508 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8509 | // the upper bound of the multiplicity should be considered. | ||
8510 | numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); | ||
8511 | check(numberOfExistingReferences < 1); | ||
8512 | } or { | ||
8513 | find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); | ||
8514 | } | ||
8515 | /** | ||
8516 | * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) | ||
8517 | */ | ||
8518 | private pattern mustInRelationinstanceClassName_attribute_EClassifier( | ||
8519 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8520 | source: DefinedElement, target:DefinedElement) | ||
8521 | { | ||
8522 | find interpretation(problem,interpretation); | ||
8523 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8524 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
8525 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8526 | BinaryElementRelationLink.param1(link,source); | ||
8527 | BinaryElementRelationLink.param2(link,target); | ||
8528 | } | ||
8529 | /** | ||
8530 | * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) | ||
8531 | */ | ||
8532 | private pattern mayInRelationinstanceClassName_attribute_EClassifier( | ||
8533 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8534 | source: DefinedElement, target:DefinedElement) | ||
8535 | { | ||
8536 | find interpretation(problem,interpretation); | ||
8537 | // The two endpoint of the link have to exist | ||
8538 | find mayExist(problem, interpretation, source); | ||
8539 | find mayExist(problem, interpretation, target); | ||
8540 | // Type consistency | ||
8541 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
8542 | StringElement(target); | ||
8543 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8544 | // the upper bound of the multiplicity should be considered. | ||
8545 | numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); | ||
8546 | check(numberOfExistingReferences < 1); | ||
8547 | } or { | ||
8548 | find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); | ||
8549 | } | ||
8550 | /** | ||
8551 | * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) | ||
8552 | */ | ||
8553 | private pattern mustInRelationinstanceTypeName_attribute_EClassifier( | ||
8554 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8555 | source: DefinedElement, target:DefinedElement) | ||
8556 | { | ||
8557 | find interpretation(problem,interpretation); | ||
8558 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8559 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
8560 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8561 | BinaryElementRelationLink.param1(link,source); | ||
8562 | BinaryElementRelationLink.param2(link,target); | ||
8563 | } | ||
8564 | /** | ||
8565 | * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) | ||
8566 | */ | ||
8567 | private pattern mayInRelationinstanceTypeName_attribute_EClassifier( | ||
8568 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8569 | source: DefinedElement, target:DefinedElement) | ||
8570 | { | ||
8571 | find interpretation(problem,interpretation); | ||
8572 | // The two endpoint of the link have to exist | ||
8573 | find mayExist(problem, interpretation, source); | ||
8574 | find mayExist(problem, interpretation, target); | ||
8575 | // Type consistency | ||
8576 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
8577 | StringElement(target); | ||
8578 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8579 | // the upper bound of the multiplicity should be considered. | ||
8580 | numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_); | ||
8581 | check(numberOfExistingReferences < 1); | ||
8582 | } or { | ||
8583 | find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); | ||
8584 | } | ||
8585 | /** | ||
8586 | * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) | ||
8587 | */ | ||
8588 | private pattern mustInRelationserializable_attribute_EDataType( | ||
8589 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8590 | source: DefinedElement, target:DefinedElement) | ||
8591 | { | ||
8592 | find interpretation(problem,interpretation); | ||
8593 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8594 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
8595 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8596 | BinaryElementRelationLink.param1(link,source); | ||
8597 | BinaryElementRelationLink.param2(link,target); | ||
8598 | } | ||
8599 | /** | ||
8600 | * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) | ||
8601 | */ | ||
8602 | private pattern mayInRelationserializable_attribute_EDataType( | ||
8603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8604 | source: DefinedElement, target:DefinedElement) | ||
8605 | { | ||
8606 | find interpretation(problem,interpretation); | ||
8607 | // The two endpoint of the link have to exist | ||
8608 | find mayExist(problem, interpretation, source); | ||
8609 | find mayExist(problem, interpretation, target); | ||
8610 | // Type consistency | ||
8611 | find mayInstanceOfEDataType_class(problem,interpretation,source); | ||
8612 | BooleanElement(target); | ||
8613 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8614 | // the upper bound of the multiplicity should be considered. | ||
8615 | numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); | ||
8616 | check(numberOfExistingReferences < 1); | ||
8617 | } or { | ||
8618 | find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); | ||
8619 | } | ||
8620 | /** | ||
8621 | * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) | ||
8622 | */ | ||
8623 | private pattern mustInRelationvalue_attribute_EEnumLiteral( | ||
8624 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8625 | source: DefinedElement, target:DefinedElement) | ||
8626 | { | ||
8627 | find interpretation(problem,interpretation); | ||
8628 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8629 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
8630 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8631 | BinaryElementRelationLink.param1(link,source); | ||
8632 | BinaryElementRelationLink.param2(link,target); | ||
8633 | } | ||
8634 | /** | ||
8635 | * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) | ||
8636 | */ | ||
8637 | private pattern mayInRelationvalue_attribute_EEnumLiteral( | ||
8638 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8639 | source: DefinedElement, target:DefinedElement) | ||
8640 | { | ||
8641 | find interpretation(problem,interpretation); | ||
8642 | // The two endpoint of the link have to exist | ||
8643 | find mayExist(problem, interpretation, source); | ||
8644 | find mayExist(problem, interpretation, target); | ||
8645 | // Type consistency | ||
8646 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
8647 | IntegerElement(target); | ||
8648 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8649 | // the upper bound of the multiplicity should be considered. | ||
8650 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
8651 | check(numberOfExistingReferences < 1); | ||
8652 | } or { | ||
8653 | find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
8654 | } | ||
8655 | /** | ||
8656 | * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) | ||
8657 | */ | ||
8658 | private pattern mustInRelationliteral_attribute_EEnumLiteral( | ||
8659 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8660 | source: DefinedElement, target:DefinedElement) | ||
8661 | { | ||
8662 | find interpretation(problem,interpretation); | ||
8663 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8664 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
8665 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8666 | BinaryElementRelationLink.param1(link,source); | ||
8667 | BinaryElementRelationLink.param2(link,target); | ||
8668 | } | ||
8669 | /** | ||
8670 | * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) | ||
8671 | */ | ||
8672 | private pattern mayInRelationliteral_attribute_EEnumLiteral( | ||
8673 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8674 | source: DefinedElement, target:DefinedElement) | ||
8675 | { | ||
8676 | find interpretation(problem,interpretation); | ||
8677 | // The two endpoint of the link have to exist | ||
8678 | find mayExist(problem, interpretation, source); | ||
8679 | find mayExist(problem, interpretation, target); | ||
8680 | // Type consistency | ||
8681 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
8682 | StringElement(target); | ||
8683 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8684 | // the upper bound of the multiplicity should be considered. | ||
8685 | numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
8686 | check(numberOfExistingReferences < 1); | ||
8687 | } or { | ||
8688 | find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
8689 | } | ||
8690 | /** | ||
8691 | * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) | ||
8692 | */ | ||
8693 | private pattern mustInRelationname_attribute_ENamedElement( | ||
8694 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8695 | source: DefinedElement, target:DefinedElement) | ||
8696 | { | ||
8697 | find interpretation(problem,interpretation); | ||
8698 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8699 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
8700 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8701 | BinaryElementRelationLink.param1(link,source); | ||
8702 | BinaryElementRelationLink.param2(link,target); | ||
8703 | } | ||
8704 | /** | ||
8705 | * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) | ||
8706 | */ | ||
8707 | private pattern mayInRelationname_attribute_ENamedElement( | ||
8708 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8709 | source: DefinedElement, target:DefinedElement) | ||
8710 | { | ||
8711 | find interpretation(problem,interpretation); | ||
8712 | // The two endpoint of the link have to exist | ||
8713 | find mayExist(problem, interpretation, source); | ||
8714 | find mayExist(problem, interpretation, target); | ||
8715 | // Type consistency | ||
8716 | find mayInstanceOfENamedElement_class(problem,interpretation,source); | ||
8717 | StringElement(target); | ||
8718 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8719 | // the upper bound of the multiplicity should be considered. | ||
8720 | numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); | ||
8721 | check(numberOfExistingReferences < 1); | ||
8722 | } or { | ||
8723 | find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); | ||
8724 | } | ||
8725 | /** | ||
8726 | * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) | ||
8727 | */ | ||
8728 | private pattern mustInRelationnsURI_attribute_EPackage( | ||
8729 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8730 | source: DefinedElement, target:DefinedElement) | ||
8731 | { | ||
8732 | find interpretation(problem,interpretation); | ||
8733 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8734 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
8735 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8736 | BinaryElementRelationLink.param1(link,source); | ||
8737 | BinaryElementRelationLink.param2(link,target); | ||
8738 | } | ||
8739 | /** | ||
8740 | * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) | ||
8741 | */ | ||
8742 | private pattern mayInRelationnsURI_attribute_EPackage( | ||
8743 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8744 | source: DefinedElement, target:DefinedElement) | ||
8745 | { | ||
8746 | find interpretation(problem,interpretation); | ||
8747 | // The two endpoint of the link have to exist | ||
8748 | find mayExist(problem, interpretation, source); | ||
8749 | find mayExist(problem, interpretation, target); | ||
8750 | // Type consistency | ||
8751 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
8752 | StringElement(target); | ||
8753 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8754 | // the upper bound of the multiplicity should be considered. | ||
8755 | numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); | ||
8756 | check(numberOfExistingReferences < 1); | ||
8757 | } or { | ||
8758 | find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); | ||
8759 | } | ||
8760 | /** | ||
8761 | * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) | ||
8762 | */ | ||
8763 | private pattern mustInRelationnsPrefix_attribute_EPackage( | ||
8764 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8765 | source: DefinedElement, target:DefinedElement) | ||
8766 | { | ||
8767 | find interpretation(problem,interpretation); | ||
8768 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8769 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
8770 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8771 | BinaryElementRelationLink.param1(link,source); | ||
8772 | BinaryElementRelationLink.param2(link,target); | ||
8773 | } | ||
8774 | /** | ||
8775 | * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) | ||
8776 | */ | ||
8777 | private pattern mayInRelationnsPrefix_attribute_EPackage( | ||
8778 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8779 | source: DefinedElement, target:DefinedElement) | ||
8780 | { | ||
8781 | find interpretation(problem,interpretation); | ||
8782 | // The two endpoint of the link have to exist | ||
8783 | find mayExist(problem, interpretation, source); | ||
8784 | find mayExist(problem, interpretation, target); | ||
8785 | // Type consistency | ||
8786 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
8787 | StringElement(target); | ||
8788 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8789 | // the upper bound of the multiplicity should be considered. | ||
8790 | numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); | ||
8791 | check(numberOfExistingReferences < 1); | ||
8792 | } or { | ||
8793 | find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); | ||
8794 | } | ||
8795 | /** | ||
8796 | * Matcher for detecting tuples t where []containment attribute EReference(source,target) | ||
8797 | */ | ||
8798 | private pattern mustInRelationcontainment_attribute_EReference( | ||
8799 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8800 | source: DefinedElement, target:DefinedElement) | ||
8801 | { | ||
8802 | find interpretation(problem,interpretation); | ||
8803 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8804 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
8805 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8806 | BinaryElementRelationLink.param1(link,source); | ||
8807 | BinaryElementRelationLink.param2(link,target); | ||
8808 | } | ||
8809 | /** | ||
8810 | * Matcher for detecting tuples t where <>containment attribute EReference(source,target) | ||
8811 | */ | ||
8812 | private pattern mayInRelationcontainment_attribute_EReference( | ||
8813 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8814 | source: DefinedElement, target:DefinedElement) | ||
8815 | { | ||
8816 | find interpretation(problem,interpretation); | ||
8817 | // The two endpoint of the link have to exist | ||
8818 | find mayExist(problem, interpretation, source); | ||
8819 | find mayExist(problem, interpretation, target); | ||
8820 | // Type consistency | ||
8821 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
8822 | BooleanElement(target); | ||
8823 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8824 | // the upper bound of the multiplicity should be considered. | ||
8825 | numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); | ||
8826 | check(numberOfExistingReferences < 1); | ||
8827 | } or { | ||
8828 | find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); | ||
8829 | } | ||
8830 | /** | ||
8831 | * Matcher for detecting tuples t where []container attribute EReference(source,target) | ||
8832 | */ | ||
8833 | private pattern mustInRelationcontainer_attribute_EReference( | ||
8834 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8835 | source: DefinedElement, target:DefinedElement) | ||
8836 | { | ||
8837 | find interpretation(problem,interpretation); | ||
8838 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8839 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
8840 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8841 | BinaryElementRelationLink.param1(link,source); | ||
8842 | BinaryElementRelationLink.param2(link,target); | ||
8843 | } | ||
8844 | /** | ||
8845 | * Matcher for detecting tuples t where <>container attribute EReference(source,target) | ||
8846 | */ | ||
8847 | private pattern mayInRelationcontainer_attribute_EReference( | ||
8848 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8849 | source: DefinedElement, target:DefinedElement) | ||
8850 | { | ||
8851 | find interpretation(problem,interpretation); | ||
8852 | // The two endpoint of the link have to exist | ||
8853 | find mayExist(problem, interpretation, source); | ||
8854 | find mayExist(problem, interpretation, target); | ||
8855 | // Type consistency | ||
8856 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
8857 | BooleanElement(target); | ||
8858 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8859 | // the upper bound of the multiplicity should be considered. | ||
8860 | numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); | ||
8861 | check(numberOfExistingReferences < 1); | ||
8862 | } or { | ||
8863 | find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); | ||
8864 | } | ||
8865 | /** | ||
8866 | * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) | ||
8867 | */ | ||
8868 | private pattern mustInRelationresolveProxies_attribute_EReference( | ||
8869 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8870 | source: DefinedElement, target:DefinedElement) | ||
8871 | { | ||
8872 | find interpretation(problem,interpretation); | ||
8873 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8874 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
8875 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8876 | BinaryElementRelationLink.param1(link,source); | ||
8877 | BinaryElementRelationLink.param2(link,target); | ||
8878 | } | ||
8879 | /** | ||
8880 | * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) | ||
8881 | */ | ||
8882 | private pattern mayInRelationresolveProxies_attribute_EReference( | ||
8883 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8884 | source: DefinedElement, target:DefinedElement) | ||
8885 | { | ||
8886 | find interpretation(problem,interpretation); | ||
8887 | // The two endpoint of the link have to exist | ||
8888 | find mayExist(problem, interpretation, source); | ||
8889 | find mayExist(problem, interpretation, target); | ||
8890 | // Type consistency | ||
8891 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
8892 | BooleanElement(target); | ||
8893 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8894 | // the upper bound of the multiplicity should be considered. | ||
8895 | numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); | ||
8896 | check(numberOfExistingReferences < 1); | ||
8897 | } or { | ||
8898 | find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); | ||
8899 | } | ||
8900 | /** | ||
8901 | * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) | ||
8902 | */ | ||
8903 | private pattern mustInRelationchangeable_attribute_EStructuralFeature( | ||
8904 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8905 | source: DefinedElement, target:DefinedElement) | ||
8906 | { | ||
8907 | find interpretation(problem,interpretation); | ||
8908 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8909 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
8910 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8911 | BinaryElementRelationLink.param1(link,source); | ||
8912 | BinaryElementRelationLink.param2(link,target); | ||
8913 | } | ||
8914 | /** | ||
8915 | * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) | ||
8916 | */ | ||
8917 | private pattern mayInRelationchangeable_attribute_EStructuralFeature( | ||
8918 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8919 | source: DefinedElement, target:DefinedElement) | ||
8920 | { | ||
8921 | find interpretation(problem,interpretation); | ||
8922 | // The two endpoint of the link have to exist | ||
8923 | find mayExist(problem, interpretation, source); | ||
8924 | find mayExist(problem, interpretation, target); | ||
8925 | // Type consistency | ||
8926 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
8927 | BooleanElement(target); | ||
8928 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8929 | // the upper bound of the multiplicity should be considered. | ||
8930 | numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
8931 | check(numberOfExistingReferences < 1); | ||
8932 | } or { | ||
8933 | find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
8934 | } | ||
8935 | /** | ||
8936 | * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) | ||
8937 | */ | ||
8938 | private pattern mustInRelationvolatile_attribute_EStructuralFeature( | ||
8939 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8940 | source: DefinedElement, target:DefinedElement) | ||
8941 | { | ||
8942 | find interpretation(problem,interpretation); | ||
8943 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8944 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
8945 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8946 | BinaryElementRelationLink.param1(link,source); | ||
8947 | BinaryElementRelationLink.param2(link,target); | ||
8948 | } | ||
8949 | /** | ||
8950 | * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) | ||
8951 | */ | ||
8952 | private pattern mayInRelationvolatile_attribute_EStructuralFeature( | ||
8953 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8954 | source: DefinedElement, target:DefinedElement) | ||
8955 | { | ||
8956 | find interpretation(problem,interpretation); | ||
8957 | // The two endpoint of the link have to exist | ||
8958 | find mayExist(problem, interpretation, source); | ||
8959 | find mayExist(problem, interpretation, target); | ||
8960 | // Type consistency | ||
8961 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
8962 | BooleanElement(target); | ||
8963 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8964 | // the upper bound of the multiplicity should be considered. | ||
8965 | numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
8966 | check(numberOfExistingReferences < 1); | ||
8967 | } or { | ||
8968 | find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
8969 | } | ||
8970 | /** | ||
8971 | * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) | ||
8972 | */ | ||
8973 | private pattern mustInRelationtransient_attribute_EStructuralFeature( | ||
8974 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8975 | source: DefinedElement, target:DefinedElement) | ||
8976 | { | ||
8977 | find interpretation(problem,interpretation); | ||
8978 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
8979 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
8980 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
8981 | BinaryElementRelationLink.param1(link,source); | ||
8982 | BinaryElementRelationLink.param2(link,target); | ||
8983 | } | ||
8984 | /** | ||
8985 | * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) | ||
8986 | */ | ||
8987 | private pattern mayInRelationtransient_attribute_EStructuralFeature( | ||
8988 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
8989 | source: DefinedElement, target:DefinedElement) | ||
8990 | { | ||
8991 | find interpretation(problem,interpretation); | ||
8992 | // The two endpoint of the link have to exist | ||
8993 | find mayExist(problem, interpretation, source); | ||
8994 | find mayExist(problem, interpretation, target); | ||
8995 | // Type consistency | ||
8996 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
8997 | BooleanElement(target); | ||
8998 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
8999 | // the upper bound of the multiplicity should be considered. | ||
9000 | numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
9001 | check(numberOfExistingReferences < 1); | ||
9002 | } or { | ||
9003 | find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
9004 | } | ||
9005 | /** | ||
9006 | * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) | ||
9007 | */ | ||
9008 | private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
9009 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9010 | source: DefinedElement, target:DefinedElement) | ||
9011 | { | ||
9012 | find interpretation(problem,interpretation); | ||
9013 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9014 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
9015 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9016 | BinaryElementRelationLink.param1(link,source); | ||
9017 | BinaryElementRelationLink.param2(link,target); | ||
9018 | } | ||
9019 | /** | ||
9020 | * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) | ||
9021 | */ | ||
9022 | private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
9023 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9024 | source: DefinedElement, target:DefinedElement) | ||
9025 | { | ||
9026 | find interpretation(problem,interpretation); | ||
9027 | // The two endpoint of the link have to exist | ||
9028 | find mayExist(problem, interpretation, source); | ||
9029 | find mayExist(problem, interpretation, target); | ||
9030 | // Type consistency | ||
9031 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
9032 | StringElement(target); | ||
9033 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9034 | // the upper bound of the multiplicity should be considered. | ||
9035 | numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
9036 | check(numberOfExistingReferences < 1); | ||
9037 | } or { | ||
9038 | find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
9039 | } | ||
9040 | /** | ||
9041 | * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) | ||
9042 | */ | ||
9043 | private pattern mustInRelationunsettable_attribute_EStructuralFeature( | ||
9044 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9045 | source: DefinedElement, target:DefinedElement) | ||
9046 | { | ||
9047 | find interpretation(problem,interpretation); | ||
9048 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9049 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
9050 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9051 | BinaryElementRelationLink.param1(link,source); | ||
9052 | BinaryElementRelationLink.param2(link,target); | ||
9053 | } | ||
9054 | /** | ||
9055 | * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) | ||
9056 | */ | ||
9057 | private pattern mayInRelationunsettable_attribute_EStructuralFeature( | ||
9058 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9059 | source: DefinedElement, target:DefinedElement) | ||
9060 | { | ||
9061 | find interpretation(problem,interpretation); | ||
9062 | // The two endpoint of the link have to exist | ||
9063 | find mayExist(problem, interpretation, source); | ||
9064 | find mayExist(problem, interpretation, target); | ||
9065 | // Type consistency | ||
9066 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
9067 | BooleanElement(target); | ||
9068 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9069 | // the upper bound of the multiplicity should be considered. | ||
9070 | numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
9071 | check(numberOfExistingReferences < 1); | ||
9072 | } or { | ||
9073 | find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
9074 | } | ||
9075 | /** | ||
9076 | * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) | ||
9077 | */ | ||
9078 | private pattern mustInRelationderived_attribute_EStructuralFeature( | ||
9079 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9080 | source: DefinedElement, target:DefinedElement) | ||
9081 | { | ||
9082 | find interpretation(problem,interpretation); | ||
9083 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9084 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
9085 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9086 | BinaryElementRelationLink.param1(link,source); | ||
9087 | BinaryElementRelationLink.param2(link,target); | ||
9088 | } | ||
9089 | /** | ||
9090 | * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) | ||
9091 | */ | ||
9092 | private pattern mayInRelationderived_attribute_EStructuralFeature( | ||
9093 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9094 | source: DefinedElement, target:DefinedElement) | ||
9095 | { | ||
9096 | find interpretation(problem,interpretation); | ||
9097 | // The two endpoint of the link have to exist | ||
9098 | find mayExist(problem, interpretation, source); | ||
9099 | find mayExist(problem, interpretation, target); | ||
9100 | // Type consistency | ||
9101 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
9102 | BooleanElement(target); | ||
9103 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9104 | // the upper bound of the multiplicity should be considered. | ||
9105 | numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
9106 | check(numberOfExistingReferences < 1); | ||
9107 | } or { | ||
9108 | find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
9109 | } | ||
9110 | /** | ||
9111 | * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) | ||
9112 | */ | ||
9113 | private pattern mustInRelationordered_attribute_ETypedElement( | ||
9114 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9115 | source: DefinedElement, target:DefinedElement) | ||
9116 | { | ||
9117 | find interpretation(problem,interpretation); | ||
9118 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9119 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
9120 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9121 | BinaryElementRelationLink.param1(link,source); | ||
9122 | BinaryElementRelationLink.param2(link,target); | ||
9123 | } | ||
9124 | /** | ||
9125 | * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) | ||
9126 | */ | ||
9127 | private pattern mayInRelationordered_attribute_ETypedElement( | ||
9128 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9129 | source: DefinedElement, target:DefinedElement) | ||
9130 | { | ||
9131 | find interpretation(problem,interpretation); | ||
9132 | // The two endpoint of the link have to exist | ||
9133 | find mayExist(problem, interpretation, source); | ||
9134 | find mayExist(problem, interpretation, target); | ||
9135 | // Type consistency | ||
9136 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9137 | BooleanElement(target); | ||
9138 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9139 | // the upper bound of the multiplicity should be considered. | ||
9140 | numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); | ||
9141 | check(numberOfExistingReferences < 1); | ||
9142 | } or { | ||
9143 | find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); | ||
9144 | } | ||
9145 | /** | ||
9146 | * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) | ||
9147 | */ | ||
9148 | private pattern mustInRelationunique_attribute_ETypedElement( | ||
9149 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9150 | source: DefinedElement, target:DefinedElement) | ||
9151 | { | ||
9152 | find interpretation(problem,interpretation); | ||
9153 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9154 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
9155 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9156 | BinaryElementRelationLink.param1(link,source); | ||
9157 | BinaryElementRelationLink.param2(link,target); | ||
9158 | } | ||
9159 | /** | ||
9160 | * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) | ||
9161 | */ | ||
9162 | private pattern mayInRelationunique_attribute_ETypedElement( | ||
9163 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9164 | source: DefinedElement, target:DefinedElement) | ||
9165 | { | ||
9166 | find interpretation(problem,interpretation); | ||
9167 | // The two endpoint of the link have to exist | ||
9168 | find mayExist(problem, interpretation, source); | ||
9169 | find mayExist(problem, interpretation, target); | ||
9170 | // Type consistency | ||
9171 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9172 | BooleanElement(target); | ||
9173 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9174 | // the upper bound of the multiplicity should be considered. | ||
9175 | numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); | ||
9176 | check(numberOfExistingReferences < 1); | ||
9177 | } or { | ||
9178 | find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); | ||
9179 | } | ||
9180 | /** | ||
9181 | * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) | ||
9182 | */ | ||
9183 | private pattern mustInRelationlowerBound_attribute_ETypedElement( | ||
9184 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9185 | source: DefinedElement, target:DefinedElement) | ||
9186 | { | ||
9187 | find interpretation(problem,interpretation); | ||
9188 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9189 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
9190 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9191 | BinaryElementRelationLink.param1(link,source); | ||
9192 | BinaryElementRelationLink.param2(link,target); | ||
9193 | } | ||
9194 | /** | ||
9195 | * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) | ||
9196 | */ | ||
9197 | private pattern mayInRelationlowerBound_attribute_ETypedElement( | ||
9198 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9199 | source: DefinedElement, target:DefinedElement) | ||
9200 | { | ||
9201 | find interpretation(problem,interpretation); | ||
9202 | // The two endpoint of the link have to exist | ||
9203 | find mayExist(problem, interpretation, source); | ||
9204 | find mayExist(problem, interpretation, target); | ||
9205 | // Type consistency | ||
9206 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9207 | IntegerElement(target); | ||
9208 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9209 | // the upper bound of the multiplicity should be considered. | ||
9210 | numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
9211 | check(numberOfExistingReferences < 1); | ||
9212 | } or { | ||
9213 | find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
9214 | } | ||
9215 | /** | ||
9216 | * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) | ||
9217 | */ | ||
9218 | private pattern mustInRelationupperBound_attribute_ETypedElement( | ||
9219 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9220 | source: DefinedElement, target:DefinedElement) | ||
9221 | { | ||
9222 | find interpretation(problem,interpretation); | ||
9223 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9224 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
9225 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9226 | BinaryElementRelationLink.param1(link,source); | ||
9227 | BinaryElementRelationLink.param2(link,target); | ||
9228 | } | ||
9229 | /** | ||
9230 | * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) | ||
9231 | */ | ||
9232 | private pattern mayInRelationupperBound_attribute_ETypedElement( | ||
9233 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9234 | source: DefinedElement, target:DefinedElement) | ||
9235 | { | ||
9236 | find interpretation(problem,interpretation); | ||
9237 | // The two endpoint of the link have to exist | ||
9238 | find mayExist(problem, interpretation, source); | ||
9239 | find mayExist(problem, interpretation, target); | ||
9240 | // Type consistency | ||
9241 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9242 | IntegerElement(target); | ||
9243 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9244 | // the upper bound of the multiplicity should be considered. | ||
9245 | numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
9246 | check(numberOfExistingReferences < 1); | ||
9247 | } or { | ||
9248 | find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
9249 | } | ||
9250 | /** | ||
9251 | * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) | ||
9252 | */ | ||
9253 | private pattern mustInRelationmany_attribute_ETypedElement( | ||
9254 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9255 | source: DefinedElement, target:DefinedElement) | ||
9256 | { | ||
9257 | find interpretation(problem,interpretation); | ||
9258 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9259 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
9260 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9261 | BinaryElementRelationLink.param1(link,source); | ||
9262 | BinaryElementRelationLink.param2(link,target); | ||
9263 | } | ||
9264 | /** | ||
9265 | * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) | ||
9266 | */ | ||
9267 | private pattern mayInRelationmany_attribute_ETypedElement( | ||
9268 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9269 | source: DefinedElement, target:DefinedElement) | ||
9270 | { | ||
9271 | find interpretation(problem,interpretation); | ||
9272 | // The two endpoint of the link have to exist | ||
9273 | find mayExist(problem, interpretation, source); | ||
9274 | find mayExist(problem, interpretation, target); | ||
9275 | // Type consistency | ||
9276 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9277 | BooleanElement(target); | ||
9278 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9279 | // the upper bound of the multiplicity should be considered. | ||
9280 | numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); | ||
9281 | check(numberOfExistingReferences < 1); | ||
9282 | } or { | ||
9283 | find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); | ||
9284 | } | ||
9285 | /** | ||
9286 | * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) | ||
9287 | */ | ||
9288 | private pattern mustInRelationrequired_attribute_ETypedElement( | ||
9289 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9290 | source: DefinedElement, target:DefinedElement) | ||
9291 | { | ||
9292 | find interpretation(problem,interpretation); | ||
9293 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9294 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
9295 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9296 | BinaryElementRelationLink.param1(link,source); | ||
9297 | BinaryElementRelationLink.param2(link,target); | ||
9298 | } | ||
9299 | /** | ||
9300 | * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) | ||
9301 | */ | ||
9302 | private pattern mayInRelationrequired_attribute_ETypedElement( | ||
9303 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9304 | source: DefinedElement, target:DefinedElement) | ||
9305 | { | ||
9306 | find interpretation(problem,interpretation); | ||
9307 | // The two endpoint of the link have to exist | ||
9308 | find mayExist(problem, interpretation, source); | ||
9309 | find mayExist(problem, interpretation, target); | ||
9310 | // Type consistency | ||
9311 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
9312 | BooleanElement(target); | ||
9313 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9314 | // the upper bound of the multiplicity should be considered. | ||
9315 | numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); | ||
9316 | check(numberOfExistingReferences < 1); | ||
9317 | } or { | ||
9318 | find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); | ||
9319 | } | ||
9320 | /** | ||
9321 | * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) | ||
9322 | */ | ||
9323 | private pattern mustInRelationkey_attribute_EStringToStringMapEntry( | ||
9324 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9325 | source: DefinedElement, target:DefinedElement) | ||
9326 | { | ||
9327 | find interpretation(problem,interpretation); | ||
9328 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9329 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
9330 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9331 | BinaryElementRelationLink.param1(link,source); | ||
9332 | BinaryElementRelationLink.param2(link,target); | ||
9333 | } | ||
9334 | /** | ||
9335 | * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) | ||
9336 | */ | ||
9337 | private pattern mayInRelationkey_attribute_EStringToStringMapEntry( | ||
9338 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9339 | source: DefinedElement, target:DefinedElement) | ||
9340 | { | ||
9341 | find interpretation(problem,interpretation); | ||
9342 | // The two endpoint of the link have to exist | ||
9343 | find mayExist(problem, interpretation, source); | ||
9344 | find mayExist(problem, interpretation, target); | ||
9345 | // Type consistency | ||
9346 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
9347 | StringElement(target); | ||
9348 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9349 | // the upper bound of the multiplicity should be considered. | ||
9350 | numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
9351 | check(numberOfExistingReferences < 1); | ||
9352 | } or { | ||
9353 | find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
9354 | } | ||
9355 | /** | ||
9356 | * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) | ||
9357 | */ | ||
9358 | private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( | ||
9359 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9360 | source: DefinedElement, target:DefinedElement) | ||
9361 | { | ||
9362 | find interpretation(problem,interpretation); | ||
9363 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9364 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
9365 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
9366 | BinaryElementRelationLink.param1(link,source); | ||
9367 | BinaryElementRelationLink.param2(link,target); | ||
9368 | } | ||
9369 | /** | ||
9370 | * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) | ||
9371 | */ | ||
9372 | private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( | ||
9373 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9374 | source: DefinedElement, target:DefinedElement) | ||
9375 | { | ||
9376 | find interpretation(problem,interpretation); | ||
9377 | // The two endpoint of the link have to exist | ||
9378 | find mayExist(problem, interpretation, source); | ||
9379 | find mayExist(problem, interpretation, target); | ||
9380 | // Type consistency | ||
9381 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
9382 | StringElement(target); | ||
9383 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
9384 | // the upper bound of the multiplicity should be considered. | ||
9385 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
9386 | check(numberOfExistingReferences < 1); | ||
9387 | } or { | ||
9388 | find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
9389 | } | ||
9390 | |||
9391 | ////////// | ||
9392 | // 1.3 Relation Definition Indexers | ||
9393 | ////////// | ||
9394 | |||
9395 | ////////// | ||
9396 | // 1.4 Containment Indexer | ||
9397 | ////////// | ||
9398 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
9399 | find mustContains4(_,_,source,target); | ||
9400 | } | ||
9401 | |||
9402 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
9403 | source: DefinedElement, target: DefinedElement) | ||
9404 | { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or | ||
9405 | |||
9406 | { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or | ||
9407 | |||
9408 | { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or | ||
9409 | |||
9410 | { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or | ||
9411 | |||
9412 | { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or | ||
9413 | |||
9414 | { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or | ||
9415 | |||
9416 | { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or | ||
9417 | |||
9418 | { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or | ||
9419 | |||
9420 | { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
9421 | |||
9422 | { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
9423 | |||
9424 | { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or | ||
9425 | |||
9426 | { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or | ||
9427 | |||
9428 | { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or | ||
9429 | |||
9430 | { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or | ||
9431 | |||
9432 | { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
9433 | |||
9434 | { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or | ||
9435 | |||
9436 | { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
9437 | |||
9438 | { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } | ||
9439 | |||
9440 | private pattern mustTransitiveContains(source,target) { | ||
9441 | find mustContains2+(source,target); | ||
9442 | } | ||
9443 | |||
9444 | ////////// | ||
9445 | // 2. Invalidation Indexers | ||
9446 | ////////// | ||
9447 | // 2.1 Invalidated by WF Queries | ||
9448 | ////////// | ||
9449 | |||
9450 | ////////// | ||
9451 | // 3. Unfinishedness Indexers | ||
9452 | ////////// | ||
9453 | // 3.1 Unfinishedness Measured by Multiplicity | ||
9454 | ////////// | ||
9455 | pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
9456 | find interpretation(problem,interpretation); | ||
9457 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9458 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
9459 | find mustInstanceOfEAttribute_class(problem,interpretation,object); | ||
9460 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); | ||
9461 | check(numberOfExistingReferences < 1); | ||
9462 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
9463 | } | ||
9464 | pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
9465 | find interpretation(problem,interpretation); | ||
9466 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9467 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
9468 | find mustInstanceOfEReference_class(problem,interpretation,object); | ||
9469 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); | ||
9470 | check(numberOfExistingReferences < 1); | ||
9471 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
9472 | } | ||
9473 | pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
9474 | find interpretation(problem,interpretation); | ||
9475 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
9476 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
9477 | find mustInstanceOfEGenericType_class(problem,interpretation,object); | ||
9478 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); | ||
9479 | check(numberOfExistingReferences < 1); | ||
9480 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
9481 | } | ||
9482 | |||
9483 | ////////// | ||
9484 | // 3.2 Unfinishedness Measured by WF Queries | ||
9485 | ////////// | ||
9486 | |||
9487 | ////////// | ||
9488 | // 4. Refinement Indexers | ||
9489 | ////////// | ||
9490 | // 4.1 Object constructors | ||
9491 | ////////// | ||
9492 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
9493 | { | ||
9494 | find interpretation(problem,interpretation); | ||
9495 | find mustInstanceOfENamedElement_class(problem,interpretation,root); | ||
9496 | find mustExist(problem, interpretation, root); | ||
9497 | }or{ | ||
9498 | find interpretation(problem,interpretation); | ||
9499 | find mustInstanceOfEObject_class(problem,interpretation,root); | ||
9500 | find mustExist(problem, interpretation, root); | ||
9501 | }or{ | ||
9502 | find interpretation(problem,interpretation); | ||
9503 | find mustInstanceOfEParameter_class(problem,interpretation,root); | ||
9504 | find mustExist(problem, interpretation, root); | ||
9505 | }or{ | ||
9506 | find interpretation(problem,interpretation); | ||
9507 | find mustInstanceOfEReference_class(problem,interpretation,root); | ||
9508 | find mustExist(problem, interpretation, root); | ||
9509 | }or{ | ||
9510 | find interpretation(problem,interpretation); | ||
9511 | find mustInstanceOfEOperation_class(problem,interpretation,root); | ||
9512 | find mustExist(problem, interpretation, root); | ||
9513 | }or{ | ||
9514 | find interpretation(problem,interpretation); | ||
9515 | find mustInstanceOfEClass_class(problem,interpretation,root); | ||
9516 | find mustExist(problem, interpretation, root); | ||
9517 | }or{ | ||
9518 | find interpretation(problem,interpretation); | ||
9519 | find mustInstanceOfEAnnotation_class(problem,interpretation,root); | ||
9520 | find mustExist(problem, interpretation, root); | ||
9521 | }or{ | ||
9522 | find interpretation(problem,interpretation); | ||
9523 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,root); | ||
9524 | find mustExist(problem, interpretation, root); | ||
9525 | }or{ | ||
9526 | find interpretation(problem,interpretation); | ||
9527 | find mustInstanceOfEModelElement_class(problem,interpretation,root); | ||
9528 | find mustExist(problem, interpretation, root); | ||
9529 | }or{ | ||
9530 | find interpretation(problem,interpretation); | ||
9531 | find mustInstanceOfEAttribute_class(problem,interpretation,root); | ||
9532 | find mustExist(problem, interpretation, root); | ||
9533 | }or{ | ||
9534 | find interpretation(problem,interpretation); | ||
9535 | find mustInstanceOfEClassifier_class(problem,interpretation,root); | ||
9536 | find mustExist(problem, interpretation, root); | ||
9537 | }or{ | ||
9538 | find interpretation(problem,interpretation); | ||
9539 | find mustInstanceOfETypedElement_class(problem,interpretation,root); | ||
9540 | find mustExist(problem, interpretation, root); | ||
9541 | }or{ | ||
9542 | find interpretation(problem,interpretation); | ||
9543 | find mustInstanceOfEPackage_class(problem,interpretation,root); | ||
9544 | find mustExist(problem, interpretation, root); | ||
9545 | }or{ | ||
9546 | find interpretation(problem,interpretation); | ||
9547 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,root); | ||
9548 | find mustExist(problem, interpretation, root); | ||
9549 | }or{ | ||
9550 | find interpretation(problem,interpretation); | ||
9551 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root); | ||
9552 | find mustExist(problem, interpretation, root); | ||
9553 | }or{ | ||
9554 | find interpretation(problem,interpretation); | ||
9555 | find mustInstanceOfEEnum_class(problem,interpretation,root); | ||
9556 | find mustExist(problem, interpretation, root); | ||
9557 | }or{ | ||
9558 | find interpretation(problem,interpretation); | ||
9559 | find mustInstanceOfEDataType_class(problem,interpretation,root); | ||
9560 | find mustExist(problem, interpretation, root); | ||
9561 | }or{ | ||
9562 | find interpretation(problem,interpretation); | ||
9563 | find mustInstanceOfEGenericType_class(problem,interpretation,root); | ||
9564 | find mustExist(problem, interpretation, root); | ||
9565 | }or{ | ||
9566 | find interpretation(problem,interpretation); | ||
9567 | find mustInstanceOfETypeParameter_class(problem,interpretation,root); | ||
9568 | find mustExist(problem, interpretation, root); | ||
9569 | }or{ | ||
9570 | find interpretation(problem,interpretation); | ||
9571 | find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); | ||
9572 | find mustExist(problem, interpretation, root); | ||
9573 | }or{ | ||
9574 | find interpretation(problem,interpretation); | ||
9575 | find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); | ||
9576 | find mustExist(problem, interpretation, root); | ||
9577 | }or{ | ||
9578 | find interpretation(problem,interpretation); | ||
9579 | find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); | ||
9580 | find mustExist(problem, interpretation, root); | ||
9581 | }or{ | ||
9582 | find interpretation(problem,interpretation); | ||
9583 | find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); | ||
9584 | find mustExist(problem, interpretation, root); | ||
9585 | }or{ | ||
9586 | find interpretation(problem,interpretation); | ||
9587 | find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); | ||
9588 | find mustExist(problem, interpretation, root); | ||
9589 | }or{ | ||
9590 | find interpretation(problem,interpretation); | ||
9591 | find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); | ||
9592 | find mustExist(problem, interpretation, root); | ||
9593 | } | ||
9594 | pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
9595 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9596 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9597 | container:DefinedElement) | ||
9598 | { | ||
9599 | find interpretation(problem,interpretation); | ||
9600 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9601 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
9602 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9603 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
9604 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9605 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
9606 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
9607 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
9608 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
9609 | find mustExist(problem, interpretation, container); | ||
9610 | neg find mustExist(problem, interpretation, newObject); | ||
9611 | } | ||
9612 | pattern createObject_EClass_class( | ||
9613 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9614 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9615 | { | ||
9616 | find interpretation(problem,interpretation); | ||
9617 | neg find hasElementInContainment(problem,interpretation); | ||
9618 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9619 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
9620 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
9621 | find mayExist(problem, interpretation, newObject); | ||
9622 | neg find mustExist(problem, interpretation, newObject); | ||
9623 | } | ||
9624 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( | ||
9625 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9626 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9627 | container:DefinedElement) | ||
9628 | { | ||
9629 | find interpretation(problem,interpretation); | ||
9630 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9631 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
9632 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9633 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier"); | ||
9634 | find mustInstanceOfEClassifier_class(problem,interpretation,container); | ||
9635 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
9636 | find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject); | ||
9637 | find mustExist(problem, interpretation, container); | ||
9638 | neg find mustExist(problem, interpretation, newObject); | ||
9639 | } | ||
9640 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation( | ||
9641 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9642 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9643 | container:DefinedElement) | ||
9644 | { | ||
9645 | find interpretation(problem,interpretation); | ||
9646 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9647 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
9648 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9649 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation"); | ||
9650 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
9651 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
9652 | find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
9653 | find mustExist(problem, interpretation, container); | ||
9654 | neg find mustExist(problem, interpretation, newObject); | ||
9655 | } | ||
9656 | pattern createObject_ETypeParameter_class( | ||
9657 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9658 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9659 | { | ||
9660 | find interpretation(problem,interpretation); | ||
9661 | neg find hasElementInContainment(problem,interpretation); | ||
9662 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9663 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
9664 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
9665 | find mayExist(problem, interpretation, newObject); | ||
9666 | neg find mustExist(problem, interpretation, newObject); | ||
9667 | } | ||
9668 | pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
9669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9670 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9671 | container:DefinedElement) | ||
9672 | { | ||
9673 | find interpretation(problem,interpretation); | ||
9674 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9675 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
9676 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9677 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
9678 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9679 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
9680 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
9681 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
9682 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
9683 | find mustExist(problem, interpretation, container); | ||
9684 | neg find mustExist(problem, interpretation, newObject); | ||
9685 | } | ||
9686 | pattern createObject_EReference_class( | ||
9687 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9688 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9689 | { | ||
9690 | find interpretation(problem,interpretation); | ||
9691 | neg find hasElementInContainment(problem,interpretation); | ||
9692 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9693 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
9694 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
9695 | find mayExist(problem, interpretation, newObject); | ||
9696 | neg find mustExist(problem, interpretation, newObject); | ||
9697 | } | ||
9698 | pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( | ||
9699 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9700 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9701 | container:DefinedElement) | ||
9702 | { | ||
9703 | find interpretation(problem,interpretation); | ||
9704 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9705 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9706 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9707 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass"); | ||
9708 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
9709 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9710 | find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject); | ||
9711 | find mustExist(problem, interpretation, container); | ||
9712 | neg find mustExist(problem, interpretation, newObject); | ||
9713 | } | ||
9714 | pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation( | ||
9715 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9716 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9717 | container:DefinedElement) | ||
9718 | { | ||
9719 | find interpretation(problem,interpretation); | ||
9720 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9721 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9722 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9723 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); | ||
9724 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
9725 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9726 | find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); | ||
9727 | find mustExist(problem, interpretation, container); | ||
9728 | neg find mustExist(problem, interpretation, newObject); | ||
9729 | } | ||
9730 | pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( | ||
9731 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9732 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9733 | container:DefinedElement) | ||
9734 | { | ||
9735 | find interpretation(problem,interpretation); | ||
9736 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9737 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9738 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9739 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); | ||
9740 | find mustInstanceOfETypedElement_class(problem,interpretation,container); | ||
9741 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9742 | find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); | ||
9743 | find mustExist(problem, interpretation, container); | ||
9744 | neg find mustExist(problem, interpretation, newObject); | ||
9745 | } | ||
9746 | pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( | ||
9747 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9748 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9749 | container:DefinedElement) | ||
9750 | { | ||
9751 | find interpretation(problem,interpretation); | ||
9752 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9753 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9754 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9755 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); | ||
9756 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
9757 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9758 | find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
9759 | find mustExist(problem, interpretation, container); | ||
9760 | neg find mustExist(problem, interpretation, newObject); | ||
9761 | } | ||
9762 | pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( | ||
9763 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9764 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9765 | container:DefinedElement) | ||
9766 | { | ||
9767 | find interpretation(problem,interpretation); | ||
9768 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9769 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9770 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9771 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); | ||
9772 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
9773 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9774 | find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); | ||
9775 | find mustExist(problem, interpretation, container); | ||
9776 | neg find mustExist(problem, interpretation, newObject); | ||
9777 | } | ||
9778 | pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( | ||
9779 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9780 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9781 | container:DefinedElement) | ||
9782 | { | ||
9783 | find interpretation(problem,interpretation); | ||
9784 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9785 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9786 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9787 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); | ||
9788 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
9789 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9790 | find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
9791 | find mustExist(problem, interpretation, container); | ||
9792 | neg find mustExist(problem, interpretation, newObject); | ||
9793 | } | ||
9794 | pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( | ||
9795 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9796 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9797 | container:DefinedElement) | ||
9798 | { | ||
9799 | find interpretation(problem,interpretation); | ||
9800 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9801 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9802 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9803 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); | ||
9804 | find mustInstanceOfETypeParameter_class(problem,interpretation,container); | ||
9805 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9806 | find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); | ||
9807 | find mustExist(problem, interpretation, container); | ||
9808 | neg find mustExist(problem, interpretation, newObject); | ||
9809 | } | ||
9810 | pattern createObject_EGenericType_class( | ||
9811 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9812 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9813 | { | ||
9814 | find interpretation(problem,interpretation); | ||
9815 | neg find hasElementInContainment(problem,interpretation); | ||
9816 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9817 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
9818 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
9819 | find mayExist(problem, interpretation, newObject); | ||
9820 | neg find mustExist(problem, interpretation, newObject); | ||
9821 | } | ||
9822 | pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( | ||
9823 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9824 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9825 | container:DefinedElement) | ||
9826 | { | ||
9827 | find interpretation(problem,interpretation); | ||
9828 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9829 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
9830 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9831 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); | ||
9832 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9833 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); | ||
9834 | find mustInstanceOfEModelElement_class(problem,interpretation,container); | ||
9835 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
9836 | find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); | ||
9837 | find mustExist(problem, interpretation, container); | ||
9838 | neg find mustExist(problem, interpretation, newObject); | ||
9839 | } | ||
9840 | pattern createObject_EAnnotation_class( | ||
9841 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9842 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9843 | { | ||
9844 | find interpretation(problem,interpretation); | ||
9845 | neg find hasElementInContainment(problem,interpretation); | ||
9846 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9847 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
9848 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
9849 | find mayExist(problem, interpretation, newObject); | ||
9850 | neg find mustExist(problem, interpretation, newObject); | ||
9851 | } | ||
9852 | pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
9853 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9854 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9855 | container:DefinedElement) | ||
9856 | { | ||
9857 | find interpretation(problem,interpretation); | ||
9858 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9859 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
9860 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9861 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
9862 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9863 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
9864 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
9865 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
9866 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
9867 | find mustExist(problem, interpretation, container); | ||
9868 | neg find mustExist(problem, interpretation, newObject); | ||
9869 | } | ||
9870 | pattern createObject_EEnum_class( | ||
9871 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9872 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9873 | { | ||
9874 | find interpretation(problem,interpretation); | ||
9875 | neg find hasElementInContainment(problem,interpretation); | ||
9876 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9877 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
9878 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
9879 | find mayExist(problem, interpretation, newObject); | ||
9880 | neg find mustExist(problem, interpretation, newObject); | ||
9881 | } | ||
9882 | pattern createObject_EObject_class_by_contents_reference_EAnnotation( | ||
9883 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9884 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9885 | container:DefinedElement) | ||
9886 | { | ||
9887 | find interpretation(problem,interpretation); | ||
9888 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9889 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
9890 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9891 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); | ||
9892 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
9893 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
9894 | find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); | ||
9895 | find mustExist(problem, interpretation, container); | ||
9896 | neg find mustExist(problem, interpretation, newObject); | ||
9897 | } | ||
9898 | pattern createObject_EObject_class( | ||
9899 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9900 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9901 | { | ||
9902 | find interpretation(problem,interpretation); | ||
9903 | neg find hasElementInContainment(problem,interpretation); | ||
9904 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9905 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
9906 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
9907 | find mayExist(problem, interpretation, newObject); | ||
9908 | neg find mustExist(problem, interpretation, newObject); | ||
9909 | } | ||
9910 | pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
9911 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9912 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9913 | container:DefinedElement) | ||
9914 | { | ||
9915 | find interpretation(problem,interpretation); | ||
9916 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9917 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
9918 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9919 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
9920 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9921 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
9922 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
9923 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
9924 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
9925 | find mustExist(problem, interpretation, container); | ||
9926 | neg find mustExist(problem, interpretation, newObject); | ||
9927 | } | ||
9928 | pattern createObject_EAttribute_class( | ||
9929 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9930 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9931 | { | ||
9932 | find interpretation(problem,interpretation); | ||
9933 | neg find hasElementInContainment(problem,interpretation); | ||
9934 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9935 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
9936 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
9937 | find mayExist(problem, interpretation, newObject); | ||
9938 | neg find mustExist(problem, interpretation, newObject); | ||
9939 | } | ||
9940 | pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( | ||
9941 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9942 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9943 | container:DefinedElement) | ||
9944 | { | ||
9945 | find interpretation(problem,interpretation); | ||
9946 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9947 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
9948 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9949 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); | ||
9950 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
9951 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); | ||
9952 | find mustInstanceOfEEnum_class(problem,interpretation,container); | ||
9953 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
9954 | find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); | ||
9955 | find mustExist(problem, interpretation, container); | ||
9956 | neg find mustExist(problem, interpretation, newObject); | ||
9957 | } | ||
9958 | pattern createObject_EEnumLiteral_class( | ||
9959 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9960 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9961 | { | ||
9962 | find interpretation(problem,interpretation); | ||
9963 | neg find hasElementInContainment(problem,interpretation); | ||
9964 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9965 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
9966 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
9967 | find mayExist(problem, interpretation, newObject); | ||
9968 | neg find mustExist(problem, interpretation, newObject); | ||
9969 | } | ||
9970 | pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( | ||
9971 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9972 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
9973 | container:DefinedElement) | ||
9974 | { | ||
9975 | find interpretation(problem,interpretation); | ||
9976 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9977 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
9978 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
9979 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation"); | ||
9980 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
9981 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
9982 | find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject); | ||
9983 | find mustExist(problem, interpretation, container); | ||
9984 | neg find mustExist(problem, interpretation, newObject); | ||
9985 | } | ||
9986 | pattern createObject_EStringToStringMapEntry_class( | ||
9987 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
9988 | typeInterpretation:PartialComplexTypeInterpretation) | ||
9989 | { | ||
9990 | find interpretation(problem,interpretation); | ||
9991 | neg find hasElementInContainment(problem,interpretation); | ||
9992 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
9993 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
9994 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
9995 | find mayExist(problem, interpretation, newObject); | ||
9996 | neg find mustExist(problem, interpretation, newObject); | ||
9997 | } | ||
9998 | pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( | ||
9999 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10000 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
10001 | container:DefinedElement) | ||
10002 | { | ||
10003 | find interpretation(problem,interpretation); | ||
10004 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10005 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
10006 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
10007 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); | ||
10008 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
10009 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); | ||
10010 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
10011 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
10012 | find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); | ||
10013 | find mustExist(problem, interpretation, container); | ||
10014 | neg find mustExist(problem, interpretation, newObject); | ||
10015 | } | ||
10016 | pattern createObject_EPackage_class_UndefinedPart( | ||
10017 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10018 | typeInterpretation:PartialComplexTypeInterpretation) | ||
10019 | { | ||
10020 | find interpretation(problem,interpretation); | ||
10021 | neg find hasElementInContainment(problem,interpretation); | ||
10022 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10023 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
10024 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
10025 | find mayExist(problem, interpretation, newObject); | ||
10026 | neg find mustExist(problem, interpretation, newObject); | ||
10027 | } | ||
10028 | pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
10029 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10030 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
10031 | container:DefinedElement) | ||
10032 | { | ||
10033 | find interpretation(problem,interpretation); | ||
10034 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10035 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
10036 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
10037 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
10038 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
10039 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
10040 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
10041 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
10042 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
10043 | find mustExist(problem, interpretation, container); | ||
10044 | neg find mustExist(problem, interpretation, newObject); | ||
10045 | } | ||
10046 | pattern createObject_EDataType_class( | ||
10047 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10048 | typeInterpretation:PartialComplexTypeInterpretation) | ||
10049 | { | ||
10050 | find interpretation(problem,interpretation); | ||
10051 | neg find hasElementInContainment(problem,interpretation); | ||
10052 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10053 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
10054 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
10055 | find mayExist(problem, interpretation, newObject); | ||
10056 | neg find mustExist(problem, interpretation, newObject); | ||
10057 | } | ||
10058 | pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( | ||
10059 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10060 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
10061 | container:DefinedElement) | ||
10062 | { | ||
10063 | find interpretation(problem,interpretation); | ||
10064 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10065 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
10066 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
10067 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); | ||
10068 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
10069 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); | ||
10070 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
10071 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
10072 | find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); | ||
10073 | find mustExist(problem, interpretation, container); | ||
10074 | neg find mustExist(problem, interpretation, newObject); | ||
10075 | } | ||
10076 | pattern createObject_EOperation_class( | ||
10077 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10078 | typeInterpretation:PartialComplexTypeInterpretation) | ||
10079 | { | ||
10080 | find interpretation(problem,interpretation); | ||
10081 | neg find hasElementInContainment(problem,interpretation); | ||
10082 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10083 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
10084 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
10085 | find mayExist(problem, interpretation, newObject); | ||
10086 | neg find mustExist(problem, interpretation, newObject); | ||
10087 | } | ||
10088 | pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( | ||
10089 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10090 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
10091 | container:DefinedElement) | ||
10092 | { | ||
10093 | find interpretation(problem,interpretation); | ||
10094 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10095 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
10096 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
10097 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); | ||
10098 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
10099 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); | ||
10100 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
10101 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
10102 | find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
10103 | find mustExist(problem, interpretation, container); | ||
10104 | neg find mustExist(problem, interpretation, newObject); | ||
10105 | } | ||
10106 | pattern createObject_EParameter_class( | ||
10107 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10108 | typeInterpretation:PartialComplexTypeInterpretation) | ||
10109 | { | ||
10110 | find interpretation(problem,interpretation); | ||
10111 | neg find hasElementInContainment(problem,interpretation); | ||
10112 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
10113 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
10114 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
10115 | find mayExist(problem, interpretation, newObject); | ||
10116 | neg find mustExist(problem, interpretation, newObject); | ||
10117 | } | ||
10118 | |||
10119 | ////////// | ||
10120 | // 4.2 Type refinement | ||
10121 | ////////// | ||
10122 | pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10123 | find interpretation(problem,interpretation); | ||
10124 | PartialInterpretation.newElements(interpretation,element); | ||
10125 | find mayInstanceOfEClass_class(problem,interpretation,element); | ||
10126 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
10127 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10128 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10129 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10130 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10131 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
10132 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10133 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10134 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10135 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10136 | } | ||
10137 | pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10138 | find interpretation(problem,interpretation); | ||
10139 | PartialInterpretation.newElements(interpretation,element); | ||
10140 | find mayInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10141 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10142 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10143 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10144 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10145 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10146 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10147 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10148 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10149 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10150 | } | ||
10151 | pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10152 | find interpretation(problem,interpretation); | ||
10153 | PartialInterpretation.newElements(interpretation,element); | ||
10154 | find mayInstanceOfEReference_class(problem,interpretation,element); | ||
10155 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10156 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
10157 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10158 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10159 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10160 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10161 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
10162 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
10163 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10164 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10165 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
10166 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10167 | } | ||
10168 | pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10169 | find interpretation(problem,interpretation); | ||
10170 | PartialInterpretation.newElements(interpretation,element); | ||
10171 | find mayInstanceOfEGenericType_class(problem,interpretation,element); | ||
10172 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10173 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10174 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
10175 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10176 | } | ||
10177 | pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10178 | find interpretation(problem,interpretation); | ||
10179 | PartialInterpretation.newElements(interpretation,element); | ||
10180 | find mayInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10181 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
10182 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10183 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10184 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10185 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10186 | } | ||
10187 | pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10188 | find interpretation(problem,interpretation); | ||
10189 | PartialInterpretation.newElements(interpretation,element); | ||
10190 | find mayInstanceOfEEnum_class(problem,interpretation,element); | ||
10191 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
10192 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10193 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10194 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10195 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10196 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
10197 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10198 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10199 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10200 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10201 | } | ||
10202 | pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10203 | find interpretation(problem,interpretation); | ||
10204 | PartialInterpretation.newElements(interpretation,element); | ||
10205 | find mayInstanceOfEObject_class(problem,interpretation,element); | ||
10206 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10207 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10208 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
10209 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10210 | } | ||
10211 | pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10212 | find interpretation(problem,interpretation); | ||
10213 | PartialInterpretation.newElements(interpretation,element); | ||
10214 | find mayInstanceOfEAttribute_class(problem,interpretation,element); | ||
10215 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10216 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
10217 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10218 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10219 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10220 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10221 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
10222 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
10223 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10224 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10225 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10226 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
10227 | } | ||
10228 | pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10229 | find interpretation(problem,interpretation); | ||
10230 | PartialInterpretation.newElements(interpretation,element); | ||
10231 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10232 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10233 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10234 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10235 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10236 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10237 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10238 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10239 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10240 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10241 | } | ||
10242 | pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10243 | find interpretation(problem,interpretation); | ||
10244 | PartialInterpretation.newElements(interpretation,element); | ||
10245 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10246 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10247 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10248 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
10249 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10250 | } | ||
10251 | pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10252 | find interpretation(problem,interpretation); | ||
10253 | PartialInterpretation.newElements(interpretation,element); | ||
10254 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
10255 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10256 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10257 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10258 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10259 | neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
10260 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10261 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10262 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10263 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10264 | } | ||
10265 | pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10266 | find interpretation(problem,interpretation); | ||
10267 | PartialInterpretation.newElements(interpretation,element); | ||
10268 | find mayInstanceOfEDataType_class(problem,interpretation,element); | ||
10269 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
10270 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10271 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10272 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10273 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10274 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
10275 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
10276 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10277 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10278 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10279 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
10280 | } | ||
10281 | pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10282 | find interpretation(problem,interpretation); | ||
10283 | PartialInterpretation.newElements(interpretation,element); | ||
10284 | find mayInstanceOfEOperation_class(problem,interpretation,element); | ||
10285 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10286 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10287 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10288 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10289 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10290 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
10291 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
10292 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10293 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10294 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
10295 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10296 | } | ||
10297 | pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
10298 | find interpretation(problem,interpretation); | ||
10299 | PartialInterpretation.newElements(interpretation,element); | ||
10300 | find mayInstanceOfEParameter_class(problem,interpretation,element); | ||
10301 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
10302 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
10303 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
10304 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
10305 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
10306 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
10307 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
10308 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
10309 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
10310 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
10311 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
10312 | } | ||
10313 | |||
10314 | ////////// | ||
10315 | // 4.3 Relation refinement | ||
10316 | ////////// | ||
10317 | pattern refineRelation_eAttributeType_reference_EAttribute( | ||
10318 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10319 | relationIterpretation:PartialRelationInterpretation, | ||
10320 | from: DefinedElement, to: DefinedElement) | ||
10321 | { | ||
10322 | find interpretation(problem,interpretation); | ||
10323 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10324 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
10325 | find mustExist(problem, interpretation, from); | ||
10326 | find mustExist(problem, interpretation, to); | ||
10327 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
10328 | find mustInstanceOfEDataType_class(problem,interpretation,to); | ||
10329 | find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
10330 | neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
10331 | } | ||
10332 | pattern refineRelation_references_reference_EAnnotation( | ||
10333 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10334 | relationIterpretation:PartialRelationInterpretation, | ||
10335 | from: DefinedElement, to: DefinedElement) | ||
10336 | { | ||
10337 | find interpretation(problem,interpretation); | ||
10338 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10339 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
10340 | find mustExist(problem, interpretation, from); | ||
10341 | find mustExist(problem, interpretation, to); | ||
10342 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
10343 | find mustInstanceOfEObject_class(problem,interpretation,to); | ||
10344 | find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
10345 | neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
10346 | } | ||
10347 | pattern refineRelation_eSuperTypes_reference_EClass( | ||
10348 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10349 | relationIterpretation:PartialRelationInterpretation, | ||
10350 | from: DefinedElement, to: DefinedElement) | ||
10351 | { | ||
10352 | find interpretation(problem,interpretation); | ||
10353 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10354 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
10355 | find mustExist(problem, interpretation, from); | ||
10356 | find mustExist(problem, interpretation, to); | ||
10357 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10358 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
10359 | find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10360 | neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10361 | } | ||
10362 | pattern refineRelation_eAllAttributes_reference_EClass( | ||
10363 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10364 | relationIterpretation:PartialRelationInterpretation, | ||
10365 | from: DefinedElement, to: DefinedElement) | ||
10366 | { | ||
10367 | find interpretation(problem,interpretation); | ||
10368 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10369 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
10370 | find mustExist(problem, interpretation, from); | ||
10371 | find mustExist(problem, interpretation, to); | ||
10372 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10373 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
10374 | find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
10375 | neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
10376 | } | ||
10377 | pattern refineRelation_eAllReferences_reference_EClass( | ||
10378 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10379 | relationIterpretation:PartialRelationInterpretation, | ||
10380 | from: DefinedElement, to: DefinedElement) | ||
10381 | { | ||
10382 | find interpretation(problem,interpretation); | ||
10383 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10384 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
10385 | find mustExist(problem, interpretation, from); | ||
10386 | find mustExist(problem, interpretation, to); | ||
10387 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10388 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
10389 | find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
10390 | neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
10391 | } | ||
10392 | pattern refineRelation_eReferences_reference_EClass( | ||
10393 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10394 | relationIterpretation:PartialRelationInterpretation, | ||
10395 | from: DefinedElement, to: DefinedElement) | ||
10396 | { | ||
10397 | find interpretation(problem,interpretation); | ||
10398 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10399 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
10400 | find mustExist(problem, interpretation, from); | ||
10401 | find mustExist(problem, interpretation, to); | ||
10402 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10403 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
10404 | find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
10405 | neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
10406 | } | ||
10407 | pattern refineRelation_eAttributes_reference_EClass( | ||
10408 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10409 | relationIterpretation:PartialRelationInterpretation, | ||
10410 | from: DefinedElement, to: DefinedElement) | ||
10411 | { | ||
10412 | find interpretation(problem,interpretation); | ||
10413 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10414 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
10415 | find mustExist(problem, interpretation, from); | ||
10416 | find mustExist(problem, interpretation, to); | ||
10417 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10418 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
10419 | find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
10420 | neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
10421 | } | ||
10422 | pattern refineRelation_eAllContainments_reference_EClass( | ||
10423 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10424 | relationIterpretation:PartialRelationInterpretation, | ||
10425 | from: DefinedElement, to: DefinedElement) | ||
10426 | { | ||
10427 | find interpretation(problem,interpretation); | ||
10428 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10429 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
10430 | find mustExist(problem, interpretation, from); | ||
10431 | find mustExist(problem, interpretation, to); | ||
10432 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10433 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
10434 | find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
10435 | neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
10436 | } | ||
10437 | pattern refineRelation_eAllOperations_reference_EClass( | ||
10438 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10439 | relationIterpretation:PartialRelationInterpretation, | ||
10440 | from: DefinedElement, to: DefinedElement) | ||
10441 | { | ||
10442 | find interpretation(problem,interpretation); | ||
10443 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10444 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
10445 | find mustExist(problem, interpretation, from); | ||
10446 | find mustExist(problem, interpretation, to); | ||
10447 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10448 | find mustInstanceOfEOperation_class(problem,interpretation,to); | ||
10449 | find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
10450 | neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
10451 | } | ||
10452 | pattern refineRelation_eAllStructuralFeatures_reference_EClass( | ||
10453 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10454 | relationIterpretation:PartialRelationInterpretation, | ||
10455 | from: DefinedElement, to: DefinedElement) | ||
10456 | { | ||
10457 | find interpretation(problem,interpretation); | ||
10458 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10459 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
10460 | find mustExist(problem, interpretation, from); | ||
10461 | find mustExist(problem, interpretation, to); | ||
10462 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10463 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,to); | ||
10464 | find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
10465 | neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
10466 | } | ||
10467 | pattern refineRelation_eAllSuperTypes_reference_EClass( | ||
10468 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10469 | relationIterpretation:PartialRelationInterpretation, | ||
10470 | from: DefinedElement, to: DefinedElement) | ||
10471 | { | ||
10472 | find interpretation(problem,interpretation); | ||
10473 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10474 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
10475 | find mustExist(problem, interpretation, from); | ||
10476 | find mustExist(problem, interpretation, to); | ||
10477 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10478 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
10479 | find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10480 | neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10481 | } | ||
10482 | pattern refineRelation_eIDAttribute_reference_EClass( | ||
10483 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10484 | relationIterpretation:PartialRelationInterpretation, | ||
10485 | from: DefinedElement, to: DefinedElement) | ||
10486 | { | ||
10487 | find interpretation(problem,interpretation); | ||
10488 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10489 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
10490 | find mustExist(problem, interpretation, from); | ||
10491 | find mustExist(problem, interpretation, to); | ||
10492 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10493 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
10494 | find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
10495 | neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
10496 | } | ||
10497 | pattern refineRelation_eAllGenericSuperTypes_reference_EClass( | ||
10498 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10499 | relationIterpretation:PartialRelationInterpretation, | ||
10500 | from: DefinedElement, to: DefinedElement) | ||
10501 | { | ||
10502 | find interpretation(problem,interpretation); | ||
10503 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10504 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
10505 | find mustExist(problem, interpretation, from); | ||
10506 | find mustExist(problem, interpretation, to); | ||
10507 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10508 | find mustInstanceOfEGenericType_class(problem,interpretation,to); | ||
10509 | find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10510 | neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
10511 | } | ||
10512 | pattern refineRelation_eExceptions_reference_EOperation( | ||
10513 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10514 | relationIterpretation:PartialRelationInterpretation, | ||
10515 | from: DefinedElement, to: DefinedElement) | ||
10516 | { | ||
10517 | find interpretation(problem,interpretation); | ||
10518 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10519 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
10520 | find mustExist(problem, interpretation, from); | ||
10521 | find mustExist(problem, interpretation, to); | ||
10522 | find mustInstanceOfEOperation_class(problem,interpretation,from); | ||
10523 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
10524 | find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
10525 | neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
10526 | } | ||
10527 | pattern refineRelation_eOpposite_reference_EReference( | ||
10528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10529 | relationIterpretation:PartialRelationInterpretation, | ||
10530 | from: DefinedElement, to: DefinedElement) | ||
10531 | { | ||
10532 | find interpretation(problem,interpretation); | ||
10533 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10534 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
10535 | find mustExist(problem, interpretation, from); | ||
10536 | find mustExist(problem, interpretation, to); | ||
10537 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10538 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
10539 | find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
10540 | neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
10541 | } | ||
10542 | pattern refineRelation_eReferenceType_reference_EReference( | ||
10543 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10544 | relationIterpretation:PartialRelationInterpretation, | ||
10545 | from: DefinedElement, to: DefinedElement) | ||
10546 | { | ||
10547 | find interpretation(problem,interpretation); | ||
10548 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10549 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
10550 | find mustExist(problem, interpretation, from); | ||
10551 | find mustExist(problem, interpretation, to); | ||
10552 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10553 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
10554 | find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
10555 | neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
10556 | } | ||
10557 | pattern refineRelation_eKeys_reference_EReference( | ||
10558 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10559 | relationIterpretation:PartialRelationInterpretation, | ||
10560 | from: DefinedElement, to: DefinedElement) | ||
10561 | { | ||
10562 | find interpretation(problem,interpretation); | ||
10563 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10564 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
10565 | find mustExist(problem, interpretation, from); | ||
10566 | find mustExist(problem, interpretation, to); | ||
10567 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10568 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
10569 | find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
10570 | neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
10571 | } | ||
10572 | pattern refineRelation_eType_reference_ETypedElement( | ||
10573 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10574 | relationIterpretation:PartialRelationInterpretation, | ||
10575 | from: DefinedElement, to: DefinedElement) | ||
10576 | { | ||
10577 | find interpretation(problem,interpretation); | ||
10578 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10579 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
10580 | find mustExist(problem, interpretation, from); | ||
10581 | find mustExist(problem, interpretation, to); | ||
10582 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
10583 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
10584 | find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
10585 | neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
10586 | } | ||
10587 | pattern refineRelation_eRawType_reference_EGenericType( | ||
10588 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10589 | relationIterpretation:PartialRelationInterpretation, | ||
10590 | from: DefinedElement, to: DefinedElement) | ||
10591 | { | ||
10592 | find interpretation(problem,interpretation); | ||
10593 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10594 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
10595 | find mustExist(problem, interpretation, from); | ||
10596 | find mustExist(problem, interpretation, to); | ||
10597 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
10598 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
10599 | find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
10600 | neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
10601 | } | ||
10602 | pattern refineRelation_eTypeParameter_reference_EGenericType( | ||
10603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10604 | relationIterpretation:PartialRelationInterpretation, | ||
10605 | from: DefinedElement, to: DefinedElement) | ||
10606 | { | ||
10607 | find interpretation(problem,interpretation); | ||
10608 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10609 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
10610 | find mustExist(problem, interpretation, from); | ||
10611 | find mustExist(problem, interpretation, to); | ||
10612 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
10613 | find mustInstanceOfETypeParameter_class(problem,interpretation,to); | ||
10614 | find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
10615 | neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
10616 | } | ||
10617 | pattern refineRelation_eClassifier_reference_EGenericType( | ||
10618 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10619 | relationIterpretation:PartialRelationInterpretation, | ||
10620 | from: DefinedElement, to: DefinedElement) | ||
10621 | { | ||
10622 | find interpretation(problem,interpretation); | ||
10623 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10624 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
10625 | find mustExist(problem, interpretation, from); | ||
10626 | find mustExist(problem, interpretation, to); | ||
10627 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
10628 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
10629 | find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
10630 | neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
10631 | } | ||
10632 | pattern refineRelation_iD_attribute_EAttribute( | ||
10633 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10634 | relationIterpretation:PartialRelationInterpretation, | ||
10635 | from: DefinedElement, to: DefinedElement) | ||
10636 | { | ||
10637 | find interpretation(problem,interpretation); | ||
10638 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10639 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
10640 | find mustExist(problem, interpretation, from); | ||
10641 | find mustExist(problem, interpretation, to); | ||
10642 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
10643 | BooleanElement(to); | ||
10644 | find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
10645 | neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
10646 | } | ||
10647 | pattern refineRelation_source_attribute_EAnnotation( | ||
10648 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10649 | relationIterpretation:PartialRelationInterpretation, | ||
10650 | from: DefinedElement, to: DefinedElement) | ||
10651 | { | ||
10652 | find interpretation(problem,interpretation); | ||
10653 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10654 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
10655 | find mustExist(problem, interpretation, from); | ||
10656 | find mustExist(problem, interpretation, to); | ||
10657 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
10658 | StringElement(to); | ||
10659 | find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
10660 | neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
10661 | } | ||
10662 | pattern refineRelation_abstract_attribute_EClass( | ||
10663 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10664 | relationIterpretation:PartialRelationInterpretation, | ||
10665 | from: DefinedElement, to: DefinedElement) | ||
10666 | { | ||
10667 | find interpretation(problem,interpretation); | ||
10668 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10669 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
10670 | find mustExist(problem, interpretation, from); | ||
10671 | find mustExist(problem, interpretation, to); | ||
10672 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10673 | BooleanElement(to); | ||
10674 | find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
10675 | neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
10676 | } | ||
10677 | pattern refineRelation_interface_attribute_EClass( | ||
10678 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10679 | relationIterpretation:PartialRelationInterpretation, | ||
10680 | from: DefinedElement, to: DefinedElement) | ||
10681 | { | ||
10682 | find interpretation(problem,interpretation); | ||
10683 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10684 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
10685 | find mustExist(problem, interpretation, from); | ||
10686 | find mustExist(problem, interpretation, to); | ||
10687 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
10688 | BooleanElement(to); | ||
10689 | find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
10690 | neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
10691 | } | ||
10692 | pattern refineRelation_instanceClassName_attribute_EClassifier( | ||
10693 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10694 | relationIterpretation:PartialRelationInterpretation, | ||
10695 | from: DefinedElement, to: DefinedElement) | ||
10696 | { | ||
10697 | find interpretation(problem,interpretation); | ||
10698 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10699 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
10700 | find mustExist(problem, interpretation, from); | ||
10701 | find mustExist(problem, interpretation, to); | ||
10702 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
10703 | StringElement(to); | ||
10704 | find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
10705 | neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
10706 | } | ||
10707 | pattern refineRelation_instanceTypeName_attribute_EClassifier( | ||
10708 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10709 | relationIterpretation:PartialRelationInterpretation, | ||
10710 | from: DefinedElement, to: DefinedElement) | ||
10711 | { | ||
10712 | find interpretation(problem,interpretation); | ||
10713 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10714 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
10715 | find mustExist(problem, interpretation, from); | ||
10716 | find mustExist(problem, interpretation, to); | ||
10717 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
10718 | StringElement(to); | ||
10719 | find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
10720 | neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
10721 | } | ||
10722 | pattern refineRelation_serializable_attribute_EDataType( | ||
10723 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10724 | relationIterpretation:PartialRelationInterpretation, | ||
10725 | from: DefinedElement, to: DefinedElement) | ||
10726 | { | ||
10727 | find interpretation(problem,interpretation); | ||
10728 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10729 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
10730 | find mustExist(problem, interpretation, from); | ||
10731 | find mustExist(problem, interpretation, to); | ||
10732 | find mustInstanceOfEDataType_class(problem,interpretation,from); | ||
10733 | BooleanElement(to); | ||
10734 | find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
10735 | neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
10736 | } | ||
10737 | pattern refineRelation_value_attribute_EEnumLiteral( | ||
10738 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10739 | relationIterpretation:PartialRelationInterpretation, | ||
10740 | from: DefinedElement, to: DefinedElement) | ||
10741 | { | ||
10742 | find interpretation(problem,interpretation); | ||
10743 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10744 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
10745 | find mustExist(problem, interpretation, from); | ||
10746 | find mustExist(problem, interpretation, to); | ||
10747 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
10748 | IntegerElement(to); | ||
10749 | find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
10750 | neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
10751 | } | ||
10752 | pattern refineRelation_literal_attribute_EEnumLiteral( | ||
10753 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10754 | relationIterpretation:PartialRelationInterpretation, | ||
10755 | from: DefinedElement, to: DefinedElement) | ||
10756 | { | ||
10757 | find interpretation(problem,interpretation); | ||
10758 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10759 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
10760 | find mustExist(problem, interpretation, from); | ||
10761 | find mustExist(problem, interpretation, to); | ||
10762 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
10763 | StringElement(to); | ||
10764 | find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
10765 | neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
10766 | } | ||
10767 | pattern refineRelation_name_attribute_ENamedElement( | ||
10768 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10769 | relationIterpretation:PartialRelationInterpretation, | ||
10770 | from: DefinedElement, to: DefinedElement) | ||
10771 | { | ||
10772 | find interpretation(problem,interpretation); | ||
10773 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10774 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
10775 | find mustExist(problem, interpretation, from); | ||
10776 | find mustExist(problem, interpretation, to); | ||
10777 | find mustInstanceOfENamedElement_class(problem,interpretation,from); | ||
10778 | StringElement(to); | ||
10779 | find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
10780 | neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
10781 | } | ||
10782 | pattern refineRelation_nsURI_attribute_EPackage( | ||
10783 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10784 | relationIterpretation:PartialRelationInterpretation, | ||
10785 | from: DefinedElement, to: DefinedElement) | ||
10786 | { | ||
10787 | find interpretation(problem,interpretation); | ||
10788 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10789 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
10790 | find mustExist(problem, interpretation, from); | ||
10791 | find mustExist(problem, interpretation, to); | ||
10792 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
10793 | StringElement(to); | ||
10794 | find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
10795 | neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
10796 | } | ||
10797 | pattern refineRelation_nsPrefix_attribute_EPackage( | ||
10798 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10799 | relationIterpretation:PartialRelationInterpretation, | ||
10800 | from: DefinedElement, to: DefinedElement) | ||
10801 | { | ||
10802 | find interpretation(problem,interpretation); | ||
10803 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10804 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
10805 | find mustExist(problem, interpretation, from); | ||
10806 | find mustExist(problem, interpretation, to); | ||
10807 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
10808 | StringElement(to); | ||
10809 | find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
10810 | neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
10811 | } | ||
10812 | pattern refineRelation_containment_attribute_EReference( | ||
10813 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10814 | relationIterpretation:PartialRelationInterpretation, | ||
10815 | from: DefinedElement, to: DefinedElement) | ||
10816 | { | ||
10817 | find interpretation(problem,interpretation); | ||
10818 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10819 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
10820 | find mustExist(problem, interpretation, from); | ||
10821 | find mustExist(problem, interpretation, to); | ||
10822 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10823 | BooleanElement(to); | ||
10824 | find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
10825 | neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
10826 | } | ||
10827 | pattern refineRelation_container_attribute_EReference( | ||
10828 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10829 | relationIterpretation:PartialRelationInterpretation, | ||
10830 | from: DefinedElement, to: DefinedElement) | ||
10831 | { | ||
10832 | find interpretation(problem,interpretation); | ||
10833 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10834 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
10835 | find mustExist(problem, interpretation, from); | ||
10836 | find mustExist(problem, interpretation, to); | ||
10837 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10838 | BooleanElement(to); | ||
10839 | find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
10840 | neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
10841 | } | ||
10842 | pattern refineRelation_resolveProxies_attribute_EReference( | ||
10843 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10844 | relationIterpretation:PartialRelationInterpretation, | ||
10845 | from: DefinedElement, to: DefinedElement) | ||
10846 | { | ||
10847 | find interpretation(problem,interpretation); | ||
10848 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10849 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
10850 | find mustExist(problem, interpretation, from); | ||
10851 | find mustExist(problem, interpretation, to); | ||
10852 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
10853 | BooleanElement(to); | ||
10854 | find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
10855 | neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
10856 | } | ||
10857 | pattern refineRelation_changeable_attribute_EStructuralFeature( | ||
10858 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10859 | relationIterpretation:PartialRelationInterpretation, | ||
10860 | from: DefinedElement, to: DefinedElement) | ||
10861 | { | ||
10862 | find interpretation(problem,interpretation); | ||
10863 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10864 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
10865 | find mustExist(problem, interpretation, from); | ||
10866 | find mustExist(problem, interpretation, to); | ||
10867 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10868 | BooleanElement(to); | ||
10869 | find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10870 | neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10871 | } | ||
10872 | pattern refineRelation_volatile_attribute_EStructuralFeature( | ||
10873 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10874 | relationIterpretation:PartialRelationInterpretation, | ||
10875 | from: DefinedElement, to: DefinedElement) | ||
10876 | { | ||
10877 | find interpretation(problem,interpretation); | ||
10878 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10879 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
10880 | find mustExist(problem, interpretation, from); | ||
10881 | find mustExist(problem, interpretation, to); | ||
10882 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10883 | BooleanElement(to); | ||
10884 | find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10885 | neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10886 | } | ||
10887 | pattern refineRelation_transient_attribute_EStructuralFeature( | ||
10888 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10889 | relationIterpretation:PartialRelationInterpretation, | ||
10890 | from: DefinedElement, to: DefinedElement) | ||
10891 | { | ||
10892 | find interpretation(problem,interpretation); | ||
10893 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10894 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
10895 | find mustExist(problem, interpretation, from); | ||
10896 | find mustExist(problem, interpretation, to); | ||
10897 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10898 | BooleanElement(to); | ||
10899 | find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10900 | neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10901 | } | ||
10902 | pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature( | ||
10903 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10904 | relationIterpretation:PartialRelationInterpretation, | ||
10905 | from: DefinedElement, to: DefinedElement) | ||
10906 | { | ||
10907 | find interpretation(problem,interpretation); | ||
10908 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10909 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
10910 | find mustExist(problem, interpretation, from); | ||
10911 | find mustExist(problem, interpretation, to); | ||
10912 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10913 | StringElement(to); | ||
10914 | find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10915 | neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10916 | } | ||
10917 | pattern refineRelation_unsettable_attribute_EStructuralFeature( | ||
10918 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10919 | relationIterpretation:PartialRelationInterpretation, | ||
10920 | from: DefinedElement, to: DefinedElement) | ||
10921 | { | ||
10922 | find interpretation(problem,interpretation); | ||
10923 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10924 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
10925 | find mustExist(problem, interpretation, from); | ||
10926 | find mustExist(problem, interpretation, to); | ||
10927 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10928 | BooleanElement(to); | ||
10929 | find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10930 | neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10931 | } | ||
10932 | pattern refineRelation_derived_attribute_EStructuralFeature( | ||
10933 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10934 | relationIterpretation:PartialRelationInterpretation, | ||
10935 | from: DefinedElement, to: DefinedElement) | ||
10936 | { | ||
10937 | find interpretation(problem,interpretation); | ||
10938 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10939 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
10940 | find mustExist(problem, interpretation, from); | ||
10941 | find mustExist(problem, interpretation, to); | ||
10942 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
10943 | BooleanElement(to); | ||
10944 | find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10945 | neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
10946 | } | ||
10947 | pattern refineRelation_ordered_attribute_ETypedElement( | ||
10948 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10949 | relationIterpretation:PartialRelationInterpretation, | ||
10950 | from: DefinedElement, to: DefinedElement) | ||
10951 | { | ||
10952 | find interpretation(problem,interpretation); | ||
10953 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10954 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
10955 | find mustExist(problem, interpretation, from); | ||
10956 | find mustExist(problem, interpretation, to); | ||
10957 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
10958 | BooleanElement(to); | ||
10959 | find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
10960 | neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
10961 | } | ||
10962 | pattern refineRelation_unique_attribute_ETypedElement( | ||
10963 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10964 | relationIterpretation:PartialRelationInterpretation, | ||
10965 | from: DefinedElement, to: DefinedElement) | ||
10966 | { | ||
10967 | find interpretation(problem,interpretation); | ||
10968 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10969 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
10970 | find mustExist(problem, interpretation, from); | ||
10971 | find mustExist(problem, interpretation, to); | ||
10972 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
10973 | BooleanElement(to); | ||
10974 | find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
10975 | neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
10976 | } | ||
10977 | pattern refineRelation_lowerBound_attribute_ETypedElement( | ||
10978 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10979 | relationIterpretation:PartialRelationInterpretation, | ||
10980 | from: DefinedElement, to: DefinedElement) | ||
10981 | { | ||
10982 | find interpretation(problem,interpretation); | ||
10983 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10984 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
10985 | find mustExist(problem, interpretation, from); | ||
10986 | find mustExist(problem, interpretation, to); | ||
10987 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
10988 | IntegerElement(to); | ||
10989 | find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
10990 | neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
10991 | } | ||
10992 | pattern refineRelation_upperBound_attribute_ETypedElement( | ||
10993 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
10994 | relationIterpretation:PartialRelationInterpretation, | ||
10995 | from: DefinedElement, to: DefinedElement) | ||
10996 | { | ||
10997 | find interpretation(problem,interpretation); | ||
10998 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
10999 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
11000 | find mustExist(problem, interpretation, from); | ||
11001 | find mustExist(problem, interpretation, to); | ||
11002 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
11003 | IntegerElement(to); | ||
11004 | find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
11005 | neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
11006 | } | ||
11007 | pattern refineRelation_many_attribute_ETypedElement( | ||
11008 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
11009 | relationIterpretation:PartialRelationInterpretation, | ||
11010 | from: DefinedElement, to: DefinedElement) | ||
11011 | { | ||
11012 | find interpretation(problem,interpretation); | ||
11013 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
11014 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
11015 | find mustExist(problem, interpretation, from); | ||
11016 | find mustExist(problem, interpretation, to); | ||
11017 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
11018 | BooleanElement(to); | ||
11019 | find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
11020 | neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
11021 | } | ||
11022 | pattern refineRelation_required_attribute_ETypedElement( | ||
11023 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
11024 | relationIterpretation:PartialRelationInterpretation, | ||
11025 | from: DefinedElement, to: DefinedElement) | ||
11026 | { | ||
11027 | find interpretation(problem,interpretation); | ||
11028 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
11029 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
11030 | find mustExist(problem, interpretation, from); | ||
11031 | find mustExist(problem, interpretation, to); | ||
11032 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
11033 | BooleanElement(to); | ||
11034 | find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
11035 | neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
11036 | } | ||
11037 | pattern refineRelation_key_attribute_EStringToStringMapEntry( | ||
11038 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
11039 | relationIterpretation:PartialRelationInterpretation, | ||
11040 | from: DefinedElement, to: DefinedElement) | ||
11041 | { | ||
11042 | find interpretation(problem,interpretation); | ||
11043 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
11044 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
11045 | find mustExist(problem, interpretation, from); | ||
11046 | find mustExist(problem, interpretation, to); | ||
11047 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
11048 | StringElement(to); | ||
11049 | find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
11050 | neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
11051 | } | ||
11052 | pattern refineRelation_value_attribute_EStringToStringMapEntry( | ||
11053 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
11054 | relationIterpretation:PartialRelationInterpretation, | ||
11055 | from: DefinedElement, to: DefinedElement) | ||
11056 | { | ||
11057 | find interpretation(problem,interpretation); | ||
11058 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
11059 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
11060 | find mustExist(problem, interpretation, from); | ||
11061 | find mustExist(problem, interpretation, to); | ||
11062 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
11063 | StringElement(to); | ||
11064 | find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
11065 | neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
11066 | } | ||
11067 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
11068 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
11069 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
11070 | |||
11071 | ////////// | ||
11072 | // 0. Util | ||
11073 | ////////// | ||
11074 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11075 | PartialInterpretation.problem(interpretation,problem); | ||
11076 | } | ||
11077 | |||
11078 | ///////////////////////// | ||
11079 | // 0.1 Existence | ||
11080 | ///////////////////////// | ||
11081 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11082 | find interpretation(problem,interpretation); | ||
11083 | LogicProblem.elements(problem,element); | ||
11084 | } or { | ||
11085 | find interpretation(problem,interpretation); | ||
11086 | PartialInterpretation.newElements(interpretation,element); | ||
11087 | } | ||
11088 | |||
11089 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11090 | find mustExist(problem,interpretation,element); | ||
11091 | } or { | ||
11092 | find interpretation(problem,interpretation); | ||
11093 | neg find elementCloseWorld(element); | ||
11094 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11095 | } | ||
11096 | |||
11097 | private pattern elementCloseWorld(element:DefinedElement) { | ||
11098 | PartialInterpretation.openWorldElements(i,element); | ||
11099 | PartialInterpretation.maxNewElements(i,0); | ||
11100 | } or { | ||
11101 | Scope.targetTypeInterpretation(scope,interpretation); | ||
11102 | PartialTypeInterpratation.elements(interpretation,element); | ||
11103 | Scope.maxNewElements(scope,0); | ||
11104 | } | ||
11105 | |||
11106 | //////////////////////// | ||
11107 | // 0.2 Equivalence | ||
11108 | //////////////////////// | ||
11109 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
11110 | find mayExist(problem,interpretation,a); | ||
11111 | find mayExist(problem,interpretation,b); | ||
11112 | a == b; | ||
11113 | } | ||
11114 | |||
11115 | //////////////////////// | ||
11116 | // 0.3 Required Patterns by TypeIndexer | ||
11117 | //////////////////////// | ||
11118 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
11119 | find interpretation(problem,interpretation); | ||
11120 | LogicProblem.types(problem,type); | ||
11121 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
11122 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11123 | } | ||
11124 | |||
11125 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
11126 | find interpretation(problem,interpretation); | ||
11127 | LogicProblem.types(problem,type); | ||
11128 | TypeDefinition.elements(type,element); | ||
11129 | } or { | ||
11130 | find interpretation(problem,interpretation); | ||
11131 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
11132 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
11133 | } | ||
11134 | |||
11135 | private pattern isPrimitive(element: PrimitiveElement) { | ||
11136 | PrimitiveElement(element); | ||
11137 | } | ||
11138 | |||
11139 | ////////// | ||
11140 | // 1. Problem-Specific Base Indexers | ||
11141 | ////////// | ||
11142 | // 1.1 Type Indexers | ||
11143 | ////////// | ||
11144 | // 1.1.1 primitive Type Indexers | ||
11145 | ////////// | ||
11146 | |||
11147 | ////////// | ||
11148 | // 1.1.2 domain-specific Type Indexers | ||
11149 | ////////// | ||
11150 | /** | ||
11151 | * An element must be an instance of type "EAttribute class". | ||
11152 | */ | ||
11153 | private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11154 | Type.name(type,"EAttribute class"); | ||
11155 | find directInstanceOf(problem,interpretation,element,type); | ||
11156 | } | ||
11157 | private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11158 | find interpretation(problem,interpretation); | ||
11159 | PartialInterpretation.scopes(interpretation,scope); | ||
11160 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11161 | Scope.maxNewElements(scope,0); | ||
11162 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11163 | Type.name(type,"EAttribute class"); | ||
11164 | } | ||
11165 | |||
11166 | /** | ||
11167 | * An element may be an instance of type "EAttribute class". | ||
11168 | */ | ||
11169 | private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11170 | { | ||
11171 | find interpretation(problem,interpretation); | ||
11172 | PartialInterpretation.newElements(interpretation,element); | ||
11173 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11174 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11175 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11176 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11177 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11178 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11179 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11180 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11181 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
11182 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11183 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11184 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
11185 | neg find isPrimitive(element); | ||
11186 | } or { | ||
11187 | find interpretation(problem,interpretation); | ||
11188 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11189 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11190 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11191 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11192 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11193 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11194 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11195 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11196 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11197 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
11198 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11199 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11200 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
11201 | neg find isPrimitive(element); | ||
11202 | } or | ||
11203 | { find mustInstanceOfEAttribute_class(problem,interpretation,element); } | ||
11204 | /** | ||
11205 | * An element must be an instance of type "EAnnotation class". | ||
11206 | */ | ||
11207 | private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11208 | Type.name(type,"EAnnotation class"); | ||
11209 | find directInstanceOf(problem,interpretation,element,type); | ||
11210 | } | ||
11211 | private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11212 | find interpretation(problem,interpretation); | ||
11213 | PartialInterpretation.scopes(interpretation,scope); | ||
11214 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11215 | Scope.maxNewElements(scope,0); | ||
11216 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11217 | Type.name(type,"EAnnotation class"); | ||
11218 | } | ||
11219 | |||
11220 | /** | ||
11221 | * An element may be an instance of type "EAnnotation class". | ||
11222 | */ | ||
11223 | private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11224 | { | ||
11225 | find interpretation(problem,interpretation); | ||
11226 | PartialInterpretation.newElements(interpretation,element); | ||
11227 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11228 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
11229 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11230 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11231 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
11232 | neg find isPrimitive(element); | ||
11233 | } or { | ||
11234 | find interpretation(problem,interpretation); | ||
11235 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11236 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11237 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
11238 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11239 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11240 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
11241 | neg find isPrimitive(element); | ||
11242 | } or | ||
11243 | { find mustInstanceOfEAnnotation_class(problem,interpretation,element); } | ||
11244 | /** | ||
11245 | * An element must be an instance of type "EClass class". | ||
11246 | */ | ||
11247 | private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11248 | Type.name(type,"EClass class"); | ||
11249 | find directInstanceOf(problem,interpretation,element,type); | ||
11250 | } | ||
11251 | private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11252 | find interpretation(problem,interpretation); | ||
11253 | PartialInterpretation.scopes(interpretation,scope); | ||
11254 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11255 | Scope.maxNewElements(scope,0); | ||
11256 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11257 | Type.name(type,"EClass class"); | ||
11258 | } | ||
11259 | |||
11260 | /** | ||
11261 | * An element may be an instance of type "EClass class". | ||
11262 | */ | ||
11263 | private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11264 | { | ||
11265 | find interpretation(problem,interpretation); | ||
11266 | PartialInterpretation.newElements(interpretation,element); | ||
11267 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11268 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11269 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11270 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11271 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11272 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11273 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11274 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
11275 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11276 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
11277 | neg find isPrimitive(element); | ||
11278 | } or { | ||
11279 | find interpretation(problem,interpretation); | ||
11280 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11281 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11282 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11283 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11284 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11285 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11286 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11287 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11288 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
11289 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11290 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
11291 | neg find isPrimitive(element); | ||
11292 | } or | ||
11293 | { find mustInstanceOfEClass_class(problem,interpretation,element); } | ||
11294 | /** | ||
11295 | * An element must be an instance of type "EClassifier class". | ||
11296 | */ | ||
11297 | private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11298 | Type.name(type,"EClassifier class"); | ||
11299 | find directInstanceOf(problem,interpretation,element,type); | ||
11300 | } | ||
11301 | private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11302 | find interpretation(problem,interpretation); | ||
11303 | PartialInterpretation.scopes(interpretation,scope); | ||
11304 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11305 | Scope.maxNewElements(scope,0); | ||
11306 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11307 | Type.name(type,"EClassifier class"); | ||
11308 | } | ||
11309 | |||
11310 | /** | ||
11311 | * An element may be an instance of type "EClassifier class". | ||
11312 | */ | ||
11313 | private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11314 | { | ||
11315 | find interpretation(problem,interpretation); | ||
11316 | PartialInterpretation.newElements(interpretation,element); | ||
11317 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11318 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11319 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11320 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11321 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11322 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11323 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11324 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
11325 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11326 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11327 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
11328 | neg find isPrimitive(element); | ||
11329 | } or { | ||
11330 | find interpretation(problem,interpretation); | ||
11331 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11332 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11333 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11334 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11335 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11336 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11337 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11338 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11339 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
11340 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11341 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11342 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
11343 | neg find isPrimitive(element); | ||
11344 | } or | ||
11345 | { find mustInstanceOfEClassifier_class(problem,interpretation,element); } | ||
11346 | /** | ||
11347 | * An element must be an instance of type "EDataType class". | ||
11348 | */ | ||
11349 | private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11350 | Type.name(type,"EDataType class"); | ||
11351 | find directInstanceOf(problem,interpretation,element,type); | ||
11352 | } | ||
11353 | private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11354 | find interpretation(problem,interpretation); | ||
11355 | PartialInterpretation.scopes(interpretation,scope); | ||
11356 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11357 | Scope.maxNewElements(scope,0); | ||
11358 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11359 | Type.name(type,"EDataType class"); | ||
11360 | } | ||
11361 | |||
11362 | /** | ||
11363 | * An element may be an instance of type "EDataType class". | ||
11364 | */ | ||
11365 | private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11366 | { | ||
11367 | find interpretation(problem,interpretation); | ||
11368 | PartialInterpretation.newElements(interpretation,element); | ||
11369 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11370 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11371 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11372 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11373 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11374 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11375 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
11376 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11377 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11378 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11379 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
11380 | neg find isPrimitive(element); | ||
11381 | } or { | ||
11382 | find interpretation(problem,interpretation); | ||
11383 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11384 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11385 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11386 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11387 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11388 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11389 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11390 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
11391 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11392 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11393 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11394 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
11395 | neg find isPrimitive(element); | ||
11396 | } or | ||
11397 | { find mustInstanceOfEDataType_class(problem,interpretation,element); } | ||
11398 | /** | ||
11399 | * An element must be an instance of type "EEnum class". | ||
11400 | */ | ||
11401 | private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11402 | Type.name(type,"EEnum class"); | ||
11403 | find directInstanceOf(problem,interpretation,element,type); | ||
11404 | } | ||
11405 | private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11406 | find interpretation(problem,interpretation); | ||
11407 | PartialInterpretation.scopes(interpretation,scope); | ||
11408 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11409 | Scope.maxNewElements(scope,0); | ||
11410 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11411 | Type.name(type,"EEnum class"); | ||
11412 | } | ||
11413 | |||
11414 | /** | ||
11415 | * An element may be an instance of type "EEnum class". | ||
11416 | */ | ||
11417 | private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11418 | { | ||
11419 | find interpretation(problem,interpretation); | ||
11420 | PartialInterpretation.newElements(interpretation,element); | ||
11421 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11422 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11423 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11424 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11425 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11426 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11427 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11428 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11429 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11430 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
11431 | neg find isPrimitive(element); | ||
11432 | } or { | ||
11433 | find interpretation(problem,interpretation); | ||
11434 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11435 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11436 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11437 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11438 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11439 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11440 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11441 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11442 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
11443 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11444 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
11445 | neg find isPrimitive(element); | ||
11446 | } or | ||
11447 | { find mustInstanceOfEEnum_class(problem,interpretation,element); } | ||
11448 | /** | ||
11449 | * An element must be an instance of type "EEnumLiteral class". | ||
11450 | */ | ||
11451 | private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11452 | Type.name(type,"EEnumLiteral class"); | ||
11453 | find directInstanceOf(problem,interpretation,element,type); | ||
11454 | } | ||
11455 | private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11456 | find interpretation(problem,interpretation); | ||
11457 | PartialInterpretation.scopes(interpretation,scope); | ||
11458 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11459 | Scope.maxNewElements(scope,0); | ||
11460 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11461 | Type.name(type,"EEnumLiteral class"); | ||
11462 | } | ||
11463 | |||
11464 | /** | ||
11465 | * An element may be an instance of type "EEnumLiteral class". | ||
11466 | */ | ||
11467 | private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11468 | { | ||
11469 | find interpretation(problem,interpretation); | ||
11470 | PartialInterpretation.newElements(interpretation,element); | ||
11471 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11472 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11473 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11474 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11475 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11476 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11477 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11478 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11479 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
11480 | neg find isPrimitive(element); | ||
11481 | } or { | ||
11482 | find interpretation(problem,interpretation); | ||
11483 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11484 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11485 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11486 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
11487 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11488 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11489 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11490 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11491 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11492 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
11493 | neg find isPrimitive(element); | ||
11494 | } or | ||
11495 | { find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); } | ||
11496 | /** | ||
11497 | * An element must be an instance of type "EModelElement class". | ||
11498 | */ | ||
11499 | private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11500 | Type.name(type,"EModelElement class"); | ||
11501 | find directInstanceOf(problem,interpretation,element,type); | ||
11502 | } | ||
11503 | private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11504 | find interpretation(problem,interpretation); | ||
11505 | PartialInterpretation.scopes(interpretation,scope); | ||
11506 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11507 | Scope.maxNewElements(scope,0); | ||
11508 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11509 | Type.name(type,"EModelElement class"); | ||
11510 | } | ||
11511 | |||
11512 | /** | ||
11513 | * An element may be an instance of type "EModelElement class". | ||
11514 | */ | ||
11515 | private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11516 | { | ||
11517 | find interpretation(problem,interpretation); | ||
11518 | PartialInterpretation.newElements(interpretation,element); | ||
11519 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11520 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11521 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
11522 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11523 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11524 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
11525 | neg find isPrimitive(element); | ||
11526 | } or { | ||
11527 | find interpretation(problem,interpretation); | ||
11528 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11529 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11530 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11531 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
11532 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11533 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11534 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
11535 | neg find isPrimitive(element); | ||
11536 | } or | ||
11537 | { find mustInstanceOfEModelElement_class(problem,interpretation,element); } | ||
11538 | /** | ||
11539 | * An element must be an instance of type "ENamedElement class". | ||
11540 | */ | ||
11541 | private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11542 | Type.name(type,"ENamedElement class"); | ||
11543 | find directInstanceOf(problem,interpretation,element,type); | ||
11544 | } | ||
11545 | private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11546 | find interpretation(problem,interpretation); | ||
11547 | PartialInterpretation.scopes(interpretation,scope); | ||
11548 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11549 | Scope.maxNewElements(scope,0); | ||
11550 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11551 | Type.name(type,"ENamedElement class"); | ||
11552 | } | ||
11553 | |||
11554 | /** | ||
11555 | * An element may be an instance of type "ENamedElement class". | ||
11556 | */ | ||
11557 | private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11558 | { | ||
11559 | find interpretation(problem,interpretation); | ||
11560 | PartialInterpretation.newElements(interpretation,element); | ||
11561 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11562 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11563 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11564 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11565 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11566 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
11567 | neg find isPrimitive(element); | ||
11568 | } or { | ||
11569 | find interpretation(problem,interpretation); | ||
11570 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11571 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11572 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11573 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11574 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11575 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11576 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
11577 | neg find isPrimitive(element); | ||
11578 | } or | ||
11579 | { find mustInstanceOfENamedElement_class(problem,interpretation,element); } | ||
11580 | /** | ||
11581 | * An element must be an instance of type "EObject class". | ||
11582 | */ | ||
11583 | private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11584 | Type.name(type,"EObject class"); | ||
11585 | find directInstanceOf(problem,interpretation,element,type); | ||
11586 | } | ||
11587 | private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11588 | find interpretation(problem,interpretation); | ||
11589 | PartialInterpretation.scopes(interpretation,scope); | ||
11590 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11591 | Scope.maxNewElements(scope,0); | ||
11592 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11593 | Type.name(type,"EObject class"); | ||
11594 | } | ||
11595 | |||
11596 | /** | ||
11597 | * An element may be an instance of type "EObject class". | ||
11598 | */ | ||
11599 | private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11600 | { | ||
11601 | find interpretation(problem,interpretation); | ||
11602 | PartialInterpretation.newElements(interpretation,element); | ||
11603 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11604 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11605 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11606 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
11607 | neg find isPrimitive(element); | ||
11608 | } or { | ||
11609 | find interpretation(problem,interpretation); | ||
11610 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11611 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11612 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11613 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11614 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
11615 | neg find isPrimitive(element); | ||
11616 | } or | ||
11617 | { find mustInstanceOfEObject_class(problem,interpretation,element); } | ||
11618 | /** | ||
11619 | * An element must be an instance of type "EOperation class". | ||
11620 | */ | ||
11621 | private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11622 | Type.name(type,"EOperation class"); | ||
11623 | find directInstanceOf(problem,interpretation,element,type); | ||
11624 | } | ||
11625 | private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11626 | find interpretation(problem,interpretation); | ||
11627 | PartialInterpretation.scopes(interpretation,scope); | ||
11628 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11629 | Scope.maxNewElements(scope,0); | ||
11630 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11631 | Type.name(type,"EOperation class"); | ||
11632 | } | ||
11633 | |||
11634 | /** | ||
11635 | * An element may be an instance of type "EOperation class". | ||
11636 | */ | ||
11637 | private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11638 | { | ||
11639 | find interpretation(problem,interpretation); | ||
11640 | PartialInterpretation.newElements(interpretation,element); | ||
11641 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11642 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11643 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11644 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11645 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11646 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11647 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11648 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11649 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11650 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11651 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
11652 | neg find isPrimitive(element); | ||
11653 | } or { | ||
11654 | find interpretation(problem,interpretation); | ||
11655 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11656 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11657 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11658 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11659 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11660 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11661 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11662 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11663 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11664 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11665 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11666 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
11667 | neg find isPrimitive(element); | ||
11668 | } or | ||
11669 | { find mustInstanceOfEOperation_class(problem,interpretation,element); } | ||
11670 | /** | ||
11671 | * An element must be an instance of type "EPackage class". | ||
11672 | */ | ||
11673 | private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11674 | Type.name(type,"EPackage class"); | ||
11675 | find directInstanceOf(problem,interpretation,element,type); | ||
11676 | } | ||
11677 | private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11678 | find interpretation(problem,interpretation); | ||
11679 | PartialInterpretation.scopes(interpretation,scope); | ||
11680 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11681 | Scope.maxNewElements(scope,0); | ||
11682 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11683 | Type.name(type,"EPackage class"); | ||
11684 | } | ||
11685 | |||
11686 | /** | ||
11687 | * An element may be an instance of type "EPackage class". | ||
11688 | */ | ||
11689 | private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11690 | { | ||
11691 | find interpretation(problem,interpretation); | ||
11692 | PartialInterpretation.newElements(interpretation,element); | ||
11693 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11694 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11695 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11696 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11697 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
11698 | neg find isPrimitive(element); | ||
11699 | } or { | ||
11700 | find interpretation(problem,interpretation); | ||
11701 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11702 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11703 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
11704 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11705 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11706 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
11707 | neg find isPrimitive(element); | ||
11708 | } or | ||
11709 | { find mustInstanceOfEPackage_class(problem,interpretation,element); } | ||
11710 | /** | ||
11711 | * An element must be an instance of type "EParameter class". | ||
11712 | */ | ||
11713 | private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11714 | Type.name(type,"EParameter class"); | ||
11715 | find directInstanceOf(problem,interpretation,element,type); | ||
11716 | } | ||
11717 | private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11718 | find interpretation(problem,interpretation); | ||
11719 | PartialInterpretation.scopes(interpretation,scope); | ||
11720 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11721 | Scope.maxNewElements(scope,0); | ||
11722 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11723 | Type.name(type,"EParameter class"); | ||
11724 | } | ||
11725 | |||
11726 | /** | ||
11727 | * An element may be an instance of type "EParameter class". | ||
11728 | */ | ||
11729 | private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11730 | { | ||
11731 | find interpretation(problem,interpretation); | ||
11732 | PartialInterpretation.newElements(interpretation,element); | ||
11733 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11734 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11735 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11736 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11737 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11738 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11739 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11740 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11741 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11742 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11743 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
11744 | neg find isPrimitive(element); | ||
11745 | } or { | ||
11746 | find interpretation(problem,interpretation); | ||
11747 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11748 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11749 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11750 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11751 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11752 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11753 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11754 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11755 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11756 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11757 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11758 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
11759 | neg find isPrimitive(element); | ||
11760 | } or | ||
11761 | { find mustInstanceOfEParameter_class(problem,interpretation,element); } | ||
11762 | /** | ||
11763 | * An element must be an instance of type "EReference class". | ||
11764 | */ | ||
11765 | private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11766 | Type.name(type,"EReference class"); | ||
11767 | find directInstanceOf(problem,interpretation,element,type); | ||
11768 | } | ||
11769 | private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11770 | find interpretation(problem,interpretation); | ||
11771 | PartialInterpretation.scopes(interpretation,scope); | ||
11772 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11773 | Scope.maxNewElements(scope,0); | ||
11774 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11775 | Type.name(type,"EReference class"); | ||
11776 | } | ||
11777 | |||
11778 | /** | ||
11779 | * An element may be an instance of type "EReference class". | ||
11780 | */ | ||
11781 | private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11782 | { | ||
11783 | find interpretation(problem,interpretation); | ||
11784 | PartialInterpretation.newElements(interpretation,element); | ||
11785 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11786 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11787 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11788 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
11789 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11790 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11791 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11792 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11793 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11794 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11795 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11796 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
11797 | neg find isPrimitive(element); | ||
11798 | } or { | ||
11799 | find interpretation(problem,interpretation); | ||
11800 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11801 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11802 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11803 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11804 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
11805 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11806 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11807 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11808 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11809 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11810 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11811 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11812 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
11813 | neg find isPrimitive(element); | ||
11814 | } or | ||
11815 | { find mustInstanceOfEReference_class(problem,interpretation,element); } | ||
11816 | /** | ||
11817 | * An element must be an instance of type "EStructuralFeature class". | ||
11818 | */ | ||
11819 | private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11820 | Type.name(type,"EStructuralFeature class"); | ||
11821 | find directInstanceOf(problem,interpretation,element,type); | ||
11822 | } | ||
11823 | private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11824 | find interpretation(problem,interpretation); | ||
11825 | PartialInterpretation.scopes(interpretation,scope); | ||
11826 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11827 | Scope.maxNewElements(scope,0); | ||
11828 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11829 | Type.name(type,"EStructuralFeature class"); | ||
11830 | } | ||
11831 | |||
11832 | /** | ||
11833 | * An element may be an instance of type "EStructuralFeature class". | ||
11834 | */ | ||
11835 | private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11836 | { | ||
11837 | find interpretation(problem,interpretation); | ||
11838 | PartialInterpretation.newElements(interpretation,element); | ||
11839 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11840 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11841 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11842 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11843 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
11844 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11845 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11846 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11847 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11848 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
11849 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11850 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11851 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
11852 | neg find isPrimitive(element); | ||
11853 | } or { | ||
11854 | find interpretation(problem,interpretation); | ||
11855 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11856 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11857 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11858 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11859 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11860 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
11861 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11862 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11863 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11864 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11865 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
11866 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11867 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11868 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
11869 | neg find isPrimitive(element); | ||
11870 | } or | ||
11871 | { find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } | ||
11872 | /** | ||
11873 | * An element must be an instance of type "ETypedElement class". | ||
11874 | */ | ||
11875 | private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11876 | Type.name(type,"ETypedElement class"); | ||
11877 | find directInstanceOf(problem,interpretation,element,type); | ||
11878 | } | ||
11879 | private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11880 | find interpretation(problem,interpretation); | ||
11881 | PartialInterpretation.scopes(interpretation,scope); | ||
11882 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11883 | Scope.maxNewElements(scope,0); | ||
11884 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11885 | Type.name(type,"ETypedElement class"); | ||
11886 | } | ||
11887 | |||
11888 | /** | ||
11889 | * An element may be an instance of type "ETypedElement class". | ||
11890 | */ | ||
11891 | private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11892 | { | ||
11893 | find interpretation(problem,interpretation); | ||
11894 | PartialInterpretation.newElements(interpretation,element); | ||
11895 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11896 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11897 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11898 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11899 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11900 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11901 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11902 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11903 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11904 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11905 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11906 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
11907 | neg find isPrimitive(element); | ||
11908 | } or { | ||
11909 | find interpretation(problem,interpretation); | ||
11910 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11911 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11912 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
11913 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
11914 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
11915 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11916 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
11917 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
11918 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
11919 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
11920 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11921 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
11922 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
11923 | neg find isPrimitive(element); | ||
11924 | } or | ||
11925 | { find mustInstanceOfETypedElement_class(problem,interpretation,element); } | ||
11926 | /** | ||
11927 | * An element must be an instance of type "EStringToStringMapEntry class". | ||
11928 | */ | ||
11929 | private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11930 | Type.name(type,"EStringToStringMapEntry class"); | ||
11931 | find directInstanceOf(problem,interpretation,element,type); | ||
11932 | } | ||
11933 | private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11934 | find interpretation(problem,interpretation); | ||
11935 | PartialInterpretation.scopes(interpretation,scope); | ||
11936 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11937 | Scope.maxNewElements(scope,0); | ||
11938 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11939 | Type.name(type,"EStringToStringMapEntry class"); | ||
11940 | } | ||
11941 | |||
11942 | /** | ||
11943 | * An element may be an instance of type "EStringToStringMapEntry class". | ||
11944 | */ | ||
11945 | private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11946 | { | ||
11947 | find interpretation(problem,interpretation); | ||
11948 | PartialInterpretation.newElements(interpretation,element); | ||
11949 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11950 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11951 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11952 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
11953 | neg find isPrimitive(element); | ||
11954 | } or { | ||
11955 | find interpretation(problem,interpretation); | ||
11956 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11957 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
11958 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11959 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11960 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
11961 | neg find isPrimitive(element); | ||
11962 | } or | ||
11963 | { find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } | ||
11964 | /** | ||
11965 | * An element must be an instance of type "EGenericType class". | ||
11966 | */ | ||
11967 | private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
11968 | Type.name(type,"EGenericType class"); | ||
11969 | find directInstanceOf(problem,interpretation,element,type); | ||
11970 | } | ||
11971 | private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
11972 | find interpretation(problem,interpretation); | ||
11973 | PartialInterpretation.scopes(interpretation,scope); | ||
11974 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
11975 | Scope.maxNewElements(scope,0); | ||
11976 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
11977 | Type.name(type,"EGenericType class"); | ||
11978 | } | ||
11979 | |||
11980 | /** | ||
11981 | * An element may be an instance of type "EGenericType class". | ||
11982 | */ | ||
11983 | private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
11984 | { | ||
11985 | find interpretation(problem,interpretation); | ||
11986 | PartialInterpretation.newElements(interpretation,element); | ||
11987 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11988 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11989 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11990 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
11991 | neg find isPrimitive(element); | ||
11992 | } or { | ||
11993 | find interpretation(problem,interpretation); | ||
11994 | PartialInterpretation.openWorldElements(interpretation,element); | ||
11995 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
11996 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
11997 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
11998 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
11999 | neg find isPrimitive(element); | ||
12000 | } or | ||
12001 | { find mustInstanceOfEGenericType_class(problem,interpretation,element); } | ||
12002 | /** | ||
12003 | * An element must be an instance of type "ETypeParameter class". | ||
12004 | */ | ||
12005 | private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12006 | Type.name(type,"ETypeParameter class"); | ||
12007 | find directInstanceOf(problem,interpretation,element,type); | ||
12008 | } | ||
12009 | private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12010 | find interpretation(problem,interpretation); | ||
12011 | PartialInterpretation.scopes(interpretation,scope); | ||
12012 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12013 | Scope.maxNewElements(scope,0); | ||
12014 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12015 | Type.name(type,"ETypeParameter class"); | ||
12016 | } | ||
12017 | |||
12018 | /** | ||
12019 | * An element may be an instance of type "ETypeParameter class". | ||
12020 | */ | ||
12021 | private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12022 | { | ||
12023 | find interpretation(problem,interpretation); | ||
12024 | PartialInterpretation.newElements(interpretation,element); | ||
12025 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12026 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12027 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12028 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
12029 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12030 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12031 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12032 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12033 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
12034 | neg find isPrimitive(element); | ||
12035 | } or { | ||
12036 | find interpretation(problem,interpretation); | ||
12037 | PartialInterpretation.openWorldElements(interpretation,element); | ||
12038 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12039 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12040 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12041 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
12042 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12043 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12044 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12045 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12046 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
12047 | neg find isPrimitive(element); | ||
12048 | } or | ||
12049 | { find mustInstanceOfETypeParameter_class(problem,interpretation,element); } | ||
12050 | /** | ||
12051 | * An element must be an instance of type "EModelElement class DefinedPart". | ||
12052 | */ | ||
12053 | private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12054 | Type.name(type,"EModelElement class DefinedPart"); | ||
12055 | find directInstanceOf(problem,interpretation,element,type); | ||
12056 | } | ||
12057 | private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12058 | find interpretation(problem,interpretation); | ||
12059 | PartialInterpretation.scopes(interpretation,scope); | ||
12060 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12061 | Scope.maxNewElements(scope,0); | ||
12062 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12063 | Type.name(type,"EModelElement class DefinedPart"); | ||
12064 | } | ||
12065 | |||
12066 | /** | ||
12067 | * An element may be an instance of type "EModelElement class DefinedPart". | ||
12068 | */ | ||
12069 | private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12070 | { find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); } | ||
12071 | /** | ||
12072 | * An element must be an instance of type "EModelElement class UndefinedPart". | ||
12073 | */ | ||
12074 | private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12075 | Type.name(type,"EModelElement class UndefinedPart"); | ||
12076 | find directInstanceOf(problem,interpretation,element,type); | ||
12077 | } | ||
12078 | private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12079 | find interpretation(problem,interpretation); | ||
12080 | PartialInterpretation.scopes(interpretation,scope); | ||
12081 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12082 | Scope.maxNewElements(scope,0); | ||
12083 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12084 | Type.name(type,"EModelElement class UndefinedPart"); | ||
12085 | } | ||
12086 | |||
12087 | /** | ||
12088 | * An element may be an instance of type "EModelElement class UndefinedPart". | ||
12089 | */ | ||
12090 | private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12091 | { | ||
12092 | find interpretation(problem,interpretation); | ||
12093 | PartialInterpretation.newElements(interpretation,element); | ||
12094 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12095 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12096 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
12097 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12098 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12099 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
12100 | neg find isPrimitive(element); | ||
12101 | } or { | ||
12102 | find interpretation(problem,interpretation); | ||
12103 | PartialInterpretation.openWorldElements(interpretation,element); | ||
12104 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12105 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12106 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
12107 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12108 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12109 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
12110 | neg find isPrimitive(element); | ||
12111 | } or | ||
12112 | { find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } | ||
12113 | /** | ||
12114 | * An element must be an instance of type "ENamedElement class DefinedPart". | ||
12115 | */ | ||
12116 | private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12117 | Type.name(type,"ENamedElement class DefinedPart"); | ||
12118 | find directInstanceOf(problem,interpretation,element,type); | ||
12119 | } | ||
12120 | private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12121 | find interpretation(problem,interpretation); | ||
12122 | PartialInterpretation.scopes(interpretation,scope); | ||
12123 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12124 | Scope.maxNewElements(scope,0); | ||
12125 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12126 | Type.name(type,"ENamedElement class DefinedPart"); | ||
12127 | } | ||
12128 | |||
12129 | /** | ||
12130 | * An element may be an instance of type "ENamedElement class DefinedPart". | ||
12131 | */ | ||
12132 | private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12133 | { find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); } | ||
12134 | /** | ||
12135 | * An element must be an instance of type "ENamedElement class UndefinedPart". | ||
12136 | */ | ||
12137 | private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12138 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
12139 | find directInstanceOf(problem,interpretation,element,type); | ||
12140 | } | ||
12141 | private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12142 | find interpretation(problem,interpretation); | ||
12143 | PartialInterpretation.scopes(interpretation,scope); | ||
12144 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12145 | Scope.maxNewElements(scope,0); | ||
12146 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12147 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
12148 | } | ||
12149 | |||
12150 | /** | ||
12151 | * An element may be an instance of type "ENamedElement class UndefinedPart". | ||
12152 | */ | ||
12153 | private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12154 | { | ||
12155 | find interpretation(problem,interpretation); | ||
12156 | PartialInterpretation.newElements(interpretation,element); | ||
12157 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12158 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12159 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
12160 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12161 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12162 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12163 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12164 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
12165 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12166 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
12167 | neg find isPrimitive(element); | ||
12168 | } or { | ||
12169 | find interpretation(problem,interpretation); | ||
12170 | PartialInterpretation.openWorldElements(interpretation,element); | ||
12171 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12172 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12173 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
12174 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12175 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12176 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12177 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12178 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
12179 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12180 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
12181 | neg find isPrimitive(element); | ||
12182 | } or | ||
12183 | { find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } | ||
12184 | /** | ||
12185 | * An element must be an instance of type "EPackage class DefinedPart". | ||
12186 | */ | ||
12187 | private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12188 | Type.name(type,"EPackage class DefinedPart"); | ||
12189 | find directInstanceOf(problem,interpretation,element,type); | ||
12190 | } | ||
12191 | private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12192 | find interpretation(problem,interpretation); | ||
12193 | PartialInterpretation.scopes(interpretation,scope); | ||
12194 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12195 | Scope.maxNewElements(scope,0); | ||
12196 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12197 | Type.name(type,"EPackage class DefinedPart"); | ||
12198 | } | ||
12199 | |||
12200 | /** | ||
12201 | * An element may be an instance of type "EPackage class DefinedPart". | ||
12202 | */ | ||
12203 | private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12204 | { find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } | ||
12205 | /** | ||
12206 | * An element must be an instance of type "EPackage class UndefinedPart". | ||
12207 | */ | ||
12208 | private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
12209 | Type.name(type,"EPackage class UndefinedPart"); | ||
12210 | find directInstanceOf(problem,interpretation,element,type); | ||
12211 | } | ||
12212 | private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
12213 | find interpretation(problem,interpretation); | ||
12214 | PartialInterpretation.scopes(interpretation,scope); | ||
12215 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
12216 | Scope.maxNewElements(scope,0); | ||
12217 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
12218 | Type.name(type,"EPackage class UndefinedPart"); | ||
12219 | } | ||
12220 | |||
12221 | /** | ||
12222 | * An element may be an instance of type "EPackage class UndefinedPart". | ||
12223 | */ | ||
12224 | private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
12225 | { | ||
12226 | find interpretation(problem,interpretation); | ||
12227 | PartialInterpretation.newElements(interpretation,element); | ||
12228 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12229 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12230 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12231 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12232 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12233 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12234 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
12235 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12236 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
12237 | neg find isPrimitive(element); | ||
12238 | } or { | ||
12239 | find interpretation(problem,interpretation); | ||
12240 | PartialInterpretation.openWorldElements(interpretation,element); | ||
12241 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
12242 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
12243 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
12244 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
12245 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
12246 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
12247 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
12248 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
12249 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
12250 | neg find isPrimitive(element); | ||
12251 | } or | ||
12252 | { find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } | ||
12253 | |||
12254 | ////////// | ||
12255 | // 1.2 Relation Declaration Indexers | ||
12256 | ////////// | ||
12257 | /** | ||
12258 | * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) | ||
12259 | */ | ||
12260 | private pattern mustInRelationeAttributeType_reference_EAttribute( | ||
12261 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12262 | source: DefinedElement, target:DefinedElement) | ||
12263 | { | ||
12264 | find interpretation(problem,interpretation); | ||
12265 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12266 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
12267 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12268 | BinaryElementRelationLink.param1(link,source); | ||
12269 | BinaryElementRelationLink.param2(link,target); | ||
12270 | } | ||
12271 | /** | ||
12272 | * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) | ||
12273 | */ | ||
12274 | private pattern mayInRelationeAttributeType_reference_EAttribute( | ||
12275 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12276 | source: DefinedElement, target:DefinedElement) | ||
12277 | { | ||
12278 | find interpretation(problem,interpretation); | ||
12279 | // The two endpoint of the link have to exist | ||
12280 | find mayExist(problem, interpretation, source); | ||
12281 | find mayExist(problem, interpretation, target); | ||
12282 | // Type consistency | ||
12283 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
12284 | find mayInstanceOfEDataType_class(problem,interpretation,target); | ||
12285 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
12286 | // the upper bound of the multiplicity should be considered. | ||
12287 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); | ||
12288 | check(numberOfExistingReferences < 1); | ||
12289 | } or { | ||
12290 | find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); | ||
12291 | } | ||
12292 | /** | ||
12293 | * Matcher for detecting tuples t where []details reference EAnnotation(source,target) | ||
12294 | */ | ||
12295 | private pattern mustInRelationdetails_reference_EAnnotation( | ||
12296 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12297 | source: DefinedElement, target:DefinedElement) | ||
12298 | { | ||
12299 | find interpretation(problem,interpretation); | ||
12300 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12301 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); | ||
12302 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12303 | BinaryElementRelationLink.param1(link,source); | ||
12304 | BinaryElementRelationLink.param2(link,target); | ||
12305 | } | ||
12306 | /** | ||
12307 | * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) | ||
12308 | */ | ||
12309 | private pattern mayInRelationdetails_reference_EAnnotation( | ||
12310 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12311 | source: DefinedElement, target:DefinedElement) | ||
12312 | { | ||
12313 | find interpretation(problem,interpretation); | ||
12314 | // The two endpoint of the link have to exist | ||
12315 | find mayExist(problem, interpretation, source); | ||
12316 | find mayExist(problem, interpretation, target); | ||
12317 | // Type consistency | ||
12318 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
12319 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); | ||
12320 | // The reference is containment, then a new reference cannot be create if: | ||
12321 | // 1. Multiple parents | ||
12322 | neg find mustContains4(problem,interpretation,_,target); | ||
12323 | // 2. Circle in the containment hierarchy | ||
12324 | neg find mustTransitiveContains(source,target); | ||
12325 | } or { | ||
12326 | find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); | ||
12327 | } | ||
12328 | /** | ||
12329 | * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) | ||
12330 | */ | ||
12331 | private pattern mustInRelationeModelElement_reference_EAnnotation( | ||
12332 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12333 | source: DefinedElement, target:DefinedElement) | ||
12334 | { | ||
12335 | find interpretation(problem,interpretation); | ||
12336 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12337 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); | ||
12338 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12339 | BinaryElementRelationLink.param1(link,source); | ||
12340 | BinaryElementRelationLink.param2(link,target); | ||
12341 | } | ||
12342 | /** | ||
12343 | * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) | ||
12344 | */ | ||
12345 | private pattern mayInRelationeModelElement_reference_EAnnotation( | ||
12346 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12347 | source: DefinedElement, target:DefinedElement) | ||
12348 | { | ||
12349 | find interpretation(problem,interpretation); | ||
12350 | // The two endpoint of the link have to exist | ||
12351 | find mayExist(problem, interpretation, source); | ||
12352 | find mayExist(problem, interpretation, target); | ||
12353 | // Type consistency | ||
12354 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
12355 | find mayInstanceOfEModelElement_class(problem,interpretation,target); | ||
12356 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
12357 | // the upper bound of the multiplicity should be considered. | ||
12358 | numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); | ||
12359 | check(numberOfExistingReferences < 1); | ||
12360 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
12361 | // 1. Multiple parents | ||
12362 | neg find mustContains4(problem,interpretation,source,_); | ||
12363 | // 2. Circle in the containment hierarchy | ||
12364 | neg find mustTransitiveContains(source,target); | ||
12365 | } or { | ||
12366 | find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); | ||
12367 | } | ||
12368 | /** | ||
12369 | * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) | ||
12370 | */ | ||
12371 | private pattern mustInRelationcontents_reference_EAnnotation( | ||
12372 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12373 | source: DefinedElement, target:DefinedElement) | ||
12374 | { | ||
12375 | find interpretation(problem,interpretation); | ||
12376 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12377 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); | ||
12378 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12379 | BinaryElementRelationLink.param1(link,source); | ||
12380 | BinaryElementRelationLink.param2(link,target); | ||
12381 | } | ||
12382 | /** | ||
12383 | * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) | ||
12384 | */ | ||
12385 | private pattern mayInRelationcontents_reference_EAnnotation( | ||
12386 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12387 | source: DefinedElement, target:DefinedElement) | ||
12388 | { | ||
12389 | find interpretation(problem,interpretation); | ||
12390 | // The two endpoint of the link have to exist | ||
12391 | find mayExist(problem, interpretation, source); | ||
12392 | find mayExist(problem, interpretation, target); | ||
12393 | // Type consistency | ||
12394 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
12395 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
12396 | // The reference is containment, then a new reference cannot be create if: | ||
12397 | // 1. Multiple parents | ||
12398 | neg find mustContains4(problem,interpretation,_,target); | ||
12399 | // 2. Circle in the containment hierarchy | ||
12400 | neg find mustTransitiveContains(source,target); | ||
12401 | } or { | ||
12402 | find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); | ||
12403 | } | ||
12404 | /** | ||
12405 | * Matcher for detecting tuples t where []references reference EAnnotation(source,target) | ||
12406 | */ | ||
12407 | private pattern mustInRelationreferences_reference_EAnnotation( | ||
12408 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12409 | source: DefinedElement, target:DefinedElement) | ||
12410 | { | ||
12411 | find interpretation(problem,interpretation); | ||
12412 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12413 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
12414 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12415 | BinaryElementRelationLink.param1(link,source); | ||
12416 | BinaryElementRelationLink.param2(link,target); | ||
12417 | } | ||
12418 | /** | ||
12419 | * Matcher for detecting tuples t where <>references reference EAnnotation(source,target) | ||
12420 | */ | ||
12421 | private pattern mayInRelationreferences_reference_EAnnotation( | ||
12422 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12423 | source: DefinedElement, target:DefinedElement) | ||
12424 | { | ||
12425 | find interpretation(problem,interpretation); | ||
12426 | // The two endpoint of the link have to exist | ||
12427 | find mayExist(problem, interpretation, source); | ||
12428 | find mayExist(problem, interpretation, target); | ||
12429 | // Type consistency | ||
12430 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
12431 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
12432 | } or { | ||
12433 | find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target); | ||
12434 | } | ||
12435 | /** | ||
12436 | * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target) | ||
12437 | */ | ||
12438 | private pattern mustInRelationeSuperTypes_reference_EClass( | ||
12439 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12440 | source: DefinedElement, target:DefinedElement) | ||
12441 | { | ||
12442 | find interpretation(problem,interpretation); | ||
12443 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12444 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
12445 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12446 | BinaryElementRelationLink.param1(link,source); | ||
12447 | BinaryElementRelationLink.param2(link,target); | ||
12448 | } | ||
12449 | /** | ||
12450 | * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target) | ||
12451 | */ | ||
12452 | private pattern mayInRelationeSuperTypes_reference_EClass( | ||
12453 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12454 | source: DefinedElement, target:DefinedElement) | ||
12455 | { | ||
12456 | find interpretation(problem,interpretation); | ||
12457 | // The two endpoint of the link have to exist | ||
12458 | find mayExist(problem, interpretation, source); | ||
12459 | find mayExist(problem, interpretation, target); | ||
12460 | // Type consistency | ||
12461 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12462 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
12463 | } or { | ||
12464 | find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
12465 | } | ||
12466 | /** | ||
12467 | * Matcher for detecting tuples t where []eOperations reference EClass(source,target) | ||
12468 | */ | ||
12469 | private pattern mustInRelationeOperations_reference_EClass( | ||
12470 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12471 | source: DefinedElement, target:DefinedElement) | ||
12472 | { | ||
12473 | find interpretation(problem,interpretation); | ||
12474 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12475 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); | ||
12476 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12477 | BinaryElementRelationLink.param1(link,source); | ||
12478 | BinaryElementRelationLink.param2(link,target); | ||
12479 | } | ||
12480 | /** | ||
12481 | * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) | ||
12482 | */ | ||
12483 | private pattern mayInRelationeOperations_reference_EClass( | ||
12484 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12485 | source: DefinedElement, target:DefinedElement) | ||
12486 | { | ||
12487 | find interpretation(problem,interpretation); | ||
12488 | // The two endpoint of the link have to exist | ||
12489 | find mayExist(problem, interpretation, source); | ||
12490 | find mayExist(problem, interpretation, target); | ||
12491 | // Type consistency | ||
12492 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12493 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
12494 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
12495 | // the upper bound of the opposite reference multiplicity should be considered. | ||
12496 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); | ||
12497 | check(numberOfExistingOppositeReferences < 1); | ||
12498 | // The reference is containment, then a new reference cannot be create if: | ||
12499 | // 1. Multiple parents | ||
12500 | neg find mustContains4(problem,interpretation,_,target); | ||
12501 | // 2. Circle in the containment hierarchy | ||
12502 | neg find mustTransitiveContains(source,target); | ||
12503 | } or { | ||
12504 | find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); | ||
12505 | } | ||
12506 | /** | ||
12507 | * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target) | ||
12508 | */ | ||
12509 | private pattern mustInRelationeAllAttributes_reference_EClass( | ||
12510 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12511 | source: DefinedElement, target:DefinedElement) | ||
12512 | { | ||
12513 | find interpretation(problem,interpretation); | ||
12514 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12515 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
12516 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12517 | BinaryElementRelationLink.param1(link,source); | ||
12518 | BinaryElementRelationLink.param2(link,target); | ||
12519 | } | ||
12520 | /** | ||
12521 | * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target) | ||
12522 | */ | ||
12523 | private pattern mayInRelationeAllAttributes_reference_EClass( | ||
12524 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12525 | source: DefinedElement, target:DefinedElement) | ||
12526 | { | ||
12527 | find interpretation(problem,interpretation); | ||
12528 | // The two endpoint of the link have to exist | ||
12529 | find mayExist(problem, interpretation, source); | ||
12530 | find mayExist(problem, interpretation, target); | ||
12531 | // Type consistency | ||
12532 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12533 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
12534 | } or { | ||
12535 | find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target); | ||
12536 | } | ||
12537 | /** | ||
12538 | * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target) | ||
12539 | */ | ||
12540 | private pattern mustInRelationeAllReferences_reference_EClass( | ||
12541 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12542 | source: DefinedElement, target:DefinedElement) | ||
12543 | { | ||
12544 | find interpretation(problem,interpretation); | ||
12545 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12546 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
12547 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12548 | BinaryElementRelationLink.param1(link,source); | ||
12549 | BinaryElementRelationLink.param2(link,target); | ||
12550 | } | ||
12551 | /** | ||
12552 | * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target) | ||
12553 | */ | ||
12554 | private pattern mayInRelationeAllReferences_reference_EClass( | ||
12555 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12556 | source: DefinedElement, target:DefinedElement) | ||
12557 | { | ||
12558 | find interpretation(problem,interpretation); | ||
12559 | // The two endpoint of the link have to exist | ||
12560 | find mayExist(problem, interpretation, source); | ||
12561 | find mayExist(problem, interpretation, target); | ||
12562 | // Type consistency | ||
12563 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12564 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
12565 | } or { | ||
12566 | find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target); | ||
12567 | } | ||
12568 | /** | ||
12569 | * Matcher for detecting tuples t where []eReferences reference EClass(source,target) | ||
12570 | */ | ||
12571 | private pattern mustInRelationeReferences_reference_EClass( | ||
12572 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12573 | source: DefinedElement, target:DefinedElement) | ||
12574 | { | ||
12575 | find interpretation(problem,interpretation); | ||
12576 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12577 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
12578 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12579 | BinaryElementRelationLink.param1(link,source); | ||
12580 | BinaryElementRelationLink.param2(link,target); | ||
12581 | } | ||
12582 | /** | ||
12583 | * Matcher for detecting tuples t where <>eReferences reference EClass(source,target) | ||
12584 | */ | ||
12585 | private pattern mayInRelationeReferences_reference_EClass( | ||
12586 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12587 | source: DefinedElement, target:DefinedElement) | ||
12588 | { | ||
12589 | find interpretation(problem,interpretation); | ||
12590 | // The two endpoint of the link have to exist | ||
12591 | find mayExist(problem, interpretation, source); | ||
12592 | find mayExist(problem, interpretation, target); | ||
12593 | // Type consistency | ||
12594 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12595 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
12596 | } or { | ||
12597 | find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target); | ||
12598 | } | ||
12599 | /** | ||
12600 | * Matcher for detecting tuples t where []eAttributes reference EClass(source,target) | ||
12601 | */ | ||
12602 | private pattern mustInRelationeAttributes_reference_EClass( | ||
12603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12604 | source: DefinedElement, target:DefinedElement) | ||
12605 | { | ||
12606 | find interpretation(problem,interpretation); | ||
12607 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12608 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
12609 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12610 | BinaryElementRelationLink.param1(link,source); | ||
12611 | BinaryElementRelationLink.param2(link,target); | ||
12612 | } | ||
12613 | /** | ||
12614 | * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target) | ||
12615 | */ | ||
12616 | private pattern mayInRelationeAttributes_reference_EClass( | ||
12617 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12618 | source: DefinedElement, target:DefinedElement) | ||
12619 | { | ||
12620 | find interpretation(problem,interpretation); | ||
12621 | // The two endpoint of the link have to exist | ||
12622 | find mayExist(problem, interpretation, source); | ||
12623 | find mayExist(problem, interpretation, target); | ||
12624 | // Type consistency | ||
12625 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12626 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
12627 | } or { | ||
12628 | find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target); | ||
12629 | } | ||
12630 | /** | ||
12631 | * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target) | ||
12632 | */ | ||
12633 | private pattern mustInRelationeAllContainments_reference_EClass( | ||
12634 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12635 | source: DefinedElement, target:DefinedElement) | ||
12636 | { | ||
12637 | find interpretation(problem,interpretation); | ||
12638 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12639 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
12640 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12641 | BinaryElementRelationLink.param1(link,source); | ||
12642 | BinaryElementRelationLink.param2(link,target); | ||
12643 | } | ||
12644 | /** | ||
12645 | * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target) | ||
12646 | */ | ||
12647 | private pattern mayInRelationeAllContainments_reference_EClass( | ||
12648 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12649 | source: DefinedElement, target:DefinedElement) | ||
12650 | { | ||
12651 | find interpretation(problem,interpretation); | ||
12652 | // The two endpoint of the link have to exist | ||
12653 | find mayExist(problem, interpretation, source); | ||
12654 | find mayExist(problem, interpretation, target); | ||
12655 | // Type consistency | ||
12656 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12657 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
12658 | } or { | ||
12659 | find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target); | ||
12660 | } | ||
12661 | /** | ||
12662 | * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target) | ||
12663 | */ | ||
12664 | private pattern mustInRelationeAllOperations_reference_EClass( | ||
12665 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12666 | source: DefinedElement, target:DefinedElement) | ||
12667 | { | ||
12668 | find interpretation(problem,interpretation); | ||
12669 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12670 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
12671 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12672 | BinaryElementRelationLink.param1(link,source); | ||
12673 | BinaryElementRelationLink.param2(link,target); | ||
12674 | } | ||
12675 | /** | ||
12676 | * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target) | ||
12677 | */ | ||
12678 | private pattern mayInRelationeAllOperations_reference_EClass( | ||
12679 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12680 | source: DefinedElement, target:DefinedElement) | ||
12681 | { | ||
12682 | find interpretation(problem,interpretation); | ||
12683 | // The two endpoint of the link have to exist | ||
12684 | find mayExist(problem, interpretation, source); | ||
12685 | find mayExist(problem, interpretation, target); | ||
12686 | // Type consistency | ||
12687 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12688 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
12689 | } or { | ||
12690 | find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target); | ||
12691 | } | ||
12692 | /** | ||
12693 | * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) | ||
12694 | */ | ||
12695 | private pattern mustInRelationeAllStructuralFeatures_reference_EClass( | ||
12696 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12697 | source: DefinedElement, target:DefinedElement) | ||
12698 | { | ||
12699 | find interpretation(problem,interpretation); | ||
12700 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12701 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
12702 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12703 | BinaryElementRelationLink.param1(link,source); | ||
12704 | BinaryElementRelationLink.param2(link,target); | ||
12705 | } | ||
12706 | /** | ||
12707 | * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) | ||
12708 | */ | ||
12709 | private pattern mayInRelationeAllStructuralFeatures_reference_EClass( | ||
12710 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12711 | source: DefinedElement, target:DefinedElement) | ||
12712 | { | ||
12713 | find interpretation(problem,interpretation); | ||
12714 | // The two endpoint of the link have to exist | ||
12715 | find mayExist(problem, interpretation, source); | ||
12716 | find mayExist(problem, interpretation, target); | ||
12717 | // Type consistency | ||
12718 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12719 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
12720 | } or { | ||
12721 | find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
12722 | } | ||
12723 | /** | ||
12724 | * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) | ||
12725 | */ | ||
12726 | private pattern mustInRelationeAllSuperTypes_reference_EClass( | ||
12727 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12728 | source: DefinedElement, target:DefinedElement) | ||
12729 | { | ||
12730 | find interpretation(problem,interpretation); | ||
12731 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12732 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
12733 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12734 | BinaryElementRelationLink.param1(link,source); | ||
12735 | BinaryElementRelationLink.param2(link,target); | ||
12736 | } | ||
12737 | /** | ||
12738 | * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) | ||
12739 | */ | ||
12740 | private pattern mayInRelationeAllSuperTypes_reference_EClass( | ||
12741 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12742 | source: DefinedElement, target:DefinedElement) | ||
12743 | { | ||
12744 | find interpretation(problem,interpretation); | ||
12745 | // The two endpoint of the link have to exist | ||
12746 | find mayExist(problem, interpretation, source); | ||
12747 | find mayExist(problem, interpretation, target); | ||
12748 | // Type consistency | ||
12749 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12750 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
12751 | } or { | ||
12752 | find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
12753 | } | ||
12754 | /** | ||
12755 | * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) | ||
12756 | */ | ||
12757 | private pattern mustInRelationeIDAttribute_reference_EClass( | ||
12758 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12759 | source: DefinedElement, target:DefinedElement) | ||
12760 | { | ||
12761 | find interpretation(problem,interpretation); | ||
12762 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12763 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
12764 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12765 | BinaryElementRelationLink.param1(link,source); | ||
12766 | BinaryElementRelationLink.param2(link,target); | ||
12767 | } | ||
12768 | /** | ||
12769 | * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) | ||
12770 | */ | ||
12771 | private pattern mayInRelationeIDAttribute_reference_EClass( | ||
12772 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12773 | source: DefinedElement, target:DefinedElement) | ||
12774 | { | ||
12775 | find interpretation(problem,interpretation); | ||
12776 | // The two endpoint of the link have to exist | ||
12777 | find mayExist(problem, interpretation, source); | ||
12778 | find mayExist(problem, interpretation, target); | ||
12779 | // Type consistency | ||
12780 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12781 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
12782 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
12783 | // the upper bound of the multiplicity should be considered. | ||
12784 | numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); | ||
12785 | check(numberOfExistingReferences < 1); | ||
12786 | } or { | ||
12787 | find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); | ||
12788 | } | ||
12789 | /** | ||
12790 | * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) | ||
12791 | */ | ||
12792 | private pattern mustInRelationeStructuralFeatures_reference_EClass( | ||
12793 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12794 | source: DefinedElement, target:DefinedElement) | ||
12795 | { | ||
12796 | find interpretation(problem,interpretation); | ||
12797 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12798 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); | ||
12799 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12800 | BinaryElementRelationLink.param1(link,source); | ||
12801 | BinaryElementRelationLink.param2(link,target); | ||
12802 | } | ||
12803 | /** | ||
12804 | * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) | ||
12805 | */ | ||
12806 | private pattern mayInRelationeStructuralFeatures_reference_EClass( | ||
12807 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12808 | source: DefinedElement, target:DefinedElement) | ||
12809 | { | ||
12810 | find interpretation(problem,interpretation); | ||
12811 | // The two endpoint of the link have to exist | ||
12812 | find mayExist(problem, interpretation, source); | ||
12813 | find mayExist(problem, interpretation, target); | ||
12814 | // Type consistency | ||
12815 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12816 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
12817 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
12818 | // the upper bound of the opposite reference multiplicity should be considered. | ||
12819 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); | ||
12820 | check(numberOfExistingOppositeReferences < 1); | ||
12821 | // The reference is containment, then a new reference cannot be create if: | ||
12822 | // 1. Multiple parents | ||
12823 | neg find mustContains4(problem,interpretation,_,target); | ||
12824 | // 2. Circle in the containment hierarchy | ||
12825 | neg find mustTransitiveContains(source,target); | ||
12826 | } or { | ||
12827 | find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
12828 | } | ||
12829 | /** | ||
12830 | * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target) | ||
12831 | */ | ||
12832 | private pattern mustInRelationeGenericSuperTypes_reference_EClass( | ||
12833 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12834 | source: DefinedElement, target:DefinedElement) | ||
12835 | { | ||
12836 | find interpretation(problem,interpretation); | ||
12837 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12838 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass"); | ||
12839 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12840 | BinaryElementRelationLink.param1(link,source); | ||
12841 | BinaryElementRelationLink.param2(link,target); | ||
12842 | } | ||
12843 | /** | ||
12844 | * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target) | ||
12845 | */ | ||
12846 | private pattern mayInRelationeGenericSuperTypes_reference_EClass( | ||
12847 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12848 | source: DefinedElement, target:DefinedElement) | ||
12849 | { | ||
12850 | find interpretation(problem,interpretation); | ||
12851 | // The two endpoint of the link have to exist | ||
12852 | find mayExist(problem, interpretation, source); | ||
12853 | find mayExist(problem, interpretation, target); | ||
12854 | // Type consistency | ||
12855 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12856 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
12857 | // The reference is containment, then a new reference cannot be create if: | ||
12858 | // 1. Multiple parents | ||
12859 | neg find mustContains4(problem,interpretation,_,target); | ||
12860 | // 2. Circle in the containment hierarchy | ||
12861 | neg find mustTransitiveContains(source,target); | ||
12862 | } or { | ||
12863 | find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
12864 | } | ||
12865 | /** | ||
12866 | * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target) | ||
12867 | */ | ||
12868 | private pattern mustInRelationeAllGenericSuperTypes_reference_EClass( | ||
12869 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12870 | source: DefinedElement, target:DefinedElement) | ||
12871 | { | ||
12872 | find interpretation(problem,interpretation); | ||
12873 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12874 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
12875 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12876 | BinaryElementRelationLink.param1(link,source); | ||
12877 | BinaryElementRelationLink.param2(link,target); | ||
12878 | } | ||
12879 | /** | ||
12880 | * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target) | ||
12881 | */ | ||
12882 | private pattern mayInRelationeAllGenericSuperTypes_reference_EClass( | ||
12883 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12884 | source: DefinedElement, target:DefinedElement) | ||
12885 | { | ||
12886 | find interpretation(problem,interpretation); | ||
12887 | // The two endpoint of the link have to exist | ||
12888 | find mayExist(problem, interpretation, source); | ||
12889 | find mayExist(problem, interpretation, target); | ||
12890 | // Type consistency | ||
12891 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
12892 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
12893 | } or { | ||
12894 | find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
12895 | } | ||
12896 | /** | ||
12897 | * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) | ||
12898 | */ | ||
12899 | private pattern mustInRelationePackage_reference_EClassifier( | ||
12900 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12901 | source: DefinedElement, target:DefinedElement) | ||
12902 | { | ||
12903 | find interpretation(problem,interpretation); | ||
12904 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12905 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); | ||
12906 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12907 | BinaryElementRelationLink.param1(link,source); | ||
12908 | BinaryElementRelationLink.param2(link,target); | ||
12909 | } | ||
12910 | /** | ||
12911 | * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) | ||
12912 | */ | ||
12913 | private pattern mayInRelationePackage_reference_EClassifier( | ||
12914 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12915 | source: DefinedElement, target:DefinedElement) | ||
12916 | { | ||
12917 | find interpretation(problem,interpretation); | ||
12918 | // The two endpoint of the link have to exist | ||
12919 | find mayExist(problem, interpretation, source); | ||
12920 | find mayExist(problem, interpretation, target); | ||
12921 | // Type consistency | ||
12922 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
12923 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
12924 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
12925 | // the upper bound of the multiplicity should be considered. | ||
12926 | numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); | ||
12927 | check(numberOfExistingReferences < 1); | ||
12928 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
12929 | // 1. Multiple parents | ||
12930 | neg find mustContains4(problem,interpretation,source,_); | ||
12931 | // 2. Circle in the containment hierarchy | ||
12932 | neg find mustTransitiveContains(source,target); | ||
12933 | } or { | ||
12934 | find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); | ||
12935 | } | ||
12936 | /** | ||
12937 | * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) | ||
12938 | */ | ||
12939 | private pattern mustInRelationeTypeParameters_reference_EClassifier( | ||
12940 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12941 | source: DefinedElement, target:DefinedElement) | ||
12942 | { | ||
12943 | find interpretation(problem,interpretation); | ||
12944 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12945 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); | ||
12946 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12947 | BinaryElementRelationLink.param1(link,source); | ||
12948 | BinaryElementRelationLink.param2(link,target); | ||
12949 | } | ||
12950 | /** | ||
12951 | * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) | ||
12952 | */ | ||
12953 | private pattern mayInRelationeTypeParameters_reference_EClassifier( | ||
12954 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12955 | source: DefinedElement, target:DefinedElement) | ||
12956 | { | ||
12957 | find interpretation(problem,interpretation); | ||
12958 | // The two endpoint of the link have to exist | ||
12959 | find mayExist(problem, interpretation, source); | ||
12960 | find mayExist(problem, interpretation, target); | ||
12961 | // Type consistency | ||
12962 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
12963 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
12964 | // The reference is containment, then a new reference cannot be create if: | ||
12965 | // 1. Multiple parents | ||
12966 | neg find mustContains4(problem,interpretation,_,target); | ||
12967 | // 2. Circle in the containment hierarchy | ||
12968 | neg find mustTransitiveContains(source,target); | ||
12969 | } or { | ||
12970 | find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); | ||
12971 | } | ||
12972 | /** | ||
12973 | * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) | ||
12974 | */ | ||
12975 | private pattern mustInRelationeLiterals_reference_EEnum( | ||
12976 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12977 | source: DefinedElement, target:DefinedElement) | ||
12978 | { | ||
12979 | find interpretation(problem,interpretation); | ||
12980 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
12981 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); | ||
12982 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
12983 | BinaryElementRelationLink.param1(link,source); | ||
12984 | BinaryElementRelationLink.param2(link,target); | ||
12985 | } | ||
12986 | /** | ||
12987 | * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) | ||
12988 | */ | ||
12989 | private pattern mayInRelationeLiterals_reference_EEnum( | ||
12990 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
12991 | source: DefinedElement, target:DefinedElement) | ||
12992 | { | ||
12993 | find interpretation(problem,interpretation); | ||
12994 | // The two endpoint of the link have to exist | ||
12995 | find mayExist(problem, interpretation, source); | ||
12996 | find mayExist(problem, interpretation, target); | ||
12997 | // Type consistency | ||
12998 | find mayInstanceOfEEnum_class(problem,interpretation,source); | ||
12999 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); | ||
13000 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
13001 | // the upper bound of the opposite reference multiplicity should be considered. | ||
13002 | numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); | ||
13003 | check(numberOfExistingOppositeReferences < 1); | ||
13004 | // The reference is containment, then a new reference cannot be create if: | ||
13005 | // 1. Multiple parents | ||
13006 | neg find mustContains4(problem,interpretation,_,target); | ||
13007 | // 2. Circle in the containment hierarchy | ||
13008 | neg find mustTransitiveContains(source,target); | ||
13009 | } or { | ||
13010 | find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); | ||
13011 | } | ||
13012 | /** | ||
13013 | * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) | ||
13014 | */ | ||
13015 | private pattern mustInRelationeEnum_reference_EEnumLiteral( | ||
13016 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13017 | source: DefinedElement, target:DefinedElement) | ||
13018 | { | ||
13019 | find interpretation(problem,interpretation); | ||
13020 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13021 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); | ||
13022 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13023 | BinaryElementRelationLink.param1(link,source); | ||
13024 | BinaryElementRelationLink.param2(link,target); | ||
13025 | } | ||
13026 | /** | ||
13027 | * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) | ||
13028 | */ | ||
13029 | private pattern mayInRelationeEnum_reference_EEnumLiteral( | ||
13030 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13031 | source: DefinedElement, target:DefinedElement) | ||
13032 | { | ||
13033 | find interpretation(problem,interpretation); | ||
13034 | // The two endpoint of the link have to exist | ||
13035 | find mayExist(problem, interpretation, source); | ||
13036 | find mayExist(problem, interpretation, target); | ||
13037 | // Type consistency | ||
13038 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
13039 | find mayInstanceOfEEnum_class(problem,interpretation,target); | ||
13040 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13041 | // the upper bound of the multiplicity should be considered. | ||
13042 | numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); | ||
13043 | check(numberOfExistingReferences < 1); | ||
13044 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
13045 | // 1. Multiple parents | ||
13046 | neg find mustContains4(problem,interpretation,source,_); | ||
13047 | // 2. Circle in the containment hierarchy | ||
13048 | neg find mustTransitiveContains(source,target); | ||
13049 | } or { | ||
13050 | find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); | ||
13051 | } | ||
13052 | /** | ||
13053 | * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) | ||
13054 | */ | ||
13055 | private pattern mustInRelationeAnnotations_reference_EModelElement( | ||
13056 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13057 | source: DefinedElement, target:DefinedElement) | ||
13058 | { | ||
13059 | find interpretation(problem,interpretation); | ||
13060 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13061 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); | ||
13062 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13063 | BinaryElementRelationLink.param1(link,source); | ||
13064 | BinaryElementRelationLink.param2(link,target); | ||
13065 | } | ||
13066 | /** | ||
13067 | * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) | ||
13068 | */ | ||
13069 | private pattern mayInRelationeAnnotations_reference_EModelElement( | ||
13070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13071 | source: DefinedElement, target:DefinedElement) | ||
13072 | { | ||
13073 | find interpretation(problem,interpretation); | ||
13074 | // The two endpoint of the link have to exist | ||
13075 | find mayExist(problem, interpretation, source); | ||
13076 | find mayExist(problem, interpretation, target); | ||
13077 | // Type consistency | ||
13078 | find mayInstanceOfEModelElement_class(problem,interpretation,source); | ||
13079 | find mayInstanceOfEAnnotation_class(problem,interpretation,target); | ||
13080 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
13081 | // the upper bound of the opposite reference multiplicity should be considered. | ||
13082 | numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); | ||
13083 | check(numberOfExistingOppositeReferences < 1); | ||
13084 | // The reference is containment, then a new reference cannot be create if: | ||
13085 | // 1. Multiple parents | ||
13086 | neg find mustContains4(problem,interpretation,_,target); | ||
13087 | // 2. Circle in the containment hierarchy | ||
13088 | neg find mustTransitiveContains(source,target); | ||
13089 | } or { | ||
13090 | find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); | ||
13091 | } | ||
13092 | /** | ||
13093 | * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) | ||
13094 | */ | ||
13095 | private pattern mustInRelationeContainingClass_reference_EOperation( | ||
13096 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13097 | source: DefinedElement, target:DefinedElement) | ||
13098 | { | ||
13099 | find interpretation(problem,interpretation); | ||
13100 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13101 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); | ||
13102 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13103 | BinaryElementRelationLink.param1(link,source); | ||
13104 | BinaryElementRelationLink.param2(link,target); | ||
13105 | } | ||
13106 | /** | ||
13107 | * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) | ||
13108 | */ | ||
13109 | private pattern mayInRelationeContainingClass_reference_EOperation( | ||
13110 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13111 | source: DefinedElement, target:DefinedElement) | ||
13112 | { | ||
13113 | find interpretation(problem,interpretation); | ||
13114 | // The two endpoint of the link have to exist | ||
13115 | find mayExist(problem, interpretation, source); | ||
13116 | find mayExist(problem, interpretation, target); | ||
13117 | // Type consistency | ||
13118 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
13119 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
13120 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13121 | // the upper bound of the multiplicity should be considered. | ||
13122 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); | ||
13123 | check(numberOfExistingReferences < 1); | ||
13124 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
13125 | // 1. Multiple parents | ||
13126 | neg find mustContains4(problem,interpretation,source,_); | ||
13127 | // 2. Circle in the containment hierarchy | ||
13128 | neg find mustTransitiveContains(source,target); | ||
13129 | } or { | ||
13130 | find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); | ||
13131 | } | ||
13132 | /** | ||
13133 | * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) | ||
13134 | */ | ||
13135 | private pattern mustInRelationeTypeParameters_reference_EOperation( | ||
13136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13137 | source: DefinedElement, target:DefinedElement) | ||
13138 | { | ||
13139 | find interpretation(problem,interpretation); | ||
13140 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13141 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); | ||
13142 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13143 | BinaryElementRelationLink.param1(link,source); | ||
13144 | BinaryElementRelationLink.param2(link,target); | ||
13145 | } | ||
13146 | /** | ||
13147 | * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) | ||
13148 | */ | ||
13149 | private pattern mayInRelationeTypeParameters_reference_EOperation( | ||
13150 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13151 | source: DefinedElement, target:DefinedElement) | ||
13152 | { | ||
13153 | find interpretation(problem,interpretation); | ||
13154 | // The two endpoint of the link have to exist | ||
13155 | find mayExist(problem, interpretation, source); | ||
13156 | find mayExist(problem, interpretation, target); | ||
13157 | // Type consistency | ||
13158 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
13159 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
13160 | // The reference is containment, then a new reference cannot be create if: | ||
13161 | // 1. Multiple parents | ||
13162 | neg find mustContains4(problem,interpretation,_,target); | ||
13163 | // 2. Circle in the containment hierarchy | ||
13164 | neg find mustTransitiveContains(source,target); | ||
13165 | } or { | ||
13166 | find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); | ||
13167 | } | ||
13168 | /** | ||
13169 | * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) | ||
13170 | */ | ||
13171 | private pattern mustInRelationeParameters_reference_EOperation( | ||
13172 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13173 | source: DefinedElement, target:DefinedElement) | ||
13174 | { | ||
13175 | find interpretation(problem,interpretation); | ||
13176 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13177 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); | ||
13178 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13179 | BinaryElementRelationLink.param1(link,source); | ||
13180 | BinaryElementRelationLink.param2(link,target); | ||
13181 | } | ||
13182 | /** | ||
13183 | * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) | ||
13184 | */ | ||
13185 | private pattern mayInRelationeParameters_reference_EOperation( | ||
13186 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13187 | source: DefinedElement, target:DefinedElement) | ||
13188 | { | ||
13189 | find interpretation(problem,interpretation); | ||
13190 | // The two endpoint of the link have to exist | ||
13191 | find mayExist(problem, interpretation, source); | ||
13192 | find mayExist(problem, interpretation, target); | ||
13193 | // Type consistency | ||
13194 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
13195 | find mayInstanceOfEParameter_class(problem,interpretation,target); | ||
13196 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
13197 | // the upper bound of the opposite reference multiplicity should be considered. | ||
13198 | numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); | ||
13199 | check(numberOfExistingOppositeReferences < 1); | ||
13200 | // The reference is containment, then a new reference cannot be create if: | ||
13201 | // 1. Multiple parents | ||
13202 | neg find mustContains4(problem,interpretation,_,target); | ||
13203 | // 2. Circle in the containment hierarchy | ||
13204 | neg find mustTransitiveContains(source,target); | ||
13205 | } or { | ||
13206 | find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); | ||
13207 | } | ||
13208 | /** | ||
13209 | * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target) | ||
13210 | */ | ||
13211 | private pattern mustInRelationeExceptions_reference_EOperation( | ||
13212 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13213 | source: DefinedElement, target:DefinedElement) | ||
13214 | { | ||
13215 | find interpretation(problem,interpretation); | ||
13216 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13217 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
13218 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13219 | BinaryElementRelationLink.param1(link,source); | ||
13220 | BinaryElementRelationLink.param2(link,target); | ||
13221 | } | ||
13222 | /** | ||
13223 | * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) | ||
13224 | */ | ||
13225 | private pattern mayInRelationeExceptions_reference_EOperation( | ||
13226 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13227 | source: DefinedElement, target:DefinedElement) | ||
13228 | { | ||
13229 | find interpretation(problem,interpretation); | ||
13230 | // The two endpoint of the link have to exist | ||
13231 | find mayExist(problem, interpretation, source); | ||
13232 | find mayExist(problem, interpretation, target); | ||
13233 | // Type consistency | ||
13234 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
13235 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
13236 | } or { | ||
13237 | find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); | ||
13238 | } | ||
13239 | /** | ||
13240 | * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target) | ||
13241 | */ | ||
13242 | private pattern mustInRelationeGenericExceptions_reference_EOperation( | ||
13243 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13244 | source: DefinedElement, target:DefinedElement) | ||
13245 | { | ||
13246 | find interpretation(problem,interpretation); | ||
13247 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13248 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); | ||
13249 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13250 | BinaryElementRelationLink.param1(link,source); | ||
13251 | BinaryElementRelationLink.param2(link,target); | ||
13252 | } | ||
13253 | /** | ||
13254 | * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) | ||
13255 | */ | ||
13256 | private pattern mayInRelationeGenericExceptions_reference_EOperation( | ||
13257 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13258 | source: DefinedElement, target:DefinedElement) | ||
13259 | { | ||
13260 | find interpretation(problem,interpretation); | ||
13261 | // The two endpoint of the link have to exist | ||
13262 | find mayExist(problem, interpretation, source); | ||
13263 | find mayExist(problem, interpretation, target); | ||
13264 | // Type consistency | ||
13265 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
13266 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13267 | // The reference is containment, then a new reference cannot be create if: | ||
13268 | // 1. Multiple parents | ||
13269 | neg find mustContains4(problem,interpretation,_,target); | ||
13270 | // 2. Circle in the containment hierarchy | ||
13271 | neg find mustTransitiveContains(source,target); | ||
13272 | } or { | ||
13273 | find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); | ||
13274 | } | ||
13275 | /** | ||
13276 | * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) | ||
13277 | */ | ||
13278 | private pattern mustInRelationeClassifiers_reference_EPackage( | ||
13279 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13280 | source: DefinedElement, target:DefinedElement) | ||
13281 | { | ||
13282 | find interpretation(problem,interpretation); | ||
13283 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13284 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); | ||
13285 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13286 | BinaryElementRelationLink.param1(link,source); | ||
13287 | BinaryElementRelationLink.param2(link,target); | ||
13288 | } | ||
13289 | /** | ||
13290 | * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) | ||
13291 | */ | ||
13292 | private pattern mayInRelationeClassifiers_reference_EPackage( | ||
13293 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13294 | source: DefinedElement, target:DefinedElement) | ||
13295 | { | ||
13296 | find interpretation(problem,interpretation); | ||
13297 | // The two endpoint of the link have to exist | ||
13298 | find mayExist(problem, interpretation, source); | ||
13299 | find mayExist(problem, interpretation, target); | ||
13300 | // Type consistency | ||
13301 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
13302 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
13303 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
13304 | // the upper bound of the opposite reference multiplicity should be considered. | ||
13305 | numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); | ||
13306 | check(numberOfExistingOppositeReferences < 1); | ||
13307 | // The reference is containment, then a new reference cannot be create if: | ||
13308 | // 1. Multiple parents | ||
13309 | neg find mustContains4(problem,interpretation,_,target); | ||
13310 | // 2. Circle in the containment hierarchy | ||
13311 | neg find mustTransitiveContains(source,target); | ||
13312 | } or { | ||
13313 | find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); | ||
13314 | } | ||
13315 | /** | ||
13316 | * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) | ||
13317 | */ | ||
13318 | private pattern mustInRelationeSubpackages_reference_EPackage( | ||
13319 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13320 | source: DefinedElement, target:DefinedElement) | ||
13321 | { | ||
13322 | find interpretation(problem,interpretation); | ||
13323 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13324 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); | ||
13325 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13326 | BinaryElementRelationLink.param1(link,source); | ||
13327 | BinaryElementRelationLink.param2(link,target); | ||
13328 | } | ||
13329 | /** | ||
13330 | * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) | ||
13331 | */ | ||
13332 | private pattern mayInRelationeSubpackages_reference_EPackage( | ||
13333 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13334 | source: DefinedElement, target:DefinedElement) | ||
13335 | { | ||
13336 | find interpretation(problem,interpretation); | ||
13337 | // The two endpoint of the link have to exist | ||
13338 | find mayExist(problem, interpretation, source); | ||
13339 | find mayExist(problem, interpretation, target); | ||
13340 | // Type consistency | ||
13341 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
13342 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
13343 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
13344 | // the upper bound of the opposite reference multiplicity should be considered. | ||
13345 | numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); | ||
13346 | check(numberOfExistingOppositeReferences < 1); | ||
13347 | // The reference is containment, then a new reference cannot be create if: | ||
13348 | // 1. Multiple parents | ||
13349 | neg find mustContains4(problem,interpretation,_,target); | ||
13350 | // 2. Circle in the containment hierarchy | ||
13351 | neg find mustTransitiveContains(source,target); | ||
13352 | } or { | ||
13353 | find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); | ||
13354 | } | ||
13355 | /** | ||
13356 | * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) | ||
13357 | */ | ||
13358 | private pattern mustInRelationeSuperPackage_reference_EPackage( | ||
13359 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13360 | source: DefinedElement, target:DefinedElement) | ||
13361 | { | ||
13362 | find interpretation(problem,interpretation); | ||
13363 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13364 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); | ||
13365 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13366 | BinaryElementRelationLink.param1(link,source); | ||
13367 | BinaryElementRelationLink.param2(link,target); | ||
13368 | } | ||
13369 | /** | ||
13370 | * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) | ||
13371 | */ | ||
13372 | private pattern mayInRelationeSuperPackage_reference_EPackage( | ||
13373 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13374 | source: DefinedElement, target:DefinedElement) | ||
13375 | { | ||
13376 | find interpretation(problem,interpretation); | ||
13377 | // The two endpoint of the link have to exist | ||
13378 | find mayExist(problem, interpretation, source); | ||
13379 | find mayExist(problem, interpretation, target); | ||
13380 | // Type consistency | ||
13381 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
13382 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
13383 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13384 | // the upper bound of the multiplicity should be considered. | ||
13385 | numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); | ||
13386 | check(numberOfExistingReferences < 1); | ||
13387 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
13388 | // 1. Multiple parents | ||
13389 | neg find mustContains4(problem,interpretation,source,_); | ||
13390 | // 2. Circle in the containment hierarchy | ||
13391 | neg find mustTransitiveContains(source,target); | ||
13392 | } or { | ||
13393 | find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); | ||
13394 | } | ||
13395 | /** | ||
13396 | * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) | ||
13397 | */ | ||
13398 | private pattern mustInRelationeOperation_reference_EParameter( | ||
13399 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13400 | source: DefinedElement, target:DefinedElement) | ||
13401 | { | ||
13402 | find interpretation(problem,interpretation); | ||
13403 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13404 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); | ||
13405 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13406 | BinaryElementRelationLink.param1(link,source); | ||
13407 | BinaryElementRelationLink.param2(link,target); | ||
13408 | } | ||
13409 | /** | ||
13410 | * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) | ||
13411 | */ | ||
13412 | private pattern mayInRelationeOperation_reference_EParameter( | ||
13413 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13414 | source: DefinedElement, target:DefinedElement) | ||
13415 | { | ||
13416 | find interpretation(problem,interpretation); | ||
13417 | // The two endpoint of the link have to exist | ||
13418 | find mayExist(problem, interpretation, source); | ||
13419 | find mayExist(problem, interpretation, target); | ||
13420 | // Type consistency | ||
13421 | find mayInstanceOfEParameter_class(problem,interpretation,source); | ||
13422 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
13423 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13424 | // the upper bound of the multiplicity should be considered. | ||
13425 | numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); | ||
13426 | check(numberOfExistingReferences < 1); | ||
13427 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
13428 | // 1. Multiple parents | ||
13429 | neg find mustContains4(problem,interpretation,source,_); | ||
13430 | // 2. Circle in the containment hierarchy | ||
13431 | neg find mustTransitiveContains(source,target); | ||
13432 | } or { | ||
13433 | find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); | ||
13434 | } | ||
13435 | /** | ||
13436 | * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) | ||
13437 | */ | ||
13438 | private pattern mustInRelationeOpposite_reference_EReference( | ||
13439 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13440 | source: DefinedElement, target:DefinedElement) | ||
13441 | { | ||
13442 | find interpretation(problem,interpretation); | ||
13443 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13444 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
13445 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13446 | BinaryElementRelationLink.param1(link,source); | ||
13447 | BinaryElementRelationLink.param2(link,target); | ||
13448 | } | ||
13449 | /** | ||
13450 | * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target) | ||
13451 | */ | ||
13452 | private pattern mayInRelationeOpposite_reference_EReference( | ||
13453 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13454 | source: DefinedElement, target:DefinedElement) | ||
13455 | { | ||
13456 | find interpretation(problem,interpretation); | ||
13457 | // The two endpoint of the link have to exist | ||
13458 | find mayExist(problem, interpretation, source); | ||
13459 | find mayExist(problem, interpretation, target); | ||
13460 | // Type consistency | ||
13461 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
13462 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
13463 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13464 | // the upper bound of the multiplicity should be considered. | ||
13465 | numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); | ||
13466 | check(numberOfExistingReferences < 1); | ||
13467 | } or { | ||
13468 | find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); | ||
13469 | } | ||
13470 | /** | ||
13471 | * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target) | ||
13472 | */ | ||
13473 | private pattern mustInRelationeReferenceType_reference_EReference( | ||
13474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13475 | source: DefinedElement, target:DefinedElement) | ||
13476 | { | ||
13477 | find interpretation(problem,interpretation); | ||
13478 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13479 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
13480 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13481 | BinaryElementRelationLink.param1(link,source); | ||
13482 | BinaryElementRelationLink.param2(link,target); | ||
13483 | } | ||
13484 | /** | ||
13485 | * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) | ||
13486 | */ | ||
13487 | private pattern mayInRelationeReferenceType_reference_EReference( | ||
13488 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13489 | source: DefinedElement, target:DefinedElement) | ||
13490 | { | ||
13491 | find interpretation(problem,interpretation); | ||
13492 | // The two endpoint of the link have to exist | ||
13493 | find mayExist(problem, interpretation, source); | ||
13494 | find mayExist(problem, interpretation, target); | ||
13495 | // Type consistency | ||
13496 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
13497 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
13498 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13499 | // the upper bound of the multiplicity should be considered. | ||
13500 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); | ||
13501 | check(numberOfExistingReferences < 1); | ||
13502 | } or { | ||
13503 | find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); | ||
13504 | } | ||
13505 | /** | ||
13506 | * Matcher for detecting tuples t where []eKeys reference EReference(source,target) | ||
13507 | */ | ||
13508 | private pattern mustInRelationeKeys_reference_EReference( | ||
13509 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13510 | source: DefinedElement, target:DefinedElement) | ||
13511 | { | ||
13512 | find interpretation(problem,interpretation); | ||
13513 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13514 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
13515 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13516 | BinaryElementRelationLink.param1(link,source); | ||
13517 | BinaryElementRelationLink.param2(link,target); | ||
13518 | } | ||
13519 | /** | ||
13520 | * Matcher for detecting tuples t where <>eKeys reference EReference(source,target) | ||
13521 | */ | ||
13522 | private pattern mayInRelationeKeys_reference_EReference( | ||
13523 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13524 | source: DefinedElement, target:DefinedElement) | ||
13525 | { | ||
13526 | find interpretation(problem,interpretation); | ||
13527 | // The two endpoint of the link have to exist | ||
13528 | find mayExist(problem, interpretation, source); | ||
13529 | find mayExist(problem, interpretation, target); | ||
13530 | // Type consistency | ||
13531 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
13532 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
13533 | } or { | ||
13534 | find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target); | ||
13535 | } | ||
13536 | /** | ||
13537 | * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) | ||
13538 | */ | ||
13539 | private pattern mustInRelationeContainingClass_reference_EStructuralFeature( | ||
13540 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13541 | source: DefinedElement, target:DefinedElement) | ||
13542 | { | ||
13543 | find interpretation(problem,interpretation); | ||
13544 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13545 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); | ||
13546 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13547 | BinaryElementRelationLink.param1(link,source); | ||
13548 | BinaryElementRelationLink.param2(link,target); | ||
13549 | } | ||
13550 | /** | ||
13551 | * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) | ||
13552 | */ | ||
13553 | private pattern mayInRelationeContainingClass_reference_EStructuralFeature( | ||
13554 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13555 | source: DefinedElement, target:DefinedElement) | ||
13556 | { | ||
13557 | find interpretation(problem,interpretation); | ||
13558 | // The two endpoint of the link have to exist | ||
13559 | find mayExist(problem, interpretation, source); | ||
13560 | find mayExist(problem, interpretation, target); | ||
13561 | // Type consistency | ||
13562 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
13563 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
13564 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13565 | // the upper bound of the multiplicity should be considered. | ||
13566 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); | ||
13567 | check(numberOfExistingReferences < 1); | ||
13568 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
13569 | // 1. Multiple parents | ||
13570 | neg find mustContains4(problem,interpretation,source,_); | ||
13571 | // 2. Circle in the containment hierarchy | ||
13572 | neg find mustTransitiveContains(source,target); | ||
13573 | } or { | ||
13574 | find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); | ||
13575 | } | ||
13576 | /** | ||
13577 | * Matcher for detecting tuples t where []eType reference ETypedElement(source,target) | ||
13578 | */ | ||
13579 | private pattern mustInRelationeType_reference_ETypedElement( | ||
13580 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13581 | source: DefinedElement, target:DefinedElement) | ||
13582 | { | ||
13583 | find interpretation(problem,interpretation); | ||
13584 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13585 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
13586 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13587 | BinaryElementRelationLink.param1(link,source); | ||
13588 | BinaryElementRelationLink.param2(link,target); | ||
13589 | } | ||
13590 | /** | ||
13591 | * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target) | ||
13592 | */ | ||
13593 | private pattern mayInRelationeType_reference_ETypedElement( | ||
13594 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13595 | source: DefinedElement, target:DefinedElement) | ||
13596 | { | ||
13597 | find interpretation(problem,interpretation); | ||
13598 | // The two endpoint of the link have to exist | ||
13599 | find mayExist(problem, interpretation, source); | ||
13600 | find mayExist(problem, interpretation, target); | ||
13601 | // Type consistency | ||
13602 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
13603 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
13604 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13605 | // the upper bound of the multiplicity should be considered. | ||
13606 | numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); | ||
13607 | check(numberOfExistingReferences < 1); | ||
13608 | } or { | ||
13609 | find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target); | ||
13610 | } | ||
13611 | /** | ||
13612 | * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target) | ||
13613 | */ | ||
13614 | private pattern mustInRelationeGenericType_reference_ETypedElement( | ||
13615 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13616 | source: DefinedElement, target:DefinedElement) | ||
13617 | { | ||
13618 | find interpretation(problem,interpretation); | ||
13619 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13620 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); | ||
13621 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13622 | BinaryElementRelationLink.param1(link,source); | ||
13623 | BinaryElementRelationLink.param2(link,target); | ||
13624 | } | ||
13625 | /** | ||
13626 | * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) | ||
13627 | */ | ||
13628 | private pattern mayInRelationeGenericType_reference_ETypedElement( | ||
13629 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13630 | source: DefinedElement, target:DefinedElement) | ||
13631 | { | ||
13632 | find interpretation(problem,interpretation); | ||
13633 | // The two endpoint of the link have to exist | ||
13634 | find mayExist(problem, interpretation, source); | ||
13635 | find mayExist(problem, interpretation, target); | ||
13636 | // Type consistency | ||
13637 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
13638 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13639 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13640 | // the upper bound of the multiplicity should be considered. | ||
13641 | numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); | ||
13642 | check(numberOfExistingReferences < 1); | ||
13643 | // The reference is containment, then a new reference cannot be create if: | ||
13644 | // 1. Multiple parents | ||
13645 | neg find mustContains4(problem,interpretation,_,target); | ||
13646 | // 2. Circle in the containment hierarchy | ||
13647 | neg find mustTransitiveContains(source,target); | ||
13648 | } or { | ||
13649 | find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); | ||
13650 | } | ||
13651 | /** | ||
13652 | * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target) | ||
13653 | */ | ||
13654 | private pattern mustInRelationeUpperBound_reference_EGenericType( | ||
13655 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13656 | source: DefinedElement, target:DefinedElement) | ||
13657 | { | ||
13658 | find interpretation(problem,interpretation); | ||
13659 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13660 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); | ||
13661 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13662 | BinaryElementRelationLink.param1(link,source); | ||
13663 | BinaryElementRelationLink.param2(link,target); | ||
13664 | } | ||
13665 | /** | ||
13666 | * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target) | ||
13667 | */ | ||
13668 | private pattern mayInRelationeUpperBound_reference_EGenericType( | ||
13669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13670 | source: DefinedElement, target:DefinedElement) | ||
13671 | { | ||
13672 | find interpretation(problem,interpretation); | ||
13673 | // The two endpoint of the link have to exist | ||
13674 | find mayExist(problem, interpretation, source); | ||
13675 | find mayExist(problem, interpretation, target); | ||
13676 | // Type consistency | ||
13677 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13678 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13679 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13680 | // the upper bound of the multiplicity should be considered. | ||
13681 | numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); | ||
13682 | check(numberOfExistingReferences < 1); | ||
13683 | // The reference is containment, then a new reference cannot be create if: | ||
13684 | // 1. Multiple parents | ||
13685 | neg find mustContains4(problem,interpretation,_,target); | ||
13686 | // 2. Circle in the containment hierarchy | ||
13687 | neg find mustTransitiveContains(source,target); | ||
13688 | } or { | ||
13689 | find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); | ||
13690 | } | ||
13691 | /** | ||
13692 | * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) | ||
13693 | */ | ||
13694 | private pattern mustInRelationeTypeArguments_reference_EGenericType( | ||
13695 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13696 | source: DefinedElement, target:DefinedElement) | ||
13697 | { | ||
13698 | find interpretation(problem,interpretation); | ||
13699 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13700 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); | ||
13701 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13702 | BinaryElementRelationLink.param1(link,source); | ||
13703 | BinaryElementRelationLink.param2(link,target); | ||
13704 | } | ||
13705 | /** | ||
13706 | * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) | ||
13707 | */ | ||
13708 | private pattern mayInRelationeTypeArguments_reference_EGenericType( | ||
13709 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13710 | source: DefinedElement, target:DefinedElement) | ||
13711 | { | ||
13712 | find interpretation(problem,interpretation); | ||
13713 | // The two endpoint of the link have to exist | ||
13714 | find mayExist(problem, interpretation, source); | ||
13715 | find mayExist(problem, interpretation, target); | ||
13716 | // Type consistency | ||
13717 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13718 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13719 | // The reference is containment, then a new reference cannot be create if: | ||
13720 | // 1. Multiple parents | ||
13721 | neg find mustContains4(problem,interpretation,_,target); | ||
13722 | // 2. Circle in the containment hierarchy | ||
13723 | neg find mustTransitiveContains(source,target); | ||
13724 | } or { | ||
13725 | find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); | ||
13726 | } | ||
13727 | /** | ||
13728 | * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target) | ||
13729 | */ | ||
13730 | private pattern mustInRelationeRawType_reference_EGenericType( | ||
13731 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13732 | source: DefinedElement, target:DefinedElement) | ||
13733 | { | ||
13734 | find interpretation(problem,interpretation); | ||
13735 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13736 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
13737 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13738 | BinaryElementRelationLink.param1(link,source); | ||
13739 | BinaryElementRelationLink.param2(link,target); | ||
13740 | } | ||
13741 | /** | ||
13742 | * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target) | ||
13743 | */ | ||
13744 | private pattern mayInRelationeRawType_reference_EGenericType( | ||
13745 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13746 | source: DefinedElement, target:DefinedElement) | ||
13747 | { | ||
13748 | find interpretation(problem,interpretation); | ||
13749 | // The two endpoint of the link have to exist | ||
13750 | find mayExist(problem, interpretation, source); | ||
13751 | find mayExist(problem, interpretation, target); | ||
13752 | // Type consistency | ||
13753 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13754 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
13755 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13756 | // the upper bound of the multiplicity should be considered. | ||
13757 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); | ||
13758 | check(numberOfExistingReferences < 1); | ||
13759 | } or { | ||
13760 | find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target); | ||
13761 | } | ||
13762 | /** | ||
13763 | * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) | ||
13764 | */ | ||
13765 | private pattern mustInRelationeLowerBound_reference_EGenericType( | ||
13766 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13767 | source: DefinedElement, target:DefinedElement) | ||
13768 | { | ||
13769 | find interpretation(problem,interpretation); | ||
13770 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13771 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); | ||
13772 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13773 | BinaryElementRelationLink.param1(link,source); | ||
13774 | BinaryElementRelationLink.param2(link,target); | ||
13775 | } | ||
13776 | /** | ||
13777 | * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) | ||
13778 | */ | ||
13779 | private pattern mayInRelationeLowerBound_reference_EGenericType( | ||
13780 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13781 | source: DefinedElement, target:DefinedElement) | ||
13782 | { | ||
13783 | find interpretation(problem,interpretation); | ||
13784 | // The two endpoint of the link have to exist | ||
13785 | find mayExist(problem, interpretation, source); | ||
13786 | find mayExist(problem, interpretation, target); | ||
13787 | // Type consistency | ||
13788 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13789 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13790 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13791 | // the upper bound of the multiplicity should be considered. | ||
13792 | numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); | ||
13793 | check(numberOfExistingReferences < 1); | ||
13794 | // The reference is containment, then a new reference cannot be create if: | ||
13795 | // 1. Multiple parents | ||
13796 | neg find mustContains4(problem,interpretation,_,target); | ||
13797 | // 2. Circle in the containment hierarchy | ||
13798 | neg find mustTransitiveContains(source,target); | ||
13799 | } or { | ||
13800 | find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); | ||
13801 | } | ||
13802 | /** | ||
13803 | * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target) | ||
13804 | */ | ||
13805 | private pattern mustInRelationeTypeParameter_reference_EGenericType( | ||
13806 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13807 | source: DefinedElement, target:DefinedElement) | ||
13808 | { | ||
13809 | find interpretation(problem,interpretation); | ||
13810 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13811 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
13812 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13813 | BinaryElementRelationLink.param1(link,source); | ||
13814 | BinaryElementRelationLink.param2(link,target); | ||
13815 | } | ||
13816 | /** | ||
13817 | * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) | ||
13818 | */ | ||
13819 | private pattern mayInRelationeTypeParameter_reference_EGenericType( | ||
13820 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13821 | source: DefinedElement, target:DefinedElement) | ||
13822 | { | ||
13823 | find interpretation(problem,interpretation); | ||
13824 | // The two endpoint of the link have to exist | ||
13825 | find mayExist(problem, interpretation, source); | ||
13826 | find mayExist(problem, interpretation, target); | ||
13827 | // Type consistency | ||
13828 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13829 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
13830 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13831 | // the upper bound of the multiplicity should be considered. | ||
13832 | numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_); | ||
13833 | check(numberOfExistingReferences < 1); | ||
13834 | } or { | ||
13835 | find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target); | ||
13836 | } | ||
13837 | /** | ||
13838 | * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) | ||
13839 | */ | ||
13840 | private pattern mustInRelationeClassifier_reference_EGenericType( | ||
13841 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13842 | source: DefinedElement, target:DefinedElement) | ||
13843 | { | ||
13844 | find interpretation(problem,interpretation); | ||
13845 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13846 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
13847 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13848 | BinaryElementRelationLink.param1(link,source); | ||
13849 | BinaryElementRelationLink.param2(link,target); | ||
13850 | } | ||
13851 | /** | ||
13852 | * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) | ||
13853 | */ | ||
13854 | private pattern mayInRelationeClassifier_reference_EGenericType( | ||
13855 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13856 | source: DefinedElement, target:DefinedElement) | ||
13857 | { | ||
13858 | find interpretation(problem,interpretation); | ||
13859 | // The two endpoint of the link have to exist | ||
13860 | find mayExist(problem, interpretation, source); | ||
13861 | find mayExist(problem, interpretation, target); | ||
13862 | // Type consistency | ||
13863 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
13864 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
13865 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13866 | // the upper bound of the multiplicity should be considered. | ||
13867 | numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); | ||
13868 | check(numberOfExistingReferences < 1); | ||
13869 | } or { | ||
13870 | find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); | ||
13871 | } | ||
13872 | /** | ||
13873 | * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) | ||
13874 | */ | ||
13875 | private pattern mustInRelationeBounds_reference_ETypeParameter( | ||
13876 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13877 | source: DefinedElement, target:DefinedElement) | ||
13878 | { | ||
13879 | find interpretation(problem,interpretation); | ||
13880 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13881 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); | ||
13882 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13883 | BinaryElementRelationLink.param1(link,source); | ||
13884 | BinaryElementRelationLink.param2(link,target); | ||
13885 | } | ||
13886 | /** | ||
13887 | * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) | ||
13888 | */ | ||
13889 | private pattern mayInRelationeBounds_reference_ETypeParameter( | ||
13890 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13891 | source: DefinedElement, target:DefinedElement) | ||
13892 | { | ||
13893 | find interpretation(problem,interpretation); | ||
13894 | // The two endpoint of the link have to exist | ||
13895 | find mayExist(problem, interpretation, source); | ||
13896 | find mayExist(problem, interpretation, target); | ||
13897 | // Type consistency | ||
13898 | find mayInstanceOfETypeParameter_class(problem,interpretation,source); | ||
13899 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
13900 | // The reference is containment, then a new reference cannot be create if: | ||
13901 | // 1. Multiple parents | ||
13902 | neg find mustContains4(problem,interpretation,_,target); | ||
13903 | // 2. Circle in the containment hierarchy | ||
13904 | neg find mustTransitiveContains(source,target); | ||
13905 | } or { | ||
13906 | find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); | ||
13907 | } | ||
13908 | /** | ||
13909 | * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) | ||
13910 | */ | ||
13911 | private pattern mustInRelationiD_attribute_EAttribute( | ||
13912 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13913 | source: DefinedElement, target:DefinedElement) | ||
13914 | { | ||
13915 | find interpretation(problem,interpretation); | ||
13916 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13917 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
13918 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13919 | BinaryElementRelationLink.param1(link,source); | ||
13920 | BinaryElementRelationLink.param2(link,target); | ||
13921 | } | ||
13922 | /** | ||
13923 | * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) | ||
13924 | */ | ||
13925 | private pattern mayInRelationiD_attribute_EAttribute( | ||
13926 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13927 | source: DefinedElement, target:DefinedElement) | ||
13928 | { | ||
13929 | find interpretation(problem,interpretation); | ||
13930 | // The two endpoint of the link have to exist | ||
13931 | find mayExist(problem, interpretation, source); | ||
13932 | find mayExist(problem, interpretation, target); | ||
13933 | // Type consistency | ||
13934 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
13935 | BooleanElement(target); | ||
13936 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13937 | // the upper bound of the multiplicity should be considered. | ||
13938 | numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); | ||
13939 | check(numberOfExistingReferences < 1); | ||
13940 | } or { | ||
13941 | find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); | ||
13942 | } | ||
13943 | /** | ||
13944 | * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) | ||
13945 | */ | ||
13946 | private pattern mustInRelationsource_attribute_EAnnotation( | ||
13947 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13948 | source: DefinedElement, target:DefinedElement) | ||
13949 | { | ||
13950 | find interpretation(problem,interpretation); | ||
13951 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13952 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
13953 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13954 | BinaryElementRelationLink.param1(link,source); | ||
13955 | BinaryElementRelationLink.param2(link,target); | ||
13956 | } | ||
13957 | /** | ||
13958 | * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) | ||
13959 | */ | ||
13960 | private pattern mayInRelationsource_attribute_EAnnotation( | ||
13961 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13962 | source: DefinedElement, target:DefinedElement) | ||
13963 | { | ||
13964 | find interpretation(problem,interpretation); | ||
13965 | // The two endpoint of the link have to exist | ||
13966 | find mayExist(problem, interpretation, source); | ||
13967 | find mayExist(problem, interpretation, target); | ||
13968 | // Type consistency | ||
13969 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
13970 | StringElement(target); | ||
13971 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
13972 | // the upper bound of the multiplicity should be considered. | ||
13973 | numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); | ||
13974 | check(numberOfExistingReferences < 1); | ||
13975 | } or { | ||
13976 | find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); | ||
13977 | } | ||
13978 | /** | ||
13979 | * Matcher for detecting tuples t where []abstract attribute EClass(source,target) | ||
13980 | */ | ||
13981 | private pattern mustInRelationabstract_attribute_EClass( | ||
13982 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13983 | source: DefinedElement, target:DefinedElement) | ||
13984 | { | ||
13985 | find interpretation(problem,interpretation); | ||
13986 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
13987 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
13988 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
13989 | BinaryElementRelationLink.param1(link,source); | ||
13990 | BinaryElementRelationLink.param2(link,target); | ||
13991 | } | ||
13992 | /** | ||
13993 | * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) | ||
13994 | */ | ||
13995 | private pattern mayInRelationabstract_attribute_EClass( | ||
13996 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
13997 | source: DefinedElement, target:DefinedElement) | ||
13998 | { | ||
13999 | find interpretation(problem,interpretation); | ||
14000 | // The two endpoint of the link have to exist | ||
14001 | find mayExist(problem, interpretation, source); | ||
14002 | find mayExist(problem, interpretation, target); | ||
14003 | // Type consistency | ||
14004 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
14005 | BooleanElement(target); | ||
14006 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14007 | // the upper bound of the multiplicity should be considered. | ||
14008 | numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); | ||
14009 | check(numberOfExistingReferences < 1); | ||
14010 | } or { | ||
14011 | find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); | ||
14012 | } | ||
14013 | /** | ||
14014 | * Matcher for detecting tuples t where []interface attribute EClass(source,target) | ||
14015 | */ | ||
14016 | private pattern mustInRelationinterface_attribute_EClass( | ||
14017 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14018 | source: DefinedElement, target:DefinedElement) | ||
14019 | { | ||
14020 | find interpretation(problem,interpretation); | ||
14021 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14022 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
14023 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14024 | BinaryElementRelationLink.param1(link,source); | ||
14025 | BinaryElementRelationLink.param2(link,target); | ||
14026 | } | ||
14027 | /** | ||
14028 | * Matcher for detecting tuples t where <>interface attribute EClass(source,target) | ||
14029 | */ | ||
14030 | private pattern mayInRelationinterface_attribute_EClass( | ||
14031 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14032 | source: DefinedElement, target:DefinedElement) | ||
14033 | { | ||
14034 | find interpretation(problem,interpretation); | ||
14035 | // The two endpoint of the link have to exist | ||
14036 | find mayExist(problem, interpretation, source); | ||
14037 | find mayExist(problem, interpretation, target); | ||
14038 | // Type consistency | ||
14039 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
14040 | BooleanElement(target); | ||
14041 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14042 | // the upper bound of the multiplicity should be considered. | ||
14043 | numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); | ||
14044 | check(numberOfExistingReferences < 1); | ||
14045 | } or { | ||
14046 | find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); | ||
14047 | } | ||
14048 | /** | ||
14049 | * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) | ||
14050 | */ | ||
14051 | private pattern mustInRelationinstanceClassName_attribute_EClassifier( | ||
14052 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14053 | source: DefinedElement, target:DefinedElement) | ||
14054 | { | ||
14055 | find interpretation(problem,interpretation); | ||
14056 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14057 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
14058 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14059 | BinaryElementRelationLink.param1(link,source); | ||
14060 | BinaryElementRelationLink.param2(link,target); | ||
14061 | } | ||
14062 | /** | ||
14063 | * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) | ||
14064 | */ | ||
14065 | private pattern mayInRelationinstanceClassName_attribute_EClassifier( | ||
14066 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14067 | source: DefinedElement, target:DefinedElement) | ||
14068 | { | ||
14069 | find interpretation(problem,interpretation); | ||
14070 | // The two endpoint of the link have to exist | ||
14071 | find mayExist(problem, interpretation, source); | ||
14072 | find mayExist(problem, interpretation, target); | ||
14073 | // Type consistency | ||
14074 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
14075 | StringElement(target); | ||
14076 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14077 | // the upper bound of the multiplicity should be considered. | ||
14078 | numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); | ||
14079 | check(numberOfExistingReferences < 1); | ||
14080 | } or { | ||
14081 | find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); | ||
14082 | } | ||
14083 | /** | ||
14084 | * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) | ||
14085 | */ | ||
14086 | private pattern mustInRelationinstanceTypeName_attribute_EClassifier( | ||
14087 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14088 | source: DefinedElement, target:DefinedElement) | ||
14089 | { | ||
14090 | find interpretation(problem,interpretation); | ||
14091 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14092 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
14093 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14094 | BinaryElementRelationLink.param1(link,source); | ||
14095 | BinaryElementRelationLink.param2(link,target); | ||
14096 | } | ||
14097 | /** | ||
14098 | * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) | ||
14099 | */ | ||
14100 | private pattern mayInRelationinstanceTypeName_attribute_EClassifier( | ||
14101 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14102 | source: DefinedElement, target:DefinedElement) | ||
14103 | { | ||
14104 | find interpretation(problem,interpretation); | ||
14105 | // The two endpoint of the link have to exist | ||
14106 | find mayExist(problem, interpretation, source); | ||
14107 | find mayExist(problem, interpretation, target); | ||
14108 | // Type consistency | ||
14109 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
14110 | StringElement(target); | ||
14111 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14112 | // the upper bound of the multiplicity should be considered. | ||
14113 | numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_); | ||
14114 | check(numberOfExistingReferences < 1); | ||
14115 | } or { | ||
14116 | find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); | ||
14117 | } | ||
14118 | /** | ||
14119 | * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) | ||
14120 | */ | ||
14121 | private pattern mustInRelationserializable_attribute_EDataType( | ||
14122 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14123 | source: DefinedElement, target:DefinedElement) | ||
14124 | { | ||
14125 | find interpretation(problem,interpretation); | ||
14126 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14127 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
14128 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14129 | BinaryElementRelationLink.param1(link,source); | ||
14130 | BinaryElementRelationLink.param2(link,target); | ||
14131 | } | ||
14132 | /** | ||
14133 | * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) | ||
14134 | */ | ||
14135 | private pattern mayInRelationserializable_attribute_EDataType( | ||
14136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14137 | source: DefinedElement, target:DefinedElement) | ||
14138 | { | ||
14139 | find interpretation(problem,interpretation); | ||
14140 | // The two endpoint of the link have to exist | ||
14141 | find mayExist(problem, interpretation, source); | ||
14142 | find mayExist(problem, interpretation, target); | ||
14143 | // Type consistency | ||
14144 | find mayInstanceOfEDataType_class(problem,interpretation,source); | ||
14145 | BooleanElement(target); | ||
14146 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14147 | // the upper bound of the multiplicity should be considered. | ||
14148 | numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); | ||
14149 | check(numberOfExistingReferences < 1); | ||
14150 | } or { | ||
14151 | find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); | ||
14152 | } | ||
14153 | /** | ||
14154 | * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) | ||
14155 | */ | ||
14156 | private pattern mustInRelationvalue_attribute_EEnumLiteral( | ||
14157 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14158 | source: DefinedElement, target:DefinedElement) | ||
14159 | { | ||
14160 | find interpretation(problem,interpretation); | ||
14161 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14162 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
14163 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14164 | BinaryElementRelationLink.param1(link,source); | ||
14165 | BinaryElementRelationLink.param2(link,target); | ||
14166 | } | ||
14167 | /** | ||
14168 | * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) | ||
14169 | */ | ||
14170 | private pattern mayInRelationvalue_attribute_EEnumLiteral( | ||
14171 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14172 | source: DefinedElement, target:DefinedElement) | ||
14173 | { | ||
14174 | find interpretation(problem,interpretation); | ||
14175 | // The two endpoint of the link have to exist | ||
14176 | find mayExist(problem, interpretation, source); | ||
14177 | find mayExist(problem, interpretation, target); | ||
14178 | // Type consistency | ||
14179 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
14180 | IntegerElement(target); | ||
14181 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14182 | // the upper bound of the multiplicity should be considered. | ||
14183 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
14184 | check(numberOfExistingReferences < 1); | ||
14185 | } or { | ||
14186 | find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
14187 | } | ||
14188 | /** | ||
14189 | * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) | ||
14190 | */ | ||
14191 | private pattern mustInRelationliteral_attribute_EEnumLiteral( | ||
14192 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14193 | source: DefinedElement, target:DefinedElement) | ||
14194 | { | ||
14195 | find interpretation(problem,interpretation); | ||
14196 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14197 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
14198 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14199 | BinaryElementRelationLink.param1(link,source); | ||
14200 | BinaryElementRelationLink.param2(link,target); | ||
14201 | } | ||
14202 | /** | ||
14203 | * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) | ||
14204 | */ | ||
14205 | private pattern mayInRelationliteral_attribute_EEnumLiteral( | ||
14206 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14207 | source: DefinedElement, target:DefinedElement) | ||
14208 | { | ||
14209 | find interpretation(problem,interpretation); | ||
14210 | // The two endpoint of the link have to exist | ||
14211 | find mayExist(problem, interpretation, source); | ||
14212 | find mayExist(problem, interpretation, target); | ||
14213 | // Type consistency | ||
14214 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
14215 | StringElement(target); | ||
14216 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14217 | // the upper bound of the multiplicity should be considered. | ||
14218 | numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
14219 | check(numberOfExistingReferences < 1); | ||
14220 | } or { | ||
14221 | find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
14222 | } | ||
14223 | /** | ||
14224 | * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) | ||
14225 | */ | ||
14226 | private pattern mustInRelationname_attribute_ENamedElement( | ||
14227 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14228 | source: DefinedElement, target:DefinedElement) | ||
14229 | { | ||
14230 | find interpretation(problem,interpretation); | ||
14231 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14232 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
14233 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14234 | BinaryElementRelationLink.param1(link,source); | ||
14235 | BinaryElementRelationLink.param2(link,target); | ||
14236 | } | ||
14237 | /** | ||
14238 | * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) | ||
14239 | */ | ||
14240 | private pattern mayInRelationname_attribute_ENamedElement( | ||
14241 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14242 | source: DefinedElement, target:DefinedElement) | ||
14243 | { | ||
14244 | find interpretation(problem,interpretation); | ||
14245 | // The two endpoint of the link have to exist | ||
14246 | find mayExist(problem, interpretation, source); | ||
14247 | find mayExist(problem, interpretation, target); | ||
14248 | // Type consistency | ||
14249 | find mayInstanceOfENamedElement_class(problem,interpretation,source); | ||
14250 | StringElement(target); | ||
14251 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14252 | // the upper bound of the multiplicity should be considered. | ||
14253 | numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); | ||
14254 | check(numberOfExistingReferences < 1); | ||
14255 | } or { | ||
14256 | find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); | ||
14257 | } | ||
14258 | /** | ||
14259 | * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) | ||
14260 | */ | ||
14261 | private pattern mustInRelationnsURI_attribute_EPackage( | ||
14262 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14263 | source: DefinedElement, target:DefinedElement) | ||
14264 | { | ||
14265 | find interpretation(problem,interpretation); | ||
14266 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14267 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
14268 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14269 | BinaryElementRelationLink.param1(link,source); | ||
14270 | BinaryElementRelationLink.param2(link,target); | ||
14271 | } | ||
14272 | /** | ||
14273 | * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) | ||
14274 | */ | ||
14275 | private pattern mayInRelationnsURI_attribute_EPackage( | ||
14276 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14277 | source: DefinedElement, target:DefinedElement) | ||
14278 | { | ||
14279 | find interpretation(problem,interpretation); | ||
14280 | // The two endpoint of the link have to exist | ||
14281 | find mayExist(problem, interpretation, source); | ||
14282 | find mayExist(problem, interpretation, target); | ||
14283 | // Type consistency | ||
14284 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
14285 | StringElement(target); | ||
14286 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14287 | // the upper bound of the multiplicity should be considered. | ||
14288 | numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); | ||
14289 | check(numberOfExistingReferences < 1); | ||
14290 | } or { | ||
14291 | find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); | ||
14292 | } | ||
14293 | /** | ||
14294 | * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) | ||
14295 | */ | ||
14296 | private pattern mustInRelationnsPrefix_attribute_EPackage( | ||
14297 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14298 | source: DefinedElement, target:DefinedElement) | ||
14299 | { | ||
14300 | find interpretation(problem,interpretation); | ||
14301 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14302 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
14303 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14304 | BinaryElementRelationLink.param1(link,source); | ||
14305 | BinaryElementRelationLink.param2(link,target); | ||
14306 | } | ||
14307 | /** | ||
14308 | * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) | ||
14309 | */ | ||
14310 | private pattern mayInRelationnsPrefix_attribute_EPackage( | ||
14311 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14312 | source: DefinedElement, target:DefinedElement) | ||
14313 | { | ||
14314 | find interpretation(problem,interpretation); | ||
14315 | // The two endpoint of the link have to exist | ||
14316 | find mayExist(problem, interpretation, source); | ||
14317 | find mayExist(problem, interpretation, target); | ||
14318 | // Type consistency | ||
14319 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
14320 | StringElement(target); | ||
14321 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14322 | // the upper bound of the multiplicity should be considered. | ||
14323 | numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); | ||
14324 | check(numberOfExistingReferences < 1); | ||
14325 | } or { | ||
14326 | find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); | ||
14327 | } | ||
14328 | /** | ||
14329 | * Matcher for detecting tuples t where []containment attribute EReference(source,target) | ||
14330 | */ | ||
14331 | private pattern mustInRelationcontainment_attribute_EReference( | ||
14332 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14333 | source: DefinedElement, target:DefinedElement) | ||
14334 | { | ||
14335 | find interpretation(problem,interpretation); | ||
14336 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14337 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
14338 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14339 | BinaryElementRelationLink.param1(link,source); | ||
14340 | BinaryElementRelationLink.param2(link,target); | ||
14341 | } | ||
14342 | /** | ||
14343 | * Matcher for detecting tuples t where <>containment attribute EReference(source,target) | ||
14344 | */ | ||
14345 | private pattern mayInRelationcontainment_attribute_EReference( | ||
14346 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14347 | source: DefinedElement, target:DefinedElement) | ||
14348 | { | ||
14349 | find interpretation(problem,interpretation); | ||
14350 | // The two endpoint of the link have to exist | ||
14351 | find mayExist(problem, interpretation, source); | ||
14352 | find mayExist(problem, interpretation, target); | ||
14353 | // Type consistency | ||
14354 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
14355 | BooleanElement(target); | ||
14356 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14357 | // the upper bound of the multiplicity should be considered. | ||
14358 | numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); | ||
14359 | check(numberOfExistingReferences < 1); | ||
14360 | } or { | ||
14361 | find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); | ||
14362 | } | ||
14363 | /** | ||
14364 | * Matcher for detecting tuples t where []container attribute EReference(source,target) | ||
14365 | */ | ||
14366 | private pattern mustInRelationcontainer_attribute_EReference( | ||
14367 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14368 | source: DefinedElement, target:DefinedElement) | ||
14369 | { | ||
14370 | find interpretation(problem,interpretation); | ||
14371 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14372 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
14373 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14374 | BinaryElementRelationLink.param1(link,source); | ||
14375 | BinaryElementRelationLink.param2(link,target); | ||
14376 | } | ||
14377 | /** | ||
14378 | * Matcher for detecting tuples t where <>container attribute EReference(source,target) | ||
14379 | */ | ||
14380 | private pattern mayInRelationcontainer_attribute_EReference( | ||
14381 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14382 | source: DefinedElement, target:DefinedElement) | ||
14383 | { | ||
14384 | find interpretation(problem,interpretation); | ||
14385 | // The two endpoint of the link have to exist | ||
14386 | find mayExist(problem, interpretation, source); | ||
14387 | find mayExist(problem, interpretation, target); | ||
14388 | // Type consistency | ||
14389 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
14390 | BooleanElement(target); | ||
14391 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14392 | // the upper bound of the multiplicity should be considered. | ||
14393 | numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); | ||
14394 | check(numberOfExistingReferences < 1); | ||
14395 | } or { | ||
14396 | find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); | ||
14397 | } | ||
14398 | /** | ||
14399 | * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) | ||
14400 | */ | ||
14401 | private pattern mustInRelationresolveProxies_attribute_EReference( | ||
14402 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14403 | source: DefinedElement, target:DefinedElement) | ||
14404 | { | ||
14405 | find interpretation(problem,interpretation); | ||
14406 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14407 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
14408 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14409 | BinaryElementRelationLink.param1(link,source); | ||
14410 | BinaryElementRelationLink.param2(link,target); | ||
14411 | } | ||
14412 | /** | ||
14413 | * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) | ||
14414 | */ | ||
14415 | private pattern mayInRelationresolveProxies_attribute_EReference( | ||
14416 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14417 | source: DefinedElement, target:DefinedElement) | ||
14418 | { | ||
14419 | find interpretation(problem,interpretation); | ||
14420 | // The two endpoint of the link have to exist | ||
14421 | find mayExist(problem, interpretation, source); | ||
14422 | find mayExist(problem, interpretation, target); | ||
14423 | // Type consistency | ||
14424 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
14425 | BooleanElement(target); | ||
14426 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14427 | // the upper bound of the multiplicity should be considered. | ||
14428 | numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); | ||
14429 | check(numberOfExistingReferences < 1); | ||
14430 | } or { | ||
14431 | find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); | ||
14432 | } | ||
14433 | /** | ||
14434 | * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) | ||
14435 | */ | ||
14436 | private pattern mustInRelationchangeable_attribute_EStructuralFeature( | ||
14437 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14438 | source: DefinedElement, target:DefinedElement) | ||
14439 | { | ||
14440 | find interpretation(problem,interpretation); | ||
14441 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14442 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
14443 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14444 | BinaryElementRelationLink.param1(link,source); | ||
14445 | BinaryElementRelationLink.param2(link,target); | ||
14446 | } | ||
14447 | /** | ||
14448 | * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) | ||
14449 | */ | ||
14450 | private pattern mayInRelationchangeable_attribute_EStructuralFeature( | ||
14451 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14452 | source: DefinedElement, target:DefinedElement) | ||
14453 | { | ||
14454 | find interpretation(problem,interpretation); | ||
14455 | // The two endpoint of the link have to exist | ||
14456 | find mayExist(problem, interpretation, source); | ||
14457 | find mayExist(problem, interpretation, target); | ||
14458 | // Type consistency | ||
14459 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14460 | BooleanElement(target); | ||
14461 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14462 | // the upper bound of the multiplicity should be considered. | ||
14463 | numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14464 | check(numberOfExistingReferences < 1); | ||
14465 | } or { | ||
14466 | find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14467 | } | ||
14468 | /** | ||
14469 | * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) | ||
14470 | */ | ||
14471 | private pattern mustInRelationvolatile_attribute_EStructuralFeature( | ||
14472 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14473 | source: DefinedElement, target:DefinedElement) | ||
14474 | { | ||
14475 | find interpretation(problem,interpretation); | ||
14476 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14477 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
14478 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14479 | BinaryElementRelationLink.param1(link,source); | ||
14480 | BinaryElementRelationLink.param2(link,target); | ||
14481 | } | ||
14482 | /** | ||
14483 | * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) | ||
14484 | */ | ||
14485 | private pattern mayInRelationvolatile_attribute_EStructuralFeature( | ||
14486 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14487 | source: DefinedElement, target:DefinedElement) | ||
14488 | { | ||
14489 | find interpretation(problem,interpretation); | ||
14490 | // The two endpoint of the link have to exist | ||
14491 | find mayExist(problem, interpretation, source); | ||
14492 | find mayExist(problem, interpretation, target); | ||
14493 | // Type consistency | ||
14494 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14495 | BooleanElement(target); | ||
14496 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14497 | // the upper bound of the multiplicity should be considered. | ||
14498 | numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14499 | check(numberOfExistingReferences < 1); | ||
14500 | } or { | ||
14501 | find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14502 | } | ||
14503 | /** | ||
14504 | * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) | ||
14505 | */ | ||
14506 | private pattern mustInRelationtransient_attribute_EStructuralFeature( | ||
14507 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14508 | source: DefinedElement, target:DefinedElement) | ||
14509 | { | ||
14510 | find interpretation(problem,interpretation); | ||
14511 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14512 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
14513 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14514 | BinaryElementRelationLink.param1(link,source); | ||
14515 | BinaryElementRelationLink.param2(link,target); | ||
14516 | } | ||
14517 | /** | ||
14518 | * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) | ||
14519 | */ | ||
14520 | private pattern mayInRelationtransient_attribute_EStructuralFeature( | ||
14521 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14522 | source: DefinedElement, target:DefinedElement) | ||
14523 | { | ||
14524 | find interpretation(problem,interpretation); | ||
14525 | // The two endpoint of the link have to exist | ||
14526 | find mayExist(problem, interpretation, source); | ||
14527 | find mayExist(problem, interpretation, target); | ||
14528 | // Type consistency | ||
14529 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14530 | BooleanElement(target); | ||
14531 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14532 | // the upper bound of the multiplicity should be considered. | ||
14533 | numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14534 | check(numberOfExistingReferences < 1); | ||
14535 | } or { | ||
14536 | find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14537 | } | ||
14538 | /** | ||
14539 | * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) | ||
14540 | */ | ||
14541 | private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
14542 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14543 | source: DefinedElement, target:DefinedElement) | ||
14544 | { | ||
14545 | find interpretation(problem,interpretation); | ||
14546 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14547 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
14548 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14549 | BinaryElementRelationLink.param1(link,source); | ||
14550 | BinaryElementRelationLink.param2(link,target); | ||
14551 | } | ||
14552 | /** | ||
14553 | * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) | ||
14554 | */ | ||
14555 | private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
14556 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14557 | source: DefinedElement, target:DefinedElement) | ||
14558 | { | ||
14559 | find interpretation(problem,interpretation); | ||
14560 | // The two endpoint of the link have to exist | ||
14561 | find mayExist(problem, interpretation, source); | ||
14562 | find mayExist(problem, interpretation, target); | ||
14563 | // Type consistency | ||
14564 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14565 | StringElement(target); | ||
14566 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14567 | // the upper bound of the multiplicity should be considered. | ||
14568 | numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14569 | check(numberOfExistingReferences < 1); | ||
14570 | } or { | ||
14571 | find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14572 | } | ||
14573 | /** | ||
14574 | * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) | ||
14575 | */ | ||
14576 | private pattern mustInRelationunsettable_attribute_EStructuralFeature( | ||
14577 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14578 | source: DefinedElement, target:DefinedElement) | ||
14579 | { | ||
14580 | find interpretation(problem,interpretation); | ||
14581 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14582 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
14583 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14584 | BinaryElementRelationLink.param1(link,source); | ||
14585 | BinaryElementRelationLink.param2(link,target); | ||
14586 | } | ||
14587 | /** | ||
14588 | * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) | ||
14589 | */ | ||
14590 | private pattern mayInRelationunsettable_attribute_EStructuralFeature( | ||
14591 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14592 | source: DefinedElement, target:DefinedElement) | ||
14593 | { | ||
14594 | find interpretation(problem,interpretation); | ||
14595 | // The two endpoint of the link have to exist | ||
14596 | find mayExist(problem, interpretation, source); | ||
14597 | find mayExist(problem, interpretation, target); | ||
14598 | // Type consistency | ||
14599 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14600 | BooleanElement(target); | ||
14601 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14602 | // the upper bound of the multiplicity should be considered. | ||
14603 | numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14604 | check(numberOfExistingReferences < 1); | ||
14605 | } or { | ||
14606 | find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14607 | } | ||
14608 | /** | ||
14609 | * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) | ||
14610 | */ | ||
14611 | private pattern mustInRelationderived_attribute_EStructuralFeature( | ||
14612 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14613 | source: DefinedElement, target:DefinedElement) | ||
14614 | { | ||
14615 | find interpretation(problem,interpretation); | ||
14616 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14617 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
14618 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14619 | BinaryElementRelationLink.param1(link,source); | ||
14620 | BinaryElementRelationLink.param2(link,target); | ||
14621 | } | ||
14622 | /** | ||
14623 | * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) | ||
14624 | */ | ||
14625 | private pattern mayInRelationderived_attribute_EStructuralFeature( | ||
14626 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14627 | source: DefinedElement, target:DefinedElement) | ||
14628 | { | ||
14629 | find interpretation(problem,interpretation); | ||
14630 | // The two endpoint of the link have to exist | ||
14631 | find mayExist(problem, interpretation, source); | ||
14632 | find mayExist(problem, interpretation, target); | ||
14633 | // Type consistency | ||
14634 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
14635 | BooleanElement(target); | ||
14636 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14637 | // the upper bound of the multiplicity should be considered. | ||
14638 | numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
14639 | check(numberOfExistingReferences < 1); | ||
14640 | } or { | ||
14641 | find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
14642 | } | ||
14643 | /** | ||
14644 | * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) | ||
14645 | */ | ||
14646 | private pattern mustInRelationordered_attribute_ETypedElement( | ||
14647 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14648 | source: DefinedElement, target:DefinedElement) | ||
14649 | { | ||
14650 | find interpretation(problem,interpretation); | ||
14651 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14652 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
14653 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14654 | BinaryElementRelationLink.param1(link,source); | ||
14655 | BinaryElementRelationLink.param2(link,target); | ||
14656 | } | ||
14657 | /** | ||
14658 | * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) | ||
14659 | */ | ||
14660 | private pattern mayInRelationordered_attribute_ETypedElement( | ||
14661 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14662 | source: DefinedElement, target:DefinedElement) | ||
14663 | { | ||
14664 | find interpretation(problem,interpretation); | ||
14665 | // The two endpoint of the link have to exist | ||
14666 | find mayExist(problem, interpretation, source); | ||
14667 | find mayExist(problem, interpretation, target); | ||
14668 | // Type consistency | ||
14669 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14670 | BooleanElement(target); | ||
14671 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14672 | // the upper bound of the multiplicity should be considered. | ||
14673 | numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); | ||
14674 | check(numberOfExistingReferences < 1); | ||
14675 | } or { | ||
14676 | find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); | ||
14677 | } | ||
14678 | /** | ||
14679 | * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) | ||
14680 | */ | ||
14681 | private pattern mustInRelationunique_attribute_ETypedElement( | ||
14682 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14683 | source: DefinedElement, target:DefinedElement) | ||
14684 | { | ||
14685 | find interpretation(problem,interpretation); | ||
14686 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14687 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
14688 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14689 | BinaryElementRelationLink.param1(link,source); | ||
14690 | BinaryElementRelationLink.param2(link,target); | ||
14691 | } | ||
14692 | /** | ||
14693 | * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) | ||
14694 | */ | ||
14695 | private pattern mayInRelationunique_attribute_ETypedElement( | ||
14696 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14697 | source: DefinedElement, target:DefinedElement) | ||
14698 | { | ||
14699 | find interpretation(problem,interpretation); | ||
14700 | // The two endpoint of the link have to exist | ||
14701 | find mayExist(problem, interpretation, source); | ||
14702 | find mayExist(problem, interpretation, target); | ||
14703 | // Type consistency | ||
14704 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14705 | BooleanElement(target); | ||
14706 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14707 | // the upper bound of the multiplicity should be considered. | ||
14708 | numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); | ||
14709 | check(numberOfExistingReferences < 1); | ||
14710 | } or { | ||
14711 | find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); | ||
14712 | } | ||
14713 | /** | ||
14714 | * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) | ||
14715 | */ | ||
14716 | private pattern mustInRelationlowerBound_attribute_ETypedElement( | ||
14717 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14718 | source: DefinedElement, target:DefinedElement) | ||
14719 | { | ||
14720 | find interpretation(problem,interpretation); | ||
14721 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14722 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
14723 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14724 | BinaryElementRelationLink.param1(link,source); | ||
14725 | BinaryElementRelationLink.param2(link,target); | ||
14726 | } | ||
14727 | /** | ||
14728 | * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) | ||
14729 | */ | ||
14730 | private pattern mayInRelationlowerBound_attribute_ETypedElement( | ||
14731 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14732 | source: DefinedElement, target:DefinedElement) | ||
14733 | { | ||
14734 | find interpretation(problem,interpretation); | ||
14735 | // The two endpoint of the link have to exist | ||
14736 | find mayExist(problem, interpretation, source); | ||
14737 | find mayExist(problem, interpretation, target); | ||
14738 | // Type consistency | ||
14739 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14740 | IntegerElement(target); | ||
14741 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14742 | // the upper bound of the multiplicity should be considered. | ||
14743 | numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
14744 | check(numberOfExistingReferences < 1); | ||
14745 | } or { | ||
14746 | find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
14747 | } | ||
14748 | /** | ||
14749 | * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) | ||
14750 | */ | ||
14751 | private pattern mustInRelationupperBound_attribute_ETypedElement( | ||
14752 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14753 | source: DefinedElement, target:DefinedElement) | ||
14754 | { | ||
14755 | find interpretation(problem,interpretation); | ||
14756 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14757 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
14758 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14759 | BinaryElementRelationLink.param1(link,source); | ||
14760 | BinaryElementRelationLink.param2(link,target); | ||
14761 | } | ||
14762 | /** | ||
14763 | * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) | ||
14764 | */ | ||
14765 | private pattern mayInRelationupperBound_attribute_ETypedElement( | ||
14766 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14767 | source: DefinedElement, target:DefinedElement) | ||
14768 | { | ||
14769 | find interpretation(problem,interpretation); | ||
14770 | // The two endpoint of the link have to exist | ||
14771 | find mayExist(problem, interpretation, source); | ||
14772 | find mayExist(problem, interpretation, target); | ||
14773 | // Type consistency | ||
14774 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14775 | IntegerElement(target); | ||
14776 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14777 | // the upper bound of the multiplicity should be considered. | ||
14778 | numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
14779 | check(numberOfExistingReferences < 1); | ||
14780 | } or { | ||
14781 | find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
14782 | } | ||
14783 | /** | ||
14784 | * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) | ||
14785 | */ | ||
14786 | private pattern mustInRelationmany_attribute_ETypedElement( | ||
14787 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14788 | source: DefinedElement, target:DefinedElement) | ||
14789 | { | ||
14790 | find interpretation(problem,interpretation); | ||
14791 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14792 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
14793 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14794 | BinaryElementRelationLink.param1(link,source); | ||
14795 | BinaryElementRelationLink.param2(link,target); | ||
14796 | } | ||
14797 | /** | ||
14798 | * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) | ||
14799 | */ | ||
14800 | private pattern mayInRelationmany_attribute_ETypedElement( | ||
14801 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14802 | source: DefinedElement, target:DefinedElement) | ||
14803 | { | ||
14804 | find interpretation(problem,interpretation); | ||
14805 | // The two endpoint of the link have to exist | ||
14806 | find mayExist(problem, interpretation, source); | ||
14807 | find mayExist(problem, interpretation, target); | ||
14808 | // Type consistency | ||
14809 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14810 | BooleanElement(target); | ||
14811 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14812 | // the upper bound of the multiplicity should be considered. | ||
14813 | numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); | ||
14814 | check(numberOfExistingReferences < 1); | ||
14815 | } or { | ||
14816 | find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); | ||
14817 | } | ||
14818 | /** | ||
14819 | * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) | ||
14820 | */ | ||
14821 | private pattern mustInRelationrequired_attribute_ETypedElement( | ||
14822 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14823 | source: DefinedElement, target:DefinedElement) | ||
14824 | { | ||
14825 | find interpretation(problem,interpretation); | ||
14826 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14827 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
14828 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14829 | BinaryElementRelationLink.param1(link,source); | ||
14830 | BinaryElementRelationLink.param2(link,target); | ||
14831 | } | ||
14832 | /** | ||
14833 | * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) | ||
14834 | */ | ||
14835 | private pattern mayInRelationrequired_attribute_ETypedElement( | ||
14836 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14837 | source: DefinedElement, target:DefinedElement) | ||
14838 | { | ||
14839 | find interpretation(problem,interpretation); | ||
14840 | // The two endpoint of the link have to exist | ||
14841 | find mayExist(problem, interpretation, source); | ||
14842 | find mayExist(problem, interpretation, target); | ||
14843 | // Type consistency | ||
14844 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
14845 | BooleanElement(target); | ||
14846 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14847 | // the upper bound of the multiplicity should be considered. | ||
14848 | numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); | ||
14849 | check(numberOfExistingReferences < 1); | ||
14850 | } or { | ||
14851 | find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); | ||
14852 | } | ||
14853 | /** | ||
14854 | * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) | ||
14855 | */ | ||
14856 | private pattern mustInRelationkey_attribute_EStringToStringMapEntry( | ||
14857 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14858 | source: DefinedElement, target:DefinedElement) | ||
14859 | { | ||
14860 | find interpretation(problem,interpretation); | ||
14861 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14862 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
14863 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14864 | BinaryElementRelationLink.param1(link,source); | ||
14865 | BinaryElementRelationLink.param2(link,target); | ||
14866 | } | ||
14867 | /** | ||
14868 | * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) | ||
14869 | */ | ||
14870 | private pattern mayInRelationkey_attribute_EStringToStringMapEntry( | ||
14871 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14872 | source: DefinedElement, target:DefinedElement) | ||
14873 | { | ||
14874 | find interpretation(problem,interpretation); | ||
14875 | // The two endpoint of the link have to exist | ||
14876 | find mayExist(problem, interpretation, source); | ||
14877 | find mayExist(problem, interpretation, target); | ||
14878 | // Type consistency | ||
14879 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
14880 | StringElement(target); | ||
14881 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14882 | // the upper bound of the multiplicity should be considered. | ||
14883 | numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
14884 | check(numberOfExistingReferences < 1); | ||
14885 | } or { | ||
14886 | find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
14887 | } | ||
14888 | /** | ||
14889 | * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) | ||
14890 | */ | ||
14891 | private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( | ||
14892 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14893 | source: DefinedElement, target:DefinedElement) | ||
14894 | { | ||
14895 | find interpretation(problem,interpretation); | ||
14896 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14897 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
14898 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
14899 | BinaryElementRelationLink.param1(link,source); | ||
14900 | BinaryElementRelationLink.param2(link,target); | ||
14901 | } | ||
14902 | /** | ||
14903 | * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) | ||
14904 | */ | ||
14905 | private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( | ||
14906 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
14907 | source: DefinedElement, target:DefinedElement) | ||
14908 | { | ||
14909 | find interpretation(problem,interpretation); | ||
14910 | // The two endpoint of the link have to exist | ||
14911 | find mayExist(problem, interpretation, source); | ||
14912 | find mayExist(problem, interpretation, target); | ||
14913 | // Type consistency | ||
14914 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
14915 | StringElement(target); | ||
14916 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
14917 | // the upper bound of the multiplicity should be considered. | ||
14918 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
14919 | check(numberOfExistingReferences < 1); | ||
14920 | } or { | ||
14921 | find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
14922 | } | ||
14923 | |||
14924 | ////////// | ||
14925 | // 1.3 Relation Definition Indexers | ||
14926 | ////////// | ||
14927 | |||
14928 | ////////// | ||
14929 | // 1.4 Containment Indexer | ||
14930 | ////////// | ||
14931 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
14932 | find mustContains4(_,_,source,target); | ||
14933 | } | ||
14934 | |||
14935 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
14936 | source: DefinedElement, target: DefinedElement) | ||
14937 | { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or | ||
14938 | |||
14939 | { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or | ||
14940 | |||
14941 | { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or | ||
14942 | |||
14943 | { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or | ||
14944 | |||
14945 | { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or | ||
14946 | |||
14947 | { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or | ||
14948 | |||
14949 | { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or | ||
14950 | |||
14951 | { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or | ||
14952 | |||
14953 | { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
14954 | |||
14955 | { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
14956 | |||
14957 | { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or | ||
14958 | |||
14959 | { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or | ||
14960 | |||
14961 | { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or | ||
14962 | |||
14963 | { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or | ||
14964 | |||
14965 | { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
14966 | |||
14967 | { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or | ||
14968 | |||
14969 | { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
14970 | |||
14971 | { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } | ||
14972 | |||
14973 | private pattern mustTransitiveContains(source,target) { | ||
14974 | find mustContains2+(source,target); | ||
14975 | } | ||
14976 | |||
14977 | ////////// | ||
14978 | // 2. Invalidation Indexers | ||
14979 | ////////// | ||
14980 | // 2.1 Invalidated by WF Queries | ||
14981 | ////////// | ||
14982 | |||
14983 | ////////// | ||
14984 | // 3. Unfinishedness Indexers | ||
14985 | ////////// | ||
14986 | // 3.1 Unfinishedness Measured by Multiplicity | ||
14987 | ////////// | ||
14988 | pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
14989 | find interpretation(problem,interpretation); | ||
14990 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
14991 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
14992 | find mustInstanceOfEAttribute_class(problem,interpretation,object); | ||
14993 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); | ||
14994 | check(numberOfExistingReferences < 1); | ||
14995 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
14996 | } | ||
14997 | pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
14998 | find interpretation(problem,interpretation); | ||
14999 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15000 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
15001 | find mustInstanceOfEReference_class(problem,interpretation,object); | ||
15002 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); | ||
15003 | check(numberOfExistingReferences < 1); | ||
15004 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
15005 | } | ||
15006 | pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
15007 | find interpretation(problem,interpretation); | ||
15008 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15009 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
15010 | find mustInstanceOfEGenericType_class(problem,interpretation,object); | ||
15011 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); | ||
15012 | check(numberOfExistingReferences < 1); | ||
15013 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
15014 | } | ||
15015 | |||
15016 | ////////// | ||
15017 | // 3.2 Unfinishedness Measured by WF Queries | ||
15018 | ////////// | ||
15019 | |||
15020 | ////////// | ||
15021 | // 4. Refinement Indexers | ||
15022 | ////////// | ||
15023 | // 4.1 Object constructors | ||
15024 | ////////// | ||
15025 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
15026 | { | ||
15027 | find interpretation(problem,interpretation); | ||
15028 | find mustInstanceOfENamedElement_class(problem,interpretation,root); | ||
15029 | find mustExist(problem, interpretation, root); | ||
15030 | }or{ | ||
15031 | find interpretation(problem,interpretation); | ||
15032 | find mustInstanceOfEObject_class(problem,interpretation,root); | ||
15033 | find mustExist(problem, interpretation, root); | ||
15034 | }or{ | ||
15035 | find interpretation(problem,interpretation); | ||
15036 | find mustInstanceOfEParameter_class(problem,interpretation,root); | ||
15037 | find mustExist(problem, interpretation, root); | ||
15038 | }or{ | ||
15039 | find interpretation(problem,interpretation); | ||
15040 | find mustInstanceOfEReference_class(problem,interpretation,root); | ||
15041 | find mustExist(problem, interpretation, root); | ||
15042 | }or{ | ||
15043 | find interpretation(problem,interpretation); | ||
15044 | find mustInstanceOfEOperation_class(problem,interpretation,root); | ||
15045 | find mustExist(problem, interpretation, root); | ||
15046 | }or{ | ||
15047 | find interpretation(problem,interpretation); | ||
15048 | find mustInstanceOfEClass_class(problem,interpretation,root); | ||
15049 | find mustExist(problem, interpretation, root); | ||
15050 | }or{ | ||
15051 | find interpretation(problem,interpretation); | ||
15052 | find mustInstanceOfEAnnotation_class(problem,interpretation,root); | ||
15053 | find mustExist(problem, interpretation, root); | ||
15054 | }or{ | ||
15055 | find interpretation(problem,interpretation); | ||
15056 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,root); | ||
15057 | find mustExist(problem, interpretation, root); | ||
15058 | }or{ | ||
15059 | find interpretation(problem,interpretation); | ||
15060 | find mustInstanceOfEModelElement_class(problem,interpretation,root); | ||
15061 | find mustExist(problem, interpretation, root); | ||
15062 | }or{ | ||
15063 | find interpretation(problem,interpretation); | ||
15064 | find mustInstanceOfEAttribute_class(problem,interpretation,root); | ||
15065 | find mustExist(problem, interpretation, root); | ||
15066 | }or{ | ||
15067 | find interpretation(problem,interpretation); | ||
15068 | find mustInstanceOfEClassifier_class(problem,interpretation,root); | ||
15069 | find mustExist(problem, interpretation, root); | ||
15070 | }or{ | ||
15071 | find interpretation(problem,interpretation); | ||
15072 | find mustInstanceOfETypedElement_class(problem,interpretation,root); | ||
15073 | find mustExist(problem, interpretation, root); | ||
15074 | }or{ | ||
15075 | find interpretation(problem,interpretation); | ||
15076 | find mustInstanceOfEPackage_class(problem,interpretation,root); | ||
15077 | find mustExist(problem, interpretation, root); | ||
15078 | }or{ | ||
15079 | find interpretation(problem,interpretation); | ||
15080 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,root); | ||
15081 | find mustExist(problem, interpretation, root); | ||
15082 | }or{ | ||
15083 | find interpretation(problem,interpretation); | ||
15084 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root); | ||
15085 | find mustExist(problem, interpretation, root); | ||
15086 | }or{ | ||
15087 | find interpretation(problem,interpretation); | ||
15088 | find mustInstanceOfEEnum_class(problem,interpretation,root); | ||
15089 | find mustExist(problem, interpretation, root); | ||
15090 | }or{ | ||
15091 | find interpretation(problem,interpretation); | ||
15092 | find mustInstanceOfEDataType_class(problem,interpretation,root); | ||
15093 | find mustExist(problem, interpretation, root); | ||
15094 | }or{ | ||
15095 | find interpretation(problem,interpretation); | ||
15096 | find mustInstanceOfEGenericType_class(problem,interpretation,root); | ||
15097 | find mustExist(problem, interpretation, root); | ||
15098 | }or{ | ||
15099 | find interpretation(problem,interpretation); | ||
15100 | find mustInstanceOfETypeParameter_class(problem,interpretation,root); | ||
15101 | find mustExist(problem, interpretation, root); | ||
15102 | }or{ | ||
15103 | find interpretation(problem,interpretation); | ||
15104 | find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); | ||
15105 | find mustExist(problem, interpretation, root); | ||
15106 | }or{ | ||
15107 | find interpretation(problem,interpretation); | ||
15108 | find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); | ||
15109 | find mustExist(problem, interpretation, root); | ||
15110 | }or{ | ||
15111 | find interpretation(problem,interpretation); | ||
15112 | find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); | ||
15113 | find mustExist(problem, interpretation, root); | ||
15114 | }or{ | ||
15115 | find interpretation(problem,interpretation); | ||
15116 | find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); | ||
15117 | find mustExist(problem, interpretation, root); | ||
15118 | }or{ | ||
15119 | find interpretation(problem,interpretation); | ||
15120 | find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); | ||
15121 | find mustExist(problem, interpretation, root); | ||
15122 | }or{ | ||
15123 | find interpretation(problem,interpretation); | ||
15124 | find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); | ||
15125 | find mustExist(problem, interpretation, root); | ||
15126 | } | ||
15127 | pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( | ||
15128 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15129 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15130 | container:DefinedElement) | ||
15131 | { | ||
15132 | find interpretation(problem,interpretation); | ||
15133 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15134 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15135 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15136 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass"); | ||
15137 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
15138 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15139 | find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject); | ||
15140 | find mustExist(problem, interpretation, container); | ||
15141 | neg find mustExist(problem, interpretation, newObject); | ||
15142 | } | ||
15143 | pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation( | ||
15144 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15145 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15146 | container:DefinedElement) | ||
15147 | { | ||
15148 | find interpretation(problem,interpretation); | ||
15149 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15150 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15151 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15152 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); | ||
15153 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
15154 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15155 | find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); | ||
15156 | find mustExist(problem, interpretation, container); | ||
15157 | neg find mustExist(problem, interpretation, newObject); | ||
15158 | } | ||
15159 | pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( | ||
15160 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15161 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15162 | container:DefinedElement) | ||
15163 | { | ||
15164 | find interpretation(problem,interpretation); | ||
15165 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15166 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15167 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15168 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); | ||
15169 | find mustInstanceOfETypedElement_class(problem,interpretation,container); | ||
15170 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15171 | find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); | ||
15172 | find mustExist(problem, interpretation, container); | ||
15173 | neg find mustExist(problem, interpretation, newObject); | ||
15174 | } | ||
15175 | pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( | ||
15176 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15177 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15178 | container:DefinedElement) | ||
15179 | { | ||
15180 | find interpretation(problem,interpretation); | ||
15181 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15182 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15183 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15184 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); | ||
15185 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
15186 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15187 | find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
15188 | find mustExist(problem, interpretation, container); | ||
15189 | neg find mustExist(problem, interpretation, newObject); | ||
15190 | } | ||
15191 | pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( | ||
15192 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15193 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15194 | container:DefinedElement) | ||
15195 | { | ||
15196 | find interpretation(problem,interpretation); | ||
15197 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15198 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15199 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15200 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); | ||
15201 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
15202 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15203 | find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); | ||
15204 | find mustExist(problem, interpretation, container); | ||
15205 | neg find mustExist(problem, interpretation, newObject); | ||
15206 | } | ||
15207 | pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( | ||
15208 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15209 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15210 | container:DefinedElement) | ||
15211 | { | ||
15212 | find interpretation(problem,interpretation); | ||
15213 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15214 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15215 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15216 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); | ||
15217 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
15218 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15219 | find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
15220 | find mustExist(problem, interpretation, container); | ||
15221 | neg find mustExist(problem, interpretation, newObject); | ||
15222 | } | ||
15223 | pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( | ||
15224 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15225 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15226 | container:DefinedElement) | ||
15227 | { | ||
15228 | find interpretation(problem,interpretation); | ||
15229 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15230 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15231 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15232 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); | ||
15233 | find mustInstanceOfETypeParameter_class(problem,interpretation,container); | ||
15234 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15235 | find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); | ||
15236 | find mustExist(problem, interpretation, container); | ||
15237 | neg find mustExist(problem, interpretation, newObject); | ||
15238 | } | ||
15239 | pattern createObject_EGenericType_class( | ||
15240 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15241 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15242 | { | ||
15243 | find interpretation(problem,interpretation); | ||
15244 | neg find hasElementInContainment(problem,interpretation); | ||
15245 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15246 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
15247 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
15248 | find mayExist(problem, interpretation, newObject); | ||
15249 | neg find mustExist(problem, interpretation, newObject); | ||
15250 | } | ||
15251 | pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( | ||
15252 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15253 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15254 | container:DefinedElement) | ||
15255 | { | ||
15256 | find interpretation(problem,interpretation); | ||
15257 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15258 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
15259 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15260 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); | ||
15261 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15262 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); | ||
15263 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
15264 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
15265 | find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); | ||
15266 | find mustExist(problem, interpretation, container); | ||
15267 | neg find mustExist(problem, interpretation, newObject); | ||
15268 | } | ||
15269 | pattern createObject_EPackage_class_UndefinedPart( | ||
15270 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15271 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15272 | { | ||
15273 | find interpretation(problem,interpretation); | ||
15274 | neg find hasElementInContainment(problem,interpretation); | ||
15275 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15276 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
15277 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
15278 | find mayExist(problem, interpretation, newObject); | ||
15279 | neg find mustExist(problem, interpretation, newObject); | ||
15280 | } | ||
15281 | pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( | ||
15282 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15283 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15284 | container:DefinedElement) | ||
15285 | { | ||
15286 | find interpretation(problem,interpretation); | ||
15287 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15288 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
15289 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15290 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); | ||
15291 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15292 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); | ||
15293 | find mustInstanceOfEModelElement_class(problem,interpretation,container); | ||
15294 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
15295 | find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); | ||
15296 | find mustExist(problem, interpretation, container); | ||
15297 | neg find mustExist(problem, interpretation, newObject); | ||
15298 | } | ||
15299 | pattern createObject_EAnnotation_class( | ||
15300 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15301 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15302 | { | ||
15303 | find interpretation(problem,interpretation); | ||
15304 | neg find hasElementInContainment(problem,interpretation); | ||
15305 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15306 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
15307 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
15308 | find mayExist(problem, interpretation, newObject); | ||
15309 | neg find mustExist(problem, interpretation, newObject); | ||
15310 | } | ||
15311 | pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( | ||
15312 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15313 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15314 | container:DefinedElement) | ||
15315 | { | ||
15316 | find interpretation(problem,interpretation); | ||
15317 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15318 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
15319 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15320 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); | ||
15321 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15322 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); | ||
15323 | find mustInstanceOfEEnum_class(problem,interpretation,container); | ||
15324 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
15325 | find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); | ||
15326 | find mustExist(problem, interpretation, container); | ||
15327 | neg find mustExist(problem, interpretation, newObject); | ||
15328 | } | ||
15329 | pattern createObject_EEnumLiteral_class( | ||
15330 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15331 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15332 | { | ||
15333 | find interpretation(problem,interpretation); | ||
15334 | neg find hasElementInContainment(problem,interpretation); | ||
15335 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15336 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
15337 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
15338 | find mayExist(problem, interpretation, newObject); | ||
15339 | neg find mustExist(problem, interpretation, newObject); | ||
15340 | } | ||
15341 | pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
15342 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15343 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15344 | container:DefinedElement) | ||
15345 | { | ||
15346 | find interpretation(problem,interpretation); | ||
15347 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15348 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
15349 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15350 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
15351 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15352 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
15353 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
15354 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
15355 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
15356 | find mustExist(problem, interpretation, container); | ||
15357 | neg find mustExist(problem, interpretation, newObject); | ||
15358 | } | ||
15359 | pattern createObject_EEnum_class( | ||
15360 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15361 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15362 | { | ||
15363 | find interpretation(problem,interpretation); | ||
15364 | neg find hasElementInContainment(problem,interpretation); | ||
15365 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15366 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
15367 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
15368 | find mayExist(problem, interpretation, newObject); | ||
15369 | neg find mustExist(problem, interpretation, newObject); | ||
15370 | } | ||
15371 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( | ||
15372 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15373 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15374 | container:DefinedElement) | ||
15375 | { | ||
15376 | find interpretation(problem,interpretation); | ||
15377 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15378 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
15379 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15380 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier"); | ||
15381 | find mustInstanceOfEClassifier_class(problem,interpretation,container); | ||
15382 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
15383 | find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject); | ||
15384 | find mustExist(problem, interpretation, container); | ||
15385 | neg find mustExist(problem, interpretation, newObject); | ||
15386 | } | ||
15387 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation( | ||
15388 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15389 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15390 | container:DefinedElement) | ||
15391 | { | ||
15392 | find interpretation(problem,interpretation); | ||
15393 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15394 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
15395 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15396 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation"); | ||
15397 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
15398 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
15399 | find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
15400 | find mustExist(problem, interpretation, container); | ||
15401 | neg find mustExist(problem, interpretation, newObject); | ||
15402 | } | ||
15403 | pattern createObject_ETypeParameter_class( | ||
15404 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15405 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15406 | { | ||
15407 | find interpretation(problem,interpretation); | ||
15408 | neg find hasElementInContainment(problem,interpretation); | ||
15409 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15410 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
15411 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
15412 | find mayExist(problem, interpretation, newObject); | ||
15413 | neg find mustExist(problem, interpretation, newObject); | ||
15414 | } | ||
15415 | pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( | ||
15416 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15417 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15418 | container:DefinedElement) | ||
15419 | { | ||
15420 | find interpretation(problem,interpretation); | ||
15421 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15422 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
15423 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15424 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation"); | ||
15425 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
15426 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
15427 | find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject); | ||
15428 | find mustExist(problem, interpretation, container); | ||
15429 | neg find mustExist(problem, interpretation, newObject); | ||
15430 | } | ||
15431 | pattern createObject_EStringToStringMapEntry_class( | ||
15432 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15433 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15434 | { | ||
15435 | find interpretation(problem,interpretation); | ||
15436 | neg find hasElementInContainment(problem,interpretation); | ||
15437 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15438 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
15439 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
15440 | find mayExist(problem, interpretation, newObject); | ||
15441 | neg find mustExist(problem, interpretation, newObject); | ||
15442 | } | ||
15443 | pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
15444 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15445 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15446 | container:DefinedElement) | ||
15447 | { | ||
15448 | find interpretation(problem,interpretation); | ||
15449 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15450 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
15451 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15452 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
15453 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15454 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
15455 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
15456 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
15457 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
15458 | find mustExist(problem, interpretation, container); | ||
15459 | neg find mustExist(problem, interpretation, newObject); | ||
15460 | } | ||
15461 | pattern createObject_EAttribute_class( | ||
15462 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15463 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15464 | { | ||
15465 | find interpretation(problem,interpretation); | ||
15466 | neg find hasElementInContainment(problem,interpretation); | ||
15467 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15468 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
15469 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
15470 | find mayExist(problem, interpretation, newObject); | ||
15471 | neg find mustExist(problem, interpretation, newObject); | ||
15472 | } | ||
15473 | pattern createObject_EObject_class_by_contents_reference_EAnnotation( | ||
15474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15475 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15476 | container:DefinedElement) | ||
15477 | { | ||
15478 | find interpretation(problem,interpretation); | ||
15479 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15480 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
15481 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15482 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); | ||
15483 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
15484 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
15485 | find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); | ||
15486 | find mustExist(problem, interpretation, container); | ||
15487 | neg find mustExist(problem, interpretation, newObject); | ||
15488 | } | ||
15489 | pattern createObject_EObject_class( | ||
15490 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15491 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15492 | { | ||
15493 | find interpretation(problem,interpretation); | ||
15494 | neg find hasElementInContainment(problem,interpretation); | ||
15495 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15496 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
15497 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
15498 | find mayExist(problem, interpretation, newObject); | ||
15499 | neg find mustExist(problem, interpretation, newObject); | ||
15500 | } | ||
15501 | pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( | ||
15502 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15503 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15504 | container:DefinedElement) | ||
15505 | { | ||
15506 | find interpretation(problem,interpretation); | ||
15507 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15508 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
15509 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15510 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); | ||
15511 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15512 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); | ||
15513 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
15514 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
15515 | find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); | ||
15516 | find mustExist(problem, interpretation, container); | ||
15517 | neg find mustExist(problem, interpretation, newObject); | ||
15518 | } | ||
15519 | pattern createObject_EOperation_class( | ||
15520 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15521 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15522 | { | ||
15523 | find interpretation(problem,interpretation); | ||
15524 | neg find hasElementInContainment(problem,interpretation); | ||
15525 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15526 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
15527 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
15528 | find mayExist(problem, interpretation, newObject); | ||
15529 | neg find mustExist(problem, interpretation, newObject); | ||
15530 | } | ||
15531 | pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
15532 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15533 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15534 | container:DefinedElement) | ||
15535 | { | ||
15536 | find interpretation(problem,interpretation); | ||
15537 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15538 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
15539 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15540 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
15541 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15542 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
15543 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
15544 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
15545 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
15546 | find mustExist(problem, interpretation, container); | ||
15547 | neg find mustExist(problem, interpretation, newObject); | ||
15548 | } | ||
15549 | pattern createObject_EDataType_class( | ||
15550 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15551 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15552 | { | ||
15553 | find interpretation(problem,interpretation); | ||
15554 | neg find hasElementInContainment(problem,interpretation); | ||
15555 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15556 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
15557 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
15558 | find mayExist(problem, interpretation, newObject); | ||
15559 | neg find mustExist(problem, interpretation, newObject); | ||
15560 | } | ||
15561 | pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
15562 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15563 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15564 | container:DefinedElement) | ||
15565 | { | ||
15566 | find interpretation(problem,interpretation); | ||
15567 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15568 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
15569 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15570 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
15571 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15572 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
15573 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
15574 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
15575 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
15576 | find mustExist(problem, interpretation, container); | ||
15577 | neg find mustExist(problem, interpretation, newObject); | ||
15578 | } | ||
15579 | pattern createObject_EReference_class( | ||
15580 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15581 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15582 | { | ||
15583 | find interpretation(problem,interpretation); | ||
15584 | neg find hasElementInContainment(problem,interpretation); | ||
15585 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15586 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
15587 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
15588 | find mayExist(problem, interpretation, newObject); | ||
15589 | neg find mustExist(problem, interpretation, newObject); | ||
15590 | } | ||
15591 | pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
15592 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15593 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15594 | container:DefinedElement) | ||
15595 | { | ||
15596 | find interpretation(problem,interpretation); | ||
15597 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15598 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
15599 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15600 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
15601 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15602 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
15603 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
15604 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
15605 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
15606 | find mustExist(problem, interpretation, container); | ||
15607 | neg find mustExist(problem, interpretation, newObject); | ||
15608 | } | ||
15609 | pattern createObject_EClass_class( | ||
15610 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15611 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15612 | { | ||
15613 | find interpretation(problem,interpretation); | ||
15614 | neg find hasElementInContainment(problem,interpretation); | ||
15615 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15616 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
15617 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
15618 | find mayExist(problem, interpretation, newObject); | ||
15619 | neg find mustExist(problem, interpretation, newObject); | ||
15620 | } | ||
15621 | pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( | ||
15622 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15623 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
15624 | container:DefinedElement) | ||
15625 | { | ||
15626 | find interpretation(problem,interpretation); | ||
15627 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15628 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
15629 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
15630 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); | ||
15631 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
15632 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); | ||
15633 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
15634 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
15635 | find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
15636 | find mustExist(problem, interpretation, container); | ||
15637 | neg find mustExist(problem, interpretation, newObject); | ||
15638 | } | ||
15639 | pattern createObject_EParameter_class( | ||
15640 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15641 | typeInterpretation:PartialComplexTypeInterpretation) | ||
15642 | { | ||
15643 | find interpretation(problem,interpretation); | ||
15644 | neg find hasElementInContainment(problem,interpretation); | ||
15645 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
15646 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
15647 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
15648 | find mayExist(problem, interpretation, newObject); | ||
15649 | neg find mustExist(problem, interpretation, newObject); | ||
15650 | } | ||
15651 | |||
15652 | ////////// | ||
15653 | // 4.2 Type refinement | ||
15654 | ////////// | ||
15655 | pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15656 | find interpretation(problem,interpretation); | ||
15657 | PartialInterpretation.newElements(interpretation,element); | ||
15658 | find mayInstanceOfEGenericType_class(problem,interpretation,element); | ||
15659 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15660 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15661 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
15662 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15663 | } | ||
15664 | pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15665 | find interpretation(problem,interpretation); | ||
15666 | PartialInterpretation.newElements(interpretation,element); | ||
15667 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
15668 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15669 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15670 | neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
15671 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15672 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15673 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15674 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15675 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15676 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15677 | } | ||
15678 | pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15679 | find interpretation(problem,interpretation); | ||
15680 | PartialInterpretation.newElements(interpretation,element); | ||
15681 | find mayInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15682 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15683 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15684 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
15685 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15686 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15687 | } | ||
15688 | pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15689 | find interpretation(problem,interpretation); | ||
15690 | PartialInterpretation.newElements(interpretation,element); | ||
15691 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15692 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15693 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15694 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15695 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15696 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15697 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15698 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15699 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15700 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15701 | } | ||
15702 | pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15703 | find interpretation(problem,interpretation); | ||
15704 | PartialInterpretation.newElements(interpretation,element); | ||
15705 | find mayInstanceOfEEnum_class(problem,interpretation,element); | ||
15706 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15707 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15708 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15709 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15710 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15711 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15712 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
15713 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15714 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
15715 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15716 | } | ||
15717 | pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15718 | find interpretation(problem,interpretation); | ||
15719 | PartialInterpretation.newElements(interpretation,element); | ||
15720 | find mayInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15721 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15722 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15723 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15724 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15725 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15726 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15727 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15728 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15729 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15730 | } | ||
15731 | pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15732 | find interpretation(problem,interpretation); | ||
15733 | PartialInterpretation.newElements(interpretation,element); | ||
15734 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15735 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15736 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15737 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
15738 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15739 | } | ||
15740 | pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15741 | find interpretation(problem,interpretation); | ||
15742 | PartialInterpretation.newElements(interpretation,element); | ||
15743 | find mayInstanceOfEAttribute_class(problem,interpretation,element); | ||
15744 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15745 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15746 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15747 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15748 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
15749 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15750 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
15751 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15752 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15753 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
15754 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15755 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
15756 | } | ||
15757 | pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15758 | find interpretation(problem,interpretation); | ||
15759 | PartialInterpretation.newElements(interpretation,element); | ||
15760 | find mayInstanceOfEObject_class(problem,interpretation,element); | ||
15761 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15762 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15763 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
15764 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15765 | } | ||
15766 | pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15767 | find interpretation(problem,interpretation); | ||
15768 | PartialInterpretation.newElements(interpretation,element); | ||
15769 | find mayInstanceOfEOperation_class(problem,interpretation,element); | ||
15770 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15771 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15772 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15773 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15774 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15775 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
15776 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
15777 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15778 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15779 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15780 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
15781 | } | ||
15782 | pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15783 | find interpretation(problem,interpretation); | ||
15784 | PartialInterpretation.newElements(interpretation,element); | ||
15785 | find mayInstanceOfEDataType_class(problem,interpretation,element); | ||
15786 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15787 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15788 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15789 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15790 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15791 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15792 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
15793 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
15794 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15795 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
15796 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15797 | } | ||
15798 | pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15799 | find interpretation(problem,interpretation); | ||
15800 | PartialInterpretation.newElements(interpretation,element); | ||
15801 | find mayInstanceOfEReference_class(problem,interpretation,element); | ||
15802 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15803 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15804 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15805 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
15806 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15807 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15808 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15809 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
15810 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15811 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
15812 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15813 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
15814 | } | ||
15815 | pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15816 | find interpretation(problem,interpretation); | ||
15817 | PartialInterpretation.newElements(interpretation,element); | ||
15818 | find mayInstanceOfEClass_class(problem,interpretation,element); | ||
15819 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15820 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15821 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
15822 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15823 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15824 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15825 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15826 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
15827 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
15828 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15829 | } | ||
15830 | pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
15831 | find interpretation(problem,interpretation); | ||
15832 | PartialInterpretation.newElements(interpretation,element); | ||
15833 | find mayInstanceOfEParameter_class(problem,interpretation,element); | ||
15834 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
15835 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
15836 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
15837 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
15838 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
15839 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
15840 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
15841 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
15842 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
15843 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
15844 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
15845 | } | ||
15846 | |||
15847 | ////////// | ||
15848 | // 4.3 Relation refinement | ||
15849 | ////////// | ||
15850 | pattern refineRelation_eAttributeType_reference_EAttribute( | ||
15851 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15852 | relationIterpretation:PartialRelationInterpretation, | ||
15853 | from: DefinedElement, to: DefinedElement) | ||
15854 | { | ||
15855 | find interpretation(problem,interpretation); | ||
15856 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15857 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
15858 | find mustExist(problem, interpretation, from); | ||
15859 | find mustExist(problem, interpretation, to); | ||
15860 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
15861 | find mustInstanceOfEDataType_class(problem,interpretation,to); | ||
15862 | find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
15863 | neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
15864 | } | ||
15865 | pattern refineRelation_references_reference_EAnnotation( | ||
15866 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15867 | relationIterpretation:PartialRelationInterpretation, | ||
15868 | from: DefinedElement, to: DefinedElement) | ||
15869 | { | ||
15870 | find interpretation(problem,interpretation); | ||
15871 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15872 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
15873 | find mustExist(problem, interpretation, from); | ||
15874 | find mustExist(problem, interpretation, to); | ||
15875 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
15876 | find mustInstanceOfEObject_class(problem,interpretation,to); | ||
15877 | find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
15878 | neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
15879 | } | ||
15880 | pattern refineRelation_eSuperTypes_reference_EClass( | ||
15881 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15882 | relationIterpretation:PartialRelationInterpretation, | ||
15883 | from: DefinedElement, to: DefinedElement) | ||
15884 | { | ||
15885 | find interpretation(problem,interpretation); | ||
15886 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15887 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
15888 | find mustExist(problem, interpretation, from); | ||
15889 | find mustExist(problem, interpretation, to); | ||
15890 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15891 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
15892 | find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
15893 | neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
15894 | } | ||
15895 | pattern refineRelation_eAllAttributes_reference_EClass( | ||
15896 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15897 | relationIterpretation:PartialRelationInterpretation, | ||
15898 | from: DefinedElement, to: DefinedElement) | ||
15899 | { | ||
15900 | find interpretation(problem,interpretation); | ||
15901 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15902 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
15903 | find mustExist(problem, interpretation, from); | ||
15904 | find mustExist(problem, interpretation, to); | ||
15905 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15906 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
15907 | find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
15908 | neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
15909 | } | ||
15910 | pattern refineRelation_eAllReferences_reference_EClass( | ||
15911 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15912 | relationIterpretation:PartialRelationInterpretation, | ||
15913 | from: DefinedElement, to: DefinedElement) | ||
15914 | { | ||
15915 | find interpretation(problem,interpretation); | ||
15916 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15917 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
15918 | find mustExist(problem, interpretation, from); | ||
15919 | find mustExist(problem, interpretation, to); | ||
15920 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15921 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
15922 | find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
15923 | neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
15924 | } | ||
15925 | pattern refineRelation_eReferences_reference_EClass( | ||
15926 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15927 | relationIterpretation:PartialRelationInterpretation, | ||
15928 | from: DefinedElement, to: DefinedElement) | ||
15929 | { | ||
15930 | find interpretation(problem,interpretation); | ||
15931 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15932 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
15933 | find mustExist(problem, interpretation, from); | ||
15934 | find mustExist(problem, interpretation, to); | ||
15935 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15936 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
15937 | find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
15938 | neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
15939 | } | ||
15940 | pattern refineRelation_eAttributes_reference_EClass( | ||
15941 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15942 | relationIterpretation:PartialRelationInterpretation, | ||
15943 | from: DefinedElement, to: DefinedElement) | ||
15944 | { | ||
15945 | find interpretation(problem,interpretation); | ||
15946 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15947 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
15948 | find mustExist(problem, interpretation, from); | ||
15949 | find mustExist(problem, interpretation, to); | ||
15950 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15951 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
15952 | find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
15953 | neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
15954 | } | ||
15955 | pattern refineRelation_eAllContainments_reference_EClass( | ||
15956 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15957 | relationIterpretation:PartialRelationInterpretation, | ||
15958 | from: DefinedElement, to: DefinedElement) | ||
15959 | { | ||
15960 | find interpretation(problem,interpretation); | ||
15961 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15962 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
15963 | find mustExist(problem, interpretation, from); | ||
15964 | find mustExist(problem, interpretation, to); | ||
15965 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15966 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
15967 | find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
15968 | neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
15969 | } | ||
15970 | pattern refineRelation_eAllOperations_reference_EClass( | ||
15971 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15972 | relationIterpretation:PartialRelationInterpretation, | ||
15973 | from: DefinedElement, to: DefinedElement) | ||
15974 | { | ||
15975 | find interpretation(problem,interpretation); | ||
15976 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15977 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
15978 | find mustExist(problem, interpretation, from); | ||
15979 | find mustExist(problem, interpretation, to); | ||
15980 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15981 | find mustInstanceOfEOperation_class(problem,interpretation,to); | ||
15982 | find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
15983 | neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
15984 | } | ||
15985 | pattern refineRelation_eAllStructuralFeatures_reference_EClass( | ||
15986 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
15987 | relationIterpretation:PartialRelationInterpretation, | ||
15988 | from: DefinedElement, to: DefinedElement) | ||
15989 | { | ||
15990 | find interpretation(problem,interpretation); | ||
15991 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
15992 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
15993 | find mustExist(problem, interpretation, from); | ||
15994 | find mustExist(problem, interpretation, to); | ||
15995 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
15996 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,to); | ||
15997 | find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
15998 | neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
15999 | } | ||
16000 | pattern refineRelation_eAllSuperTypes_reference_EClass( | ||
16001 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16002 | relationIterpretation:PartialRelationInterpretation, | ||
16003 | from: DefinedElement, to: DefinedElement) | ||
16004 | { | ||
16005 | find interpretation(problem,interpretation); | ||
16006 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16007 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
16008 | find mustExist(problem, interpretation, from); | ||
16009 | find mustExist(problem, interpretation, to); | ||
16010 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
16011 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
16012 | find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
16013 | neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
16014 | } | ||
16015 | pattern refineRelation_eIDAttribute_reference_EClass( | ||
16016 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16017 | relationIterpretation:PartialRelationInterpretation, | ||
16018 | from: DefinedElement, to: DefinedElement) | ||
16019 | { | ||
16020 | find interpretation(problem,interpretation); | ||
16021 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16022 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
16023 | find mustExist(problem, interpretation, from); | ||
16024 | find mustExist(problem, interpretation, to); | ||
16025 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
16026 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
16027 | find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
16028 | neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
16029 | } | ||
16030 | pattern refineRelation_eAllGenericSuperTypes_reference_EClass( | ||
16031 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16032 | relationIterpretation:PartialRelationInterpretation, | ||
16033 | from: DefinedElement, to: DefinedElement) | ||
16034 | { | ||
16035 | find interpretation(problem,interpretation); | ||
16036 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16037 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
16038 | find mustExist(problem, interpretation, from); | ||
16039 | find mustExist(problem, interpretation, to); | ||
16040 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
16041 | find mustInstanceOfEGenericType_class(problem,interpretation,to); | ||
16042 | find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
16043 | neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
16044 | } | ||
16045 | pattern refineRelation_eExceptions_reference_EOperation( | ||
16046 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16047 | relationIterpretation:PartialRelationInterpretation, | ||
16048 | from: DefinedElement, to: DefinedElement) | ||
16049 | { | ||
16050 | find interpretation(problem,interpretation); | ||
16051 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16052 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
16053 | find mustExist(problem, interpretation, from); | ||
16054 | find mustExist(problem, interpretation, to); | ||
16055 | find mustInstanceOfEOperation_class(problem,interpretation,from); | ||
16056 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
16057 | find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
16058 | neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
16059 | } | ||
16060 | pattern refineRelation_eOpposite_reference_EReference( | ||
16061 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16062 | relationIterpretation:PartialRelationInterpretation, | ||
16063 | from: DefinedElement, to: DefinedElement) | ||
16064 | { | ||
16065 | find interpretation(problem,interpretation); | ||
16066 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16067 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
16068 | find mustExist(problem, interpretation, from); | ||
16069 | find mustExist(problem, interpretation, to); | ||
16070 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16071 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
16072 | find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
16073 | neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
16074 | } | ||
16075 | pattern refineRelation_eReferenceType_reference_EReference( | ||
16076 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16077 | relationIterpretation:PartialRelationInterpretation, | ||
16078 | from: DefinedElement, to: DefinedElement) | ||
16079 | { | ||
16080 | find interpretation(problem,interpretation); | ||
16081 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16082 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
16083 | find mustExist(problem, interpretation, from); | ||
16084 | find mustExist(problem, interpretation, to); | ||
16085 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16086 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
16087 | find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
16088 | neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
16089 | } | ||
16090 | pattern refineRelation_eKeys_reference_EReference( | ||
16091 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16092 | relationIterpretation:PartialRelationInterpretation, | ||
16093 | from: DefinedElement, to: DefinedElement) | ||
16094 | { | ||
16095 | find interpretation(problem,interpretation); | ||
16096 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16097 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
16098 | find mustExist(problem, interpretation, from); | ||
16099 | find mustExist(problem, interpretation, to); | ||
16100 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16101 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
16102 | find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
16103 | neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
16104 | } | ||
16105 | pattern refineRelation_eType_reference_ETypedElement( | ||
16106 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16107 | relationIterpretation:PartialRelationInterpretation, | ||
16108 | from: DefinedElement, to: DefinedElement) | ||
16109 | { | ||
16110 | find interpretation(problem,interpretation); | ||
16111 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16112 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
16113 | find mustExist(problem, interpretation, from); | ||
16114 | find mustExist(problem, interpretation, to); | ||
16115 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16116 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
16117 | find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
16118 | neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
16119 | } | ||
16120 | pattern refineRelation_eRawType_reference_EGenericType( | ||
16121 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16122 | relationIterpretation:PartialRelationInterpretation, | ||
16123 | from: DefinedElement, to: DefinedElement) | ||
16124 | { | ||
16125 | find interpretation(problem,interpretation); | ||
16126 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16127 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
16128 | find mustExist(problem, interpretation, from); | ||
16129 | find mustExist(problem, interpretation, to); | ||
16130 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
16131 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
16132 | find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
16133 | neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
16134 | } | ||
16135 | pattern refineRelation_eTypeParameter_reference_EGenericType( | ||
16136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16137 | relationIterpretation:PartialRelationInterpretation, | ||
16138 | from: DefinedElement, to: DefinedElement) | ||
16139 | { | ||
16140 | find interpretation(problem,interpretation); | ||
16141 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16142 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
16143 | find mustExist(problem, interpretation, from); | ||
16144 | find mustExist(problem, interpretation, to); | ||
16145 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
16146 | find mustInstanceOfETypeParameter_class(problem,interpretation,to); | ||
16147 | find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
16148 | neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
16149 | } | ||
16150 | pattern refineRelation_eClassifier_reference_EGenericType( | ||
16151 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16152 | relationIterpretation:PartialRelationInterpretation, | ||
16153 | from: DefinedElement, to: DefinedElement) | ||
16154 | { | ||
16155 | find interpretation(problem,interpretation); | ||
16156 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16157 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
16158 | find mustExist(problem, interpretation, from); | ||
16159 | find mustExist(problem, interpretation, to); | ||
16160 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
16161 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
16162 | find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
16163 | neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
16164 | } | ||
16165 | pattern refineRelation_iD_attribute_EAttribute( | ||
16166 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16167 | relationIterpretation:PartialRelationInterpretation, | ||
16168 | from: DefinedElement, to: DefinedElement) | ||
16169 | { | ||
16170 | find interpretation(problem,interpretation); | ||
16171 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16172 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
16173 | find mustExist(problem, interpretation, from); | ||
16174 | find mustExist(problem, interpretation, to); | ||
16175 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
16176 | BooleanElement(to); | ||
16177 | find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
16178 | neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
16179 | } | ||
16180 | pattern refineRelation_source_attribute_EAnnotation( | ||
16181 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16182 | relationIterpretation:PartialRelationInterpretation, | ||
16183 | from: DefinedElement, to: DefinedElement) | ||
16184 | { | ||
16185 | find interpretation(problem,interpretation); | ||
16186 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16187 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
16188 | find mustExist(problem, interpretation, from); | ||
16189 | find mustExist(problem, interpretation, to); | ||
16190 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
16191 | StringElement(to); | ||
16192 | find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
16193 | neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
16194 | } | ||
16195 | pattern refineRelation_abstract_attribute_EClass( | ||
16196 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16197 | relationIterpretation:PartialRelationInterpretation, | ||
16198 | from: DefinedElement, to: DefinedElement) | ||
16199 | { | ||
16200 | find interpretation(problem,interpretation); | ||
16201 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16202 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
16203 | find mustExist(problem, interpretation, from); | ||
16204 | find mustExist(problem, interpretation, to); | ||
16205 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
16206 | BooleanElement(to); | ||
16207 | find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
16208 | neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
16209 | } | ||
16210 | pattern refineRelation_interface_attribute_EClass( | ||
16211 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16212 | relationIterpretation:PartialRelationInterpretation, | ||
16213 | from: DefinedElement, to: DefinedElement) | ||
16214 | { | ||
16215 | find interpretation(problem,interpretation); | ||
16216 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16217 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
16218 | find mustExist(problem, interpretation, from); | ||
16219 | find mustExist(problem, interpretation, to); | ||
16220 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
16221 | BooleanElement(to); | ||
16222 | find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
16223 | neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
16224 | } | ||
16225 | pattern refineRelation_instanceClassName_attribute_EClassifier( | ||
16226 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16227 | relationIterpretation:PartialRelationInterpretation, | ||
16228 | from: DefinedElement, to: DefinedElement) | ||
16229 | { | ||
16230 | find interpretation(problem,interpretation); | ||
16231 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16232 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
16233 | find mustExist(problem, interpretation, from); | ||
16234 | find mustExist(problem, interpretation, to); | ||
16235 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
16236 | StringElement(to); | ||
16237 | find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
16238 | neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
16239 | } | ||
16240 | pattern refineRelation_instanceTypeName_attribute_EClassifier( | ||
16241 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16242 | relationIterpretation:PartialRelationInterpretation, | ||
16243 | from: DefinedElement, to: DefinedElement) | ||
16244 | { | ||
16245 | find interpretation(problem,interpretation); | ||
16246 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16247 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
16248 | find mustExist(problem, interpretation, from); | ||
16249 | find mustExist(problem, interpretation, to); | ||
16250 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
16251 | StringElement(to); | ||
16252 | find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
16253 | neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
16254 | } | ||
16255 | pattern refineRelation_serializable_attribute_EDataType( | ||
16256 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16257 | relationIterpretation:PartialRelationInterpretation, | ||
16258 | from: DefinedElement, to: DefinedElement) | ||
16259 | { | ||
16260 | find interpretation(problem,interpretation); | ||
16261 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16262 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
16263 | find mustExist(problem, interpretation, from); | ||
16264 | find mustExist(problem, interpretation, to); | ||
16265 | find mustInstanceOfEDataType_class(problem,interpretation,from); | ||
16266 | BooleanElement(to); | ||
16267 | find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
16268 | neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
16269 | } | ||
16270 | pattern refineRelation_value_attribute_EEnumLiteral( | ||
16271 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16272 | relationIterpretation:PartialRelationInterpretation, | ||
16273 | from: DefinedElement, to: DefinedElement) | ||
16274 | { | ||
16275 | find interpretation(problem,interpretation); | ||
16276 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16277 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
16278 | find mustExist(problem, interpretation, from); | ||
16279 | find mustExist(problem, interpretation, to); | ||
16280 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
16281 | IntegerElement(to); | ||
16282 | find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
16283 | neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
16284 | } | ||
16285 | pattern refineRelation_literal_attribute_EEnumLiteral( | ||
16286 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16287 | relationIterpretation:PartialRelationInterpretation, | ||
16288 | from: DefinedElement, to: DefinedElement) | ||
16289 | { | ||
16290 | find interpretation(problem,interpretation); | ||
16291 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16292 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
16293 | find mustExist(problem, interpretation, from); | ||
16294 | find mustExist(problem, interpretation, to); | ||
16295 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
16296 | StringElement(to); | ||
16297 | find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
16298 | neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
16299 | } | ||
16300 | pattern refineRelation_name_attribute_ENamedElement( | ||
16301 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16302 | relationIterpretation:PartialRelationInterpretation, | ||
16303 | from: DefinedElement, to: DefinedElement) | ||
16304 | { | ||
16305 | find interpretation(problem,interpretation); | ||
16306 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16307 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
16308 | find mustExist(problem, interpretation, from); | ||
16309 | find mustExist(problem, interpretation, to); | ||
16310 | find mustInstanceOfENamedElement_class(problem,interpretation,from); | ||
16311 | StringElement(to); | ||
16312 | find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
16313 | neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
16314 | } | ||
16315 | pattern refineRelation_nsURI_attribute_EPackage( | ||
16316 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16317 | relationIterpretation:PartialRelationInterpretation, | ||
16318 | from: DefinedElement, to: DefinedElement) | ||
16319 | { | ||
16320 | find interpretation(problem,interpretation); | ||
16321 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16322 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
16323 | find mustExist(problem, interpretation, from); | ||
16324 | find mustExist(problem, interpretation, to); | ||
16325 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
16326 | StringElement(to); | ||
16327 | find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
16328 | neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
16329 | } | ||
16330 | pattern refineRelation_nsPrefix_attribute_EPackage( | ||
16331 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16332 | relationIterpretation:PartialRelationInterpretation, | ||
16333 | from: DefinedElement, to: DefinedElement) | ||
16334 | { | ||
16335 | find interpretation(problem,interpretation); | ||
16336 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16337 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
16338 | find mustExist(problem, interpretation, from); | ||
16339 | find mustExist(problem, interpretation, to); | ||
16340 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
16341 | StringElement(to); | ||
16342 | find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
16343 | neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
16344 | } | ||
16345 | pattern refineRelation_containment_attribute_EReference( | ||
16346 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16347 | relationIterpretation:PartialRelationInterpretation, | ||
16348 | from: DefinedElement, to: DefinedElement) | ||
16349 | { | ||
16350 | find interpretation(problem,interpretation); | ||
16351 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16352 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
16353 | find mustExist(problem, interpretation, from); | ||
16354 | find mustExist(problem, interpretation, to); | ||
16355 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16356 | BooleanElement(to); | ||
16357 | find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
16358 | neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
16359 | } | ||
16360 | pattern refineRelation_container_attribute_EReference( | ||
16361 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16362 | relationIterpretation:PartialRelationInterpretation, | ||
16363 | from: DefinedElement, to: DefinedElement) | ||
16364 | { | ||
16365 | find interpretation(problem,interpretation); | ||
16366 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16367 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
16368 | find mustExist(problem, interpretation, from); | ||
16369 | find mustExist(problem, interpretation, to); | ||
16370 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16371 | BooleanElement(to); | ||
16372 | find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
16373 | neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
16374 | } | ||
16375 | pattern refineRelation_resolveProxies_attribute_EReference( | ||
16376 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16377 | relationIterpretation:PartialRelationInterpretation, | ||
16378 | from: DefinedElement, to: DefinedElement) | ||
16379 | { | ||
16380 | find interpretation(problem,interpretation); | ||
16381 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16382 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
16383 | find mustExist(problem, interpretation, from); | ||
16384 | find mustExist(problem, interpretation, to); | ||
16385 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
16386 | BooleanElement(to); | ||
16387 | find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
16388 | neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
16389 | } | ||
16390 | pattern refineRelation_changeable_attribute_EStructuralFeature( | ||
16391 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16392 | relationIterpretation:PartialRelationInterpretation, | ||
16393 | from: DefinedElement, to: DefinedElement) | ||
16394 | { | ||
16395 | find interpretation(problem,interpretation); | ||
16396 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16397 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
16398 | find mustExist(problem, interpretation, from); | ||
16399 | find mustExist(problem, interpretation, to); | ||
16400 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16401 | BooleanElement(to); | ||
16402 | find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16403 | neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16404 | } | ||
16405 | pattern refineRelation_volatile_attribute_EStructuralFeature( | ||
16406 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16407 | relationIterpretation:PartialRelationInterpretation, | ||
16408 | from: DefinedElement, to: DefinedElement) | ||
16409 | { | ||
16410 | find interpretation(problem,interpretation); | ||
16411 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16412 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
16413 | find mustExist(problem, interpretation, from); | ||
16414 | find mustExist(problem, interpretation, to); | ||
16415 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16416 | BooleanElement(to); | ||
16417 | find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16418 | neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16419 | } | ||
16420 | pattern refineRelation_transient_attribute_EStructuralFeature( | ||
16421 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16422 | relationIterpretation:PartialRelationInterpretation, | ||
16423 | from: DefinedElement, to: DefinedElement) | ||
16424 | { | ||
16425 | find interpretation(problem,interpretation); | ||
16426 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16427 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
16428 | find mustExist(problem, interpretation, from); | ||
16429 | find mustExist(problem, interpretation, to); | ||
16430 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16431 | BooleanElement(to); | ||
16432 | find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16433 | neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16434 | } | ||
16435 | pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature( | ||
16436 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16437 | relationIterpretation:PartialRelationInterpretation, | ||
16438 | from: DefinedElement, to: DefinedElement) | ||
16439 | { | ||
16440 | find interpretation(problem,interpretation); | ||
16441 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16442 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
16443 | find mustExist(problem, interpretation, from); | ||
16444 | find mustExist(problem, interpretation, to); | ||
16445 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16446 | StringElement(to); | ||
16447 | find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16448 | neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16449 | } | ||
16450 | pattern refineRelation_unsettable_attribute_EStructuralFeature( | ||
16451 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16452 | relationIterpretation:PartialRelationInterpretation, | ||
16453 | from: DefinedElement, to: DefinedElement) | ||
16454 | { | ||
16455 | find interpretation(problem,interpretation); | ||
16456 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16457 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
16458 | find mustExist(problem, interpretation, from); | ||
16459 | find mustExist(problem, interpretation, to); | ||
16460 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16461 | BooleanElement(to); | ||
16462 | find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16463 | neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16464 | } | ||
16465 | pattern refineRelation_derived_attribute_EStructuralFeature( | ||
16466 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16467 | relationIterpretation:PartialRelationInterpretation, | ||
16468 | from: DefinedElement, to: DefinedElement) | ||
16469 | { | ||
16470 | find interpretation(problem,interpretation); | ||
16471 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16472 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
16473 | find mustExist(problem, interpretation, from); | ||
16474 | find mustExist(problem, interpretation, to); | ||
16475 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
16476 | BooleanElement(to); | ||
16477 | find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16478 | neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
16479 | } | ||
16480 | pattern refineRelation_ordered_attribute_ETypedElement( | ||
16481 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16482 | relationIterpretation:PartialRelationInterpretation, | ||
16483 | from: DefinedElement, to: DefinedElement) | ||
16484 | { | ||
16485 | find interpretation(problem,interpretation); | ||
16486 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16487 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
16488 | find mustExist(problem, interpretation, from); | ||
16489 | find mustExist(problem, interpretation, to); | ||
16490 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16491 | BooleanElement(to); | ||
16492 | find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
16493 | neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
16494 | } | ||
16495 | pattern refineRelation_unique_attribute_ETypedElement( | ||
16496 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16497 | relationIterpretation:PartialRelationInterpretation, | ||
16498 | from: DefinedElement, to: DefinedElement) | ||
16499 | { | ||
16500 | find interpretation(problem,interpretation); | ||
16501 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16502 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
16503 | find mustExist(problem, interpretation, from); | ||
16504 | find mustExist(problem, interpretation, to); | ||
16505 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16506 | BooleanElement(to); | ||
16507 | find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
16508 | neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
16509 | } | ||
16510 | pattern refineRelation_lowerBound_attribute_ETypedElement( | ||
16511 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16512 | relationIterpretation:PartialRelationInterpretation, | ||
16513 | from: DefinedElement, to: DefinedElement) | ||
16514 | { | ||
16515 | find interpretation(problem,interpretation); | ||
16516 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16517 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
16518 | find mustExist(problem, interpretation, from); | ||
16519 | find mustExist(problem, interpretation, to); | ||
16520 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16521 | IntegerElement(to); | ||
16522 | find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
16523 | neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
16524 | } | ||
16525 | pattern refineRelation_upperBound_attribute_ETypedElement( | ||
16526 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16527 | relationIterpretation:PartialRelationInterpretation, | ||
16528 | from: DefinedElement, to: DefinedElement) | ||
16529 | { | ||
16530 | find interpretation(problem,interpretation); | ||
16531 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16532 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
16533 | find mustExist(problem, interpretation, from); | ||
16534 | find mustExist(problem, interpretation, to); | ||
16535 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16536 | IntegerElement(to); | ||
16537 | find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
16538 | neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
16539 | } | ||
16540 | pattern refineRelation_many_attribute_ETypedElement( | ||
16541 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16542 | relationIterpretation:PartialRelationInterpretation, | ||
16543 | from: DefinedElement, to: DefinedElement) | ||
16544 | { | ||
16545 | find interpretation(problem,interpretation); | ||
16546 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16547 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
16548 | find mustExist(problem, interpretation, from); | ||
16549 | find mustExist(problem, interpretation, to); | ||
16550 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16551 | BooleanElement(to); | ||
16552 | find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
16553 | neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
16554 | } | ||
16555 | pattern refineRelation_required_attribute_ETypedElement( | ||
16556 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16557 | relationIterpretation:PartialRelationInterpretation, | ||
16558 | from: DefinedElement, to: DefinedElement) | ||
16559 | { | ||
16560 | find interpretation(problem,interpretation); | ||
16561 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16562 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
16563 | find mustExist(problem, interpretation, from); | ||
16564 | find mustExist(problem, interpretation, to); | ||
16565 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
16566 | BooleanElement(to); | ||
16567 | find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
16568 | neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
16569 | } | ||
16570 | pattern refineRelation_key_attribute_EStringToStringMapEntry( | ||
16571 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16572 | relationIterpretation:PartialRelationInterpretation, | ||
16573 | from: DefinedElement, to: DefinedElement) | ||
16574 | { | ||
16575 | find interpretation(problem,interpretation); | ||
16576 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16577 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
16578 | find mustExist(problem, interpretation, from); | ||
16579 | find mustExist(problem, interpretation, to); | ||
16580 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
16581 | StringElement(to); | ||
16582 | find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
16583 | neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
16584 | } | ||
16585 | pattern refineRelation_value_attribute_EStringToStringMapEntry( | ||
16586 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
16587 | relationIterpretation:PartialRelationInterpretation, | ||
16588 | from: DefinedElement, to: DefinedElement) | ||
16589 | { | ||
16590 | find interpretation(problem,interpretation); | ||
16591 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
16592 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
16593 | find mustExist(problem, interpretation, from); | ||
16594 | find mustExist(problem, interpretation, to); | ||
16595 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
16596 | StringElement(to); | ||
16597 | find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
16598 | neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
16599 | } | ||
16600 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
16601 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
16602 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
16603 | |||
16604 | ////////// | ||
16605 | // 0. Util | ||
16606 | ////////// | ||
16607 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16608 | PartialInterpretation.problem(interpretation,problem); | ||
16609 | } | ||
16610 | |||
16611 | ///////////////////////// | ||
16612 | // 0.1 Existence | ||
16613 | ///////////////////////// | ||
16614 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16615 | find interpretation(problem,interpretation); | ||
16616 | LogicProblem.elements(problem,element); | ||
16617 | } or { | ||
16618 | find interpretation(problem,interpretation); | ||
16619 | PartialInterpretation.newElements(interpretation,element); | ||
16620 | } | ||
16621 | |||
16622 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16623 | find mustExist(problem,interpretation,element); | ||
16624 | } or { | ||
16625 | find interpretation(problem,interpretation); | ||
16626 | neg find elementCloseWorld(element); | ||
16627 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16628 | } | ||
16629 | |||
16630 | private pattern elementCloseWorld(element:DefinedElement) { | ||
16631 | PartialInterpretation.openWorldElements(i,element); | ||
16632 | PartialInterpretation.maxNewElements(i,0); | ||
16633 | } or { | ||
16634 | Scope.targetTypeInterpretation(scope,interpretation); | ||
16635 | PartialTypeInterpratation.elements(interpretation,element); | ||
16636 | Scope.maxNewElements(scope,0); | ||
16637 | } | ||
16638 | |||
16639 | //////////////////////// | ||
16640 | // 0.2 Equivalence | ||
16641 | //////////////////////// | ||
16642 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
16643 | find mayExist(problem,interpretation,a); | ||
16644 | find mayExist(problem,interpretation,b); | ||
16645 | a == b; | ||
16646 | } | ||
16647 | |||
16648 | //////////////////////// | ||
16649 | // 0.3 Required Patterns by TypeIndexer | ||
16650 | //////////////////////// | ||
16651 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
16652 | find interpretation(problem,interpretation); | ||
16653 | LogicProblem.types(problem,type); | ||
16654 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
16655 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16656 | } | ||
16657 | |||
16658 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
16659 | find interpretation(problem,interpretation); | ||
16660 | LogicProblem.types(problem,type); | ||
16661 | TypeDefinition.elements(type,element); | ||
16662 | } or { | ||
16663 | find interpretation(problem,interpretation); | ||
16664 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
16665 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
16666 | } | ||
16667 | |||
16668 | private pattern isPrimitive(element: PrimitiveElement) { | ||
16669 | PrimitiveElement(element); | ||
16670 | } | ||
16671 | |||
16672 | ////////// | ||
16673 | // 1. Problem-Specific Base Indexers | ||
16674 | ////////// | ||
16675 | // 1.1 Type Indexers | ||
16676 | ////////// | ||
16677 | // 1.1.1 primitive Type Indexers | ||
16678 | ////////// | ||
16679 | |||
16680 | ////////// | ||
16681 | // 1.1.2 domain-specific Type Indexers | ||
16682 | ////////// | ||
16683 | /** | ||
16684 | * An element must be an instance of type "EAttribute class". | ||
16685 | */ | ||
16686 | private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16687 | Type.name(type,"EAttribute class"); | ||
16688 | find directInstanceOf(problem,interpretation,element,type); | ||
16689 | } | ||
16690 | private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16691 | find interpretation(problem,interpretation); | ||
16692 | PartialInterpretation.scopes(interpretation,scope); | ||
16693 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16694 | Scope.maxNewElements(scope,0); | ||
16695 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16696 | Type.name(type,"EAttribute class"); | ||
16697 | } | ||
16698 | |||
16699 | /** | ||
16700 | * An element may be an instance of type "EAttribute class". | ||
16701 | */ | ||
16702 | private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16703 | { | ||
16704 | find interpretation(problem,interpretation); | ||
16705 | PartialInterpretation.newElements(interpretation,element); | ||
16706 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
16707 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
16708 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16709 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16710 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16711 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
16712 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16713 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
16714 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16715 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16716 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16717 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
16718 | neg find isPrimitive(element); | ||
16719 | } or { | ||
16720 | find interpretation(problem,interpretation); | ||
16721 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16722 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
16723 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
16724 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16725 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16726 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16727 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
16728 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16729 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
16730 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16731 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16732 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16733 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
16734 | neg find isPrimitive(element); | ||
16735 | } or | ||
16736 | { find mustInstanceOfEAttribute_class(problem,interpretation,element); } | ||
16737 | /** | ||
16738 | * An element must be an instance of type "EAnnotation class". | ||
16739 | */ | ||
16740 | private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16741 | Type.name(type,"EAnnotation class"); | ||
16742 | find directInstanceOf(problem,interpretation,element,type); | ||
16743 | } | ||
16744 | private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16745 | find interpretation(problem,interpretation); | ||
16746 | PartialInterpretation.scopes(interpretation,scope); | ||
16747 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16748 | Scope.maxNewElements(scope,0); | ||
16749 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16750 | Type.name(type,"EAnnotation class"); | ||
16751 | } | ||
16752 | |||
16753 | /** | ||
16754 | * An element may be an instance of type "EAnnotation class". | ||
16755 | */ | ||
16756 | private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16757 | { | ||
16758 | find interpretation(problem,interpretation); | ||
16759 | PartialInterpretation.newElements(interpretation,element); | ||
16760 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16761 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
16762 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16763 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16764 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
16765 | neg find isPrimitive(element); | ||
16766 | } or { | ||
16767 | find interpretation(problem,interpretation); | ||
16768 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16769 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16770 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
16771 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16772 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16773 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
16774 | neg find isPrimitive(element); | ||
16775 | } or | ||
16776 | { find mustInstanceOfEAnnotation_class(problem,interpretation,element); } | ||
16777 | /** | ||
16778 | * An element must be an instance of type "EClass class". | ||
16779 | */ | ||
16780 | private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16781 | Type.name(type,"EClass class"); | ||
16782 | find directInstanceOf(problem,interpretation,element,type); | ||
16783 | } | ||
16784 | private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16785 | find interpretation(problem,interpretation); | ||
16786 | PartialInterpretation.scopes(interpretation,scope); | ||
16787 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16788 | Scope.maxNewElements(scope,0); | ||
16789 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16790 | Type.name(type,"EClass class"); | ||
16791 | } | ||
16792 | |||
16793 | /** | ||
16794 | * An element may be an instance of type "EClass class". | ||
16795 | */ | ||
16796 | private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16797 | { | ||
16798 | find interpretation(problem,interpretation); | ||
16799 | PartialInterpretation.newElements(interpretation,element); | ||
16800 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
16801 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16802 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16803 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16804 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16805 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16806 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16807 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16808 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16809 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
16810 | neg find isPrimitive(element); | ||
16811 | } or { | ||
16812 | find interpretation(problem,interpretation); | ||
16813 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16814 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
16815 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16816 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16817 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16818 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16819 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16820 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16821 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16822 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16823 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
16824 | neg find isPrimitive(element); | ||
16825 | } or | ||
16826 | { find mustInstanceOfEClass_class(problem,interpretation,element); } | ||
16827 | /** | ||
16828 | * An element must be an instance of type "EClassifier class". | ||
16829 | */ | ||
16830 | private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16831 | Type.name(type,"EClassifier class"); | ||
16832 | find directInstanceOf(problem,interpretation,element,type); | ||
16833 | } | ||
16834 | private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16835 | find interpretation(problem,interpretation); | ||
16836 | PartialInterpretation.scopes(interpretation,scope); | ||
16837 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16838 | Scope.maxNewElements(scope,0); | ||
16839 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16840 | Type.name(type,"EClassifier class"); | ||
16841 | } | ||
16842 | |||
16843 | /** | ||
16844 | * An element may be an instance of type "EClassifier class". | ||
16845 | */ | ||
16846 | private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16847 | { | ||
16848 | find interpretation(problem,interpretation); | ||
16849 | PartialInterpretation.newElements(interpretation,element); | ||
16850 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16851 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
16852 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16853 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16854 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16855 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16856 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16857 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16858 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16859 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16860 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
16861 | neg find isPrimitive(element); | ||
16862 | } or { | ||
16863 | find interpretation(problem,interpretation); | ||
16864 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16865 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16866 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
16867 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16868 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16869 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16870 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16871 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16872 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16873 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16874 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16875 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
16876 | neg find isPrimitive(element); | ||
16877 | } or | ||
16878 | { find mustInstanceOfEClassifier_class(problem,interpretation,element); } | ||
16879 | /** | ||
16880 | * An element must be an instance of type "EDataType class". | ||
16881 | */ | ||
16882 | private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16883 | Type.name(type,"EDataType class"); | ||
16884 | find directInstanceOf(problem,interpretation,element,type); | ||
16885 | } | ||
16886 | private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16887 | find interpretation(problem,interpretation); | ||
16888 | PartialInterpretation.scopes(interpretation,scope); | ||
16889 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16890 | Scope.maxNewElements(scope,0); | ||
16891 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16892 | Type.name(type,"EDataType class"); | ||
16893 | } | ||
16894 | |||
16895 | /** | ||
16896 | * An element may be an instance of type "EDataType class". | ||
16897 | */ | ||
16898 | private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16899 | { | ||
16900 | find interpretation(problem,interpretation); | ||
16901 | PartialInterpretation.newElements(interpretation,element); | ||
16902 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16903 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16904 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16905 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16906 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16907 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16908 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16909 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
16910 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16911 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16912 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
16913 | neg find isPrimitive(element); | ||
16914 | } or { | ||
16915 | find interpretation(problem,interpretation); | ||
16916 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16917 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16918 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16919 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16920 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16921 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16922 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16923 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16924 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
16925 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16926 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16927 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
16928 | neg find isPrimitive(element); | ||
16929 | } or | ||
16930 | { find mustInstanceOfEDataType_class(problem,interpretation,element); } | ||
16931 | /** | ||
16932 | * An element must be an instance of type "EEnum class". | ||
16933 | */ | ||
16934 | private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16935 | Type.name(type,"EEnum class"); | ||
16936 | find directInstanceOf(problem,interpretation,element,type); | ||
16937 | } | ||
16938 | private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16939 | find interpretation(problem,interpretation); | ||
16940 | PartialInterpretation.scopes(interpretation,scope); | ||
16941 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16942 | Scope.maxNewElements(scope,0); | ||
16943 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16944 | Type.name(type,"EEnum class"); | ||
16945 | } | ||
16946 | |||
16947 | /** | ||
16948 | * An element may be an instance of type "EEnum class". | ||
16949 | */ | ||
16950 | private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
16951 | { | ||
16952 | find interpretation(problem,interpretation); | ||
16953 | PartialInterpretation.newElements(interpretation,element); | ||
16954 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16955 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16956 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16957 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16958 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16959 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16960 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16961 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16962 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16963 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
16964 | neg find isPrimitive(element); | ||
16965 | } or { | ||
16966 | find interpretation(problem,interpretation); | ||
16967 | PartialInterpretation.openWorldElements(interpretation,element); | ||
16968 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
16969 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
16970 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
16971 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
16972 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
16973 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
16974 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
16975 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
16976 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
16977 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
16978 | neg find isPrimitive(element); | ||
16979 | } or | ||
16980 | { find mustInstanceOfEEnum_class(problem,interpretation,element); } | ||
16981 | /** | ||
16982 | * An element must be an instance of type "EEnumLiteral class". | ||
16983 | */ | ||
16984 | private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
16985 | Type.name(type,"EEnumLiteral class"); | ||
16986 | find directInstanceOf(problem,interpretation,element,type); | ||
16987 | } | ||
16988 | private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
16989 | find interpretation(problem,interpretation); | ||
16990 | PartialInterpretation.scopes(interpretation,scope); | ||
16991 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
16992 | Scope.maxNewElements(scope,0); | ||
16993 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
16994 | Type.name(type,"EEnumLiteral class"); | ||
16995 | } | ||
16996 | |||
16997 | /** | ||
16998 | * An element may be an instance of type "EEnumLiteral class". | ||
16999 | */ | ||
17000 | private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17001 | { | ||
17002 | find interpretation(problem,interpretation); | ||
17003 | PartialInterpretation.newElements(interpretation,element); | ||
17004 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17005 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17006 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17007 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17008 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17009 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17010 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17011 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17012 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
17013 | neg find isPrimitive(element); | ||
17014 | } or { | ||
17015 | find interpretation(problem,interpretation); | ||
17016 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17017 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17018 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17019 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17020 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17021 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17022 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17023 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17024 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17025 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
17026 | neg find isPrimitive(element); | ||
17027 | } or | ||
17028 | { find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); } | ||
17029 | /** | ||
17030 | * An element must be an instance of type "EModelElement class". | ||
17031 | */ | ||
17032 | private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17033 | Type.name(type,"EModelElement class"); | ||
17034 | find directInstanceOf(problem,interpretation,element,type); | ||
17035 | } | ||
17036 | private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17037 | find interpretation(problem,interpretation); | ||
17038 | PartialInterpretation.scopes(interpretation,scope); | ||
17039 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17040 | Scope.maxNewElements(scope,0); | ||
17041 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17042 | Type.name(type,"EModelElement class"); | ||
17043 | } | ||
17044 | |||
17045 | /** | ||
17046 | * An element may be an instance of type "EModelElement class". | ||
17047 | */ | ||
17048 | private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17049 | { | ||
17050 | find interpretation(problem,interpretation); | ||
17051 | PartialInterpretation.newElements(interpretation,element); | ||
17052 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17053 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
17054 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17055 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17056 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17057 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
17058 | neg find isPrimitive(element); | ||
17059 | } or { | ||
17060 | find interpretation(problem,interpretation); | ||
17061 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17062 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17063 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
17064 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17065 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17066 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17067 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
17068 | neg find isPrimitive(element); | ||
17069 | } or | ||
17070 | { find mustInstanceOfEModelElement_class(problem,interpretation,element); } | ||
17071 | /** | ||
17072 | * An element must be an instance of type "ENamedElement class". | ||
17073 | */ | ||
17074 | private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17075 | Type.name(type,"ENamedElement class"); | ||
17076 | find directInstanceOf(problem,interpretation,element,type); | ||
17077 | } | ||
17078 | private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17079 | find interpretation(problem,interpretation); | ||
17080 | PartialInterpretation.scopes(interpretation,scope); | ||
17081 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17082 | Scope.maxNewElements(scope,0); | ||
17083 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17084 | Type.name(type,"ENamedElement class"); | ||
17085 | } | ||
17086 | |||
17087 | /** | ||
17088 | * An element may be an instance of type "ENamedElement class". | ||
17089 | */ | ||
17090 | private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17091 | { | ||
17092 | find interpretation(problem,interpretation); | ||
17093 | PartialInterpretation.newElements(interpretation,element); | ||
17094 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17095 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17096 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17097 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17098 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17099 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
17100 | neg find isPrimitive(element); | ||
17101 | } or { | ||
17102 | find interpretation(problem,interpretation); | ||
17103 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17104 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17105 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17106 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17107 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17108 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17109 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
17110 | neg find isPrimitive(element); | ||
17111 | } or | ||
17112 | { find mustInstanceOfENamedElement_class(problem,interpretation,element); } | ||
17113 | /** | ||
17114 | * An element must be an instance of type "EObject class". | ||
17115 | */ | ||
17116 | private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17117 | Type.name(type,"EObject class"); | ||
17118 | find directInstanceOf(problem,interpretation,element,type); | ||
17119 | } | ||
17120 | private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17121 | find interpretation(problem,interpretation); | ||
17122 | PartialInterpretation.scopes(interpretation,scope); | ||
17123 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17124 | Scope.maxNewElements(scope,0); | ||
17125 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17126 | Type.name(type,"EObject class"); | ||
17127 | } | ||
17128 | |||
17129 | /** | ||
17130 | * An element may be an instance of type "EObject class". | ||
17131 | */ | ||
17132 | private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17133 | { | ||
17134 | find interpretation(problem,interpretation); | ||
17135 | PartialInterpretation.newElements(interpretation,element); | ||
17136 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17137 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17138 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17139 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
17140 | neg find isPrimitive(element); | ||
17141 | } or { | ||
17142 | find interpretation(problem,interpretation); | ||
17143 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17144 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17145 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17146 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17147 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
17148 | neg find isPrimitive(element); | ||
17149 | } or | ||
17150 | { find mustInstanceOfEObject_class(problem,interpretation,element); } | ||
17151 | /** | ||
17152 | * An element must be an instance of type "EOperation class". | ||
17153 | */ | ||
17154 | private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17155 | Type.name(type,"EOperation class"); | ||
17156 | find directInstanceOf(problem,interpretation,element,type); | ||
17157 | } | ||
17158 | private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17159 | find interpretation(problem,interpretation); | ||
17160 | PartialInterpretation.scopes(interpretation,scope); | ||
17161 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17162 | Scope.maxNewElements(scope,0); | ||
17163 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17164 | Type.name(type,"EOperation class"); | ||
17165 | } | ||
17166 | |||
17167 | /** | ||
17168 | * An element may be an instance of type "EOperation class". | ||
17169 | */ | ||
17170 | private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17171 | { | ||
17172 | find interpretation(problem,interpretation); | ||
17173 | PartialInterpretation.newElements(interpretation,element); | ||
17174 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17175 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17176 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17177 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17178 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17179 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17180 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17181 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17182 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17183 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17184 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
17185 | neg find isPrimitive(element); | ||
17186 | } or { | ||
17187 | find interpretation(problem,interpretation); | ||
17188 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17189 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17190 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17191 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17192 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17193 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17194 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17195 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17196 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17197 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17198 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17199 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
17200 | neg find isPrimitive(element); | ||
17201 | } or | ||
17202 | { find mustInstanceOfEOperation_class(problem,interpretation,element); } | ||
17203 | /** | ||
17204 | * An element must be an instance of type "EPackage class". | ||
17205 | */ | ||
17206 | private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17207 | Type.name(type,"EPackage class"); | ||
17208 | find directInstanceOf(problem,interpretation,element,type); | ||
17209 | } | ||
17210 | private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17211 | find interpretation(problem,interpretation); | ||
17212 | PartialInterpretation.scopes(interpretation,scope); | ||
17213 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17214 | Scope.maxNewElements(scope,0); | ||
17215 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17216 | Type.name(type,"EPackage class"); | ||
17217 | } | ||
17218 | |||
17219 | /** | ||
17220 | * An element may be an instance of type "EPackage class". | ||
17221 | */ | ||
17222 | private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17223 | { | ||
17224 | find interpretation(problem,interpretation); | ||
17225 | PartialInterpretation.newElements(interpretation,element); | ||
17226 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17227 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17228 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17229 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17230 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
17231 | neg find isPrimitive(element); | ||
17232 | } or { | ||
17233 | find interpretation(problem,interpretation); | ||
17234 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17235 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17236 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17237 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
17238 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17239 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
17240 | neg find isPrimitive(element); | ||
17241 | } or | ||
17242 | { find mustInstanceOfEPackage_class(problem,interpretation,element); } | ||
17243 | /** | ||
17244 | * An element must be an instance of type "EParameter class". | ||
17245 | */ | ||
17246 | private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17247 | Type.name(type,"EParameter class"); | ||
17248 | find directInstanceOf(problem,interpretation,element,type); | ||
17249 | } | ||
17250 | private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17251 | find interpretation(problem,interpretation); | ||
17252 | PartialInterpretation.scopes(interpretation,scope); | ||
17253 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17254 | Scope.maxNewElements(scope,0); | ||
17255 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17256 | Type.name(type,"EParameter class"); | ||
17257 | } | ||
17258 | |||
17259 | /** | ||
17260 | * An element may be an instance of type "EParameter class". | ||
17261 | */ | ||
17262 | private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17263 | { | ||
17264 | find interpretation(problem,interpretation); | ||
17265 | PartialInterpretation.newElements(interpretation,element); | ||
17266 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17267 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17268 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17269 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17270 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17271 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17272 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17273 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17274 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17275 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17276 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
17277 | neg find isPrimitive(element); | ||
17278 | } or { | ||
17279 | find interpretation(problem,interpretation); | ||
17280 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17281 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17282 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17283 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17284 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17285 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17286 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17287 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17288 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17289 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17290 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17291 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
17292 | neg find isPrimitive(element); | ||
17293 | } or | ||
17294 | { find mustInstanceOfEParameter_class(problem,interpretation,element); } | ||
17295 | /** | ||
17296 | * An element must be an instance of type "EReference class". | ||
17297 | */ | ||
17298 | private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17299 | Type.name(type,"EReference class"); | ||
17300 | find directInstanceOf(problem,interpretation,element,type); | ||
17301 | } | ||
17302 | private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17303 | find interpretation(problem,interpretation); | ||
17304 | PartialInterpretation.scopes(interpretation,scope); | ||
17305 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17306 | Scope.maxNewElements(scope,0); | ||
17307 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17308 | Type.name(type,"EReference class"); | ||
17309 | } | ||
17310 | |||
17311 | /** | ||
17312 | * An element may be an instance of type "EReference class". | ||
17313 | */ | ||
17314 | private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17315 | { | ||
17316 | find interpretation(problem,interpretation); | ||
17317 | PartialInterpretation.newElements(interpretation,element); | ||
17318 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17319 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17320 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17321 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17322 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17323 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17324 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17325 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17326 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
17327 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17328 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17329 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
17330 | neg find isPrimitive(element); | ||
17331 | } or { | ||
17332 | find interpretation(problem,interpretation); | ||
17333 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17334 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17335 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17336 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17337 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17338 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17339 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17340 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17341 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17342 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
17343 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17344 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17345 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
17346 | neg find isPrimitive(element); | ||
17347 | } or | ||
17348 | { find mustInstanceOfEReference_class(problem,interpretation,element); } | ||
17349 | /** | ||
17350 | * An element must be an instance of type "EStructuralFeature class". | ||
17351 | */ | ||
17352 | private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17353 | Type.name(type,"EStructuralFeature class"); | ||
17354 | find directInstanceOf(problem,interpretation,element,type); | ||
17355 | } | ||
17356 | private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17357 | find interpretation(problem,interpretation); | ||
17358 | PartialInterpretation.scopes(interpretation,scope); | ||
17359 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17360 | Scope.maxNewElements(scope,0); | ||
17361 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17362 | Type.name(type,"EStructuralFeature class"); | ||
17363 | } | ||
17364 | |||
17365 | /** | ||
17366 | * An element may be an instance of type "EStructuralFeature class". | ||
17367 | */ | ||
17368 | private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17369 | { | ||
17370 | find interpretation(problem,interpretation); | ||
17371 | PartialInterpretation.newElements(interpretation,element); | ||
17372 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17373 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17374 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17375 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
17376 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17377 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17378 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17379 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17380 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17381 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
17382 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17383 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17384 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
17385 | neg find isPrimitive(element); | ||
17386 | } or { | ||
17387 | find interpretation(problem,interpretation); | ||
17388 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17389 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17390 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17391 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17392 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
17393 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17394 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17395 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17396 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17397 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17398 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
17399 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17400 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17401 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
17402 | neg find isPrimitive(element); | ||
17403 | } or | ||
17404 | { find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } | ||
17405 | /** | ||
17406 | * An element must be an instance of type "ETypedElement class". | ||
17407 | */ | ||
17408 | private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17409 | Type.name(type,"ETypedElement class"); | ||
17410 | find directInstanceOf(problem,interpretation,element,type); | ||
17411 | } | ||
17412 | private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17413 | find interpretation(problem,interpretation); | ||
17414 | PartialInterpretation.scopes(interpretation,scope); | ||
17415 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17416 | Scope.maxNewElements(scope,0); | ||
17417 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17418 | Type.name(type,"ETypedElement class"); | ||
17419 | } | ||
17420 | |||
17421 | /** | ||
17422 | * An element may be an instance of type "ETypedElement class". | ||
17423 | */ | ||
17424 | private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17425 | { | ||
17426 | find interpretation(problem,interpretation); | ||
17427 | PartialInterpretation.newElements(interpretation,element); | ||
17428 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17429 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17430 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17431 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17432 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17433 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17434 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17435 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17436 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17437 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17438 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17439 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
17440 | neg find isPrimitive(element); | ||
17441 | } or { | ||
17442 | find interpretation(problem,interpretation); | ||
17443 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17444 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
17445 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17446 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17447 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17448 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
17449 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17450 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17451 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
17452 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17453 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17454 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17455 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
17456 | neg find isPrimitive(element); | ||
17457 | } or | ||
17458 | { find mustInstanceOfETypedElement_class(problem,interpretation,element); } | ||
17459 | /** | ||
17460 | * An element must be an instance of type "EStringToStringMapEntry class". | ||
17461 | */ | ||
17462 | private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17463 | Type.name(type,"EStringToStringMapEntry class"); | ||
17464 | find directInstanceOf(problem,interpretation,element,type); | ||
17465 | } | ||
17466 | private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17467 | find interpretation(problem,interpretation); | ||
17468 | PartialInterpretation.scopes(interpretation,scope); | ||
17469 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17470 | Scope.maxNewElements(scope,0); | ||
17471 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17472 | Type.name(type,"EStringToStringMapEntry class"); | ||
17473 | } | ||
17474 | |||
17475 | /** | ||
17476 | * An element may be an instance of type "EStringToStringMapEntry class". | ||
17477 | */ | ||
17478 | private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17479 | { | ||
17480 | find interpretation(problem,interpretation); | ||
17481 | PartialInterpretation.newElements(interpretation,element); | ||
17482 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17483 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17484 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17485 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
17486 | neg find isPrimitive(element); | ||
17487 | } or { | ||
17488 | find interpretation(problem,interpretation); | ||
17489 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17490 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17491 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17492 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17493 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
17494 | neg find isPrimitive(element); | ||
17495 | } or | ||
17496 | { find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } | ||
17497 | /** | ||
17498 | * An element must be an instance of type "EGenericType class". | ||
17499 | */ | ||
17500 | private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17501 | Type.name(type,"EGenericType class"); | ||
17502 | find directInstanceOf(problem,interpretation,element,type); | ||
17503 | } | ||
17504 | private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17505 | find interpretation(problem,interpretation); | ||
17506 | PartialInterpretation.scopes(interpretation,scope); | ||
17507 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17508 | Scope.maxNewElements(scope,0); | ||
17509 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17510 | Type.name(type,"EGenericType class"); | ||
17511 | } | ||
17512 | |||
17513 | /** | ||
17514 | * An element may be an instance of type "EGenericType class". | ||
17515 | */ | ||
17516 | private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17517 | { | ||
17518 | find interpretation(problem,interpretation); | ||
17519 | PartialInterpretation.newElements(interpretation,element); | ||
17520 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17521 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17522 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17523 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
17524 | neg find isPrimitive(element); | ||
17525 | } or { | ||
17526 | find interpretation(problem,interpretation); | ||
17527 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17528 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
17529 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17530 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17531 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
17532 | neg find isPrimitive(element); | ||
17533 | } or | ||
17534 | { find mustInstanceOfEGenericType_class(problem,interpretation,element); } | ||
17535 | /** | ||
17536 | * An element must be an instance of type "ETypeParameter class". | ||
17537 | */ | ||
17538 | private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17539 | Type.name(type,"ETypeParameter class"); | ||
17540 | find directInstanceOf(problem,interpretation,element,type); | ||
17541 | } | ||
17542 | private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17543 | find interpretation(problem,interpretation); | ||
17544 | PartialInterpretation.scopes(interpretation,scope); | ||
17545 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17546 | Scope.maxNewElements(scope,0); | ||
17547 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17548 | Type.name(type,"ETypeParameter class"); | ||
17549 | } | ||
17550 | |||
17551 | /** | ||
17552 | * An element may be an instance of type "ETypeParameter class". | ||
17553 | */ | ||
17554 | private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17555 | { | ||
17556 | find interpretation(problem,interpretation); | ||
17557 | PartialInterpretation.newElements(interpretation,element); | ||
17558 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17559 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17560 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17561 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17562 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17563 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17564 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17565 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17566 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
17567 | neg find isPrimitive(element); | ||
17568 | } or { | ||
17569 | find interpretation(problem,interpretation); | ||
17570 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17571 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17572 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17573 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17574 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17575 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17576 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17577 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17578 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17579 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
17580 | neg find isPrimitive(element); | ||
17581 | } or | ||
17582 | { find mustInstanceOfETypeParameter_class(problem,interpretation,element); } | ||
17583 | /** | ||
17584 | * An element must be an instance of type "EModelElement class DefinedPart". | ||
17585 | */ | ||
17586 | private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17587 | Type.name(type,"EModelElement class DefinedPart"); | ||
17588 | find directInstanceOf(problem,interpretation,element,type); | ||
17589 | } | ||
17590 | private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17591 | find interpretation(problem,interpretation); | ||
17592 | PartialInterpretation.scopes(interpretation,scope); | ||
17593 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17594 | Scope.maxNewElements(scope,0); | ||
17595 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17596 | Type.name(type,"EModelElement class DefinedPart"); | ||
17597 | } | ||
17598 | |||
17599 | /** | ||
17600 | * An element may be an instance of type "EModelElement class DefinedPart". | ||
17601 | */ | ||
17602 | private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17603 | { find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); } | ||
17604 | /** | ||
17605 | * An element must be an instance of type "EModelElement class UndefinedPart". | ||
17606 | */ | ||
17607 | private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17608 | Type.name(type,"EModelElement class UndefinedPart"); | ||
17609 | find directInstanceOf(problem,interpretation,element,type); | ||
17610 | } | ||
17611 | private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17612 | find interpretation(problem,interpretation); | ||
17613 | PartialInterpretation.scopes(interpretation,scope); | ||
17614 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17615 | Scope.maxNewElements(scope,0); | ||
17616 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17617 | Type.name(type,"EModelElement class UndefinedPart"); | ||
17618 | } | ||
17619 | |||
17620 | /** | ||
17621 | * An element may be an instance of type "EModelElement class UndefinedPart". | ||
17622 | */ | ||
17623 | private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17624 | { | ||
17625 | find interpretation(problem,interpretation); | ||
17626 | PartialInterpretation.newElements(interpretation,element); | ||
17627 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17628 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
17629 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17630 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17631 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17632 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
17633 | neg find isPrimitive(element); | ||
17634 | } or { | ||
17635 | find interpretation(problem,interpretation); | ||
17636 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17637 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17638 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
17639 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17640 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17641 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17642 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
17643 | neg find isPrimitive(element); | ||
17644 | } or | ||
17645 | { find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } | ||
17646 | /** | ||
17647 | * An element must be an instance of type "ENamedElement class DefinedPart". | ||
17648 | */ | ||
17649 | private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17650 | Type.name(type,"ENamedElement class DefinedPart"); | ||
17651 | find directInstanceOf(problem,interpretation,element,type); | ||
17652 | } | ||
17653 | private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17654 | find interpretation(problem,interpretation); | ||
17655 | PartialInterpretation.scopes(interpretation,scope); | ||
17656 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17657 | Scope.maxNewElements(scope,0); | ||
17658 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17659 | Type.name(type,"ENamedElement class DefinedPart"); | ||
17660 | } | ||
17661 | |||
17662 | /** | ||
17663 | * An element may be an instance of type "ENamedElement class DefinedPart". | ||
17664 | */ | ||
17665 | private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17666 | { find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); } | ||
17667 | /** | ||
17668 | * An element must be an instance of type "ENamedElement class UndefinedPart". | ||
17669 | */ | ||
17670 | private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17671 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
17672 | find directInstanceOf(problem,interpretation,element,type); | ||
17673 | } | ||
17674 | private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17675 | find interpretation(problem,interpretation); | ||
17676 | PartialInterpretation.scopes(interpretation,scope); | ||
17677 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17678 | Scope.maxNewElements(scope,0); | ||
17679 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17680 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
17681 | } | ||
17682 | |||
17683 | /** | ||
17684 | * An element may be an instance of type "ENamedElement class UndefinedPart". | ||
17685 | */ | ||
17686 | private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17687 | { | ||
17688 | find interpretation(problem,interpretation); | ||
17689 | PartialInterpretation.newElements(interpretation,element); | ||
17690 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17691 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17692 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17693 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17694 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17695 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17696 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17697 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17698 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17699 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
17700 | neg find isPrimitive(element); | ||
17701 | } or { | ||
17702 | find interpretation(problem,interpretation); | ||
17703 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17704 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17705 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17706 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17707 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17708 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17709 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17710 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17711 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17712 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
17713 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
17714 | neg find isPrimitive(element); | ||
17715 | } or | ||
17716 | { find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } | ||
17717 | /** | ||
17718 | * An element must be an instance of type "EPackage class DefinedPart". | ||
17719 | */ | ||
17720 | private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17721 | Type.name(type,"EPackage class DefinedPart"); | ||
17722 | find directInstanceOf(problem,interpretation,element,type); | ||
17723 | } | ||
17724 | private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17725 | find interpretation(problem,interpretation); | ||
17726 | PartialInterpretation.scopes(interpretation,scope); | ||
17727 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17728 | Scope.maxNewElements(scope,0); | ||
17729 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17730 | Type.name(type,"EPackage class DefinedPart"); | ||
17731 | } | ||
17732 | |||
17733 | /** | ||
17734 | * An element may be an instance of type "EPackage class DefinedPart". | ||
17735 | */ | ||
17736 | private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17737 | { find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } | ||
17738 | /** | ||
17739 | * An element must be an instance of type "EPackage class UndefinedPart". | ||
17740 | */ | ||
17741 | private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17742 | Type.name(type,"EPackage class UndefinedPart"); | ||
17743 | find directInstanceOf(problem,interpretation,element,type); | ||
17744 | } | ||
17745 | private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
17746 | find interpretation(problem,interpretation); | ||
17747 | PartialInterpretation.scopes(interpretation,scope); | ||
17748 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
17749 | Scope.maxNewElements(scope,0); | ||
17750 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
17751 | Type.name(type,"EPackage class UndefinedPart"); | ||
17752 | } | ||
17753 | |||
17754 | /** | ||
17755 | * An element may be an instance of type "EPackage class UndefinedPart". | ||
17756 | */ | ||
17757 | private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
17758 | { | ||
17759 | find interpretation(problem,interpretation); | ||
17760 | PartialInterpretation.newElements(interpretation,element); | ||
17761 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17762 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17763 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17764 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17765 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17766 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17767 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17768 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17769 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
17770 | neg find isPrimitive(element); | ||
17771 | } or { | ||
17772 | find interpretation(problem,interpretation); | ||
17773 | PartialInterpretation.openWorldElements(interpretation,element); | ||
17774 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
17775 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
17776 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
17777 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
17778 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
17779 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
17780 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
17781 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
17782 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
17783 | neg find isPrimitive(element); | ||
17784 | } or | ||
17785 | { find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } | ||
17786 | |||
17787 | ////////// | ||
17788 | // 1.2 Relation Declaration Indexers | ||
17789 | ////////// | ||
17790 | /** | ||
17791 | * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) | ||
17792 | */ | ||
17793 | private pattern mustInRelationeAttributeType_reference_EAttribute( | ||
17794 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17795 | source: DefinedElement, target:DefinedElement) | ||
17796 | { | ||
17797 | find interpretation(problem,interpretation); | ||
17798 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17799 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
17800 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17801 | BinaryElementRelationLink.param1(link,source); | ||
17802 | BinaryElementRelationLink.param2(link,target); | ||
17803 | } | ||
17804 | /** | ||
17805 | * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) | ||
17806 | */ | ||
17807 | private pattern mayInRelationeAttributeType_reference_EAttribute( | ||
17808 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17809 | source: DefinedElement, target:DefinedElement) | ||
17810 | { | ||
17811 | find interpretation(problem,interpretation); | ||
17812 | // The two endpoint of the link have to exist | ||
17813 | find mayExist(problem, interpretation, source); | ||
17814 | find mayExist(problem, interpretation, target); | ||
17815 | // Type consistency | ||
17816 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
17817 | find mayInstanceOfEDataType_class(problem,interpretation,target); | ||
17818 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
17819 | // the upper bound of the multiplicity should be considered. | ||
17820 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); | ||
17821 | check(numberOfExistingReferences < 1); | ||
17822 | } or { | ||
17823 | find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); | ||
17824 | } | ||
17825 | /** | ||
17826 | * Matcher for detecting tuples t where []details reference EAnnotation(source,target) | ||
17827 | */ | ||
17828 | private pattern mustInRelationdetails_reference_EAnnotation( | ||
17829 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17830 | source: DefinedElement, target:DefinedElement) | ||
17831 | { | ||
17832 | find interpretation(problem,interpretation); | ||
17833 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17834 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); | ||
17835 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17836 | BinaryElementRelationLink.param1(link,source); | ||
17837 | BinaryElementRelationLink.param2(link,target); | ||
17838 | } | ||
17839 | /** | ||
17840 | * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) | ||
17841 | */ | ||
17842 | private pattern mayInRelationdetails_reference_EAnnotation( | ||
17843 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17844 | source: DefinedElement, target:DefinedElement) | ||
17845 | { | ||
17846 | find interpretation(problem,interpretation); | ||
17847 | // The two endpoint of the link have to exist | ||
17848 | find mayExist(problem, interpretation, source); | ||
17849 | find mayExist(problem, interpretation, target); | ||
17850 | // Type consistency | ||
17851 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
17852 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); | ||
17853 | // The reference is containment, then a new reference cannot be create if: | ||
17854 | // 1. Multiple parents | ||
17855 | neg find mustContains4(problem,interpretation,_,target); | ||
17856 | // 2. Circle in the containment hierarchy | ||
17857 | neg find mustTransitiveContains(source,target); | ||
17858 | } or { | ||
17859 | find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); | ||
17860 | } | ||
17861 | /** | ||
17862 | * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) | ||
17863 | */ | ||
17864 | private pattern mustInRelationeModelElement_reference_EAnnotation( | ||
17865 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17866 | source: DefinedElement, target:DefinedElement) | ||
17867 | { | ||
17868 | find interpretation(problem,interpretation); | ||
17869 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17870 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); | ||
17871 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17872 | BinaryElementRelationLink.param1(link,source); | ||
17873 | BinaryElementRelationLink.param2(link,target); | ||
17874 | } | ||
17875 | /** | ||
17876 | * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) | ||
17877 | */ | ||
17878 | private pattern mayInRelationeModelElement_reference_EAnnotation( | ||
17879 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17880 | source: DefinedElement, target:DefinedElement) | ||
17881 | { | ||
17882 | find interpretation(problem,interpretation); | ||
17883 | // The two endpoint of the link have to exist | ||
17884 | find mayExist(problem, interpretation, source); | ||
17885 | find mayExist(problem, interpretation, target); | ||
17886 | // Type consistency | ||
17887 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
17888 | find mayInstanceOfEModelElement_class(problem,interpretation,target); | ||
17889 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
17890 | // the upper bound of the multiplicity should be considered. | ||
17891 | numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); | ||
17892 | check(numberOfExistingReferences < 1); | ||
17893 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
17894 | // 1. Multiple parents | ||
17895 | neg find mustContains4(problem,interpretation,source,_); | ||
17896 | // 2. Circle in the containment hierarchy | ||
17897 | neg find mustTransitiveContains(source,target); | ||
17898 | } or { | ||
17899 | find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); | ||
17900 | } | ||
17901 | /** | ||
17902 | * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) | ||
17903 | */ | ||
17904 | private pattern mustInRelationcontents_reference_EAnnotation( | ||
17905 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17906 | source: DefinedElement, target:DefinedElement) | ||
17907 | { | ||
17908 | find interpretation(problem,interpretation); | ||
17909 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17910 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); | ||
17911 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17912 | BinaryElementRelationLink.param1(link,source); | ||
17913 | BinaryElementRelationLink.param2(link,target); | ||
17914 | } | ||
17915 | /** | ||
17916 | * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) | ||
17917 | */ | ||
17918 | private pattern mayInRelationcontents_reference_EAnnotation( | ||
17919 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17920 | source: DefinedElement, target:DefinedElement) | ||
17921 | { | ||
17922 | find interpretation(problem,interpretation); | ||
17923 | // The two endpoint of the link have to exist | ||
17924 | find mayExist(problem, interpretation, source); | ||
17925 | find mayExist(problem, interpretation, target); | ||
17926 | // Type consistency | ||
17927 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
17928 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
17929 | // The reference is containment, then a new reference cannot be create if: | ||
17930 | // 1. Multiple parents | ||
17931 | neg find mustContains4(problem,interpretation,_,target); | ||
17932 | // 2. Circle in the containment hierarchy | ||
17933 | neg find mustTransitiveContains(source,target); | ||
17934 | } or { | ||
17935 | find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); | ||
17936 | } | ||
17937 | /** | ||
17938 | * Matcher for detecting tuples t where []references reference EAnnotation(source,target) | ||
17939 | */ | ||
17940 | private pattern mustInRelationreferences_reference_EAnnotation( | ||
17941 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17942 | source: DefinedElement, target:DefinedElement) | ||
17943 | { | ||
17944 | find interpretation(problem,interpretation); | ||
17945 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17946 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
17947 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17948 | BinaryElementRelationLink.param1(link,source); | ||
17949 | BinaryElementRelationLink.param2(link,target); | ||
17950 | } | ||
17951 | /** | ||
17952 | * Matcher for detecting tuples t where <>references reference EAnnotation(source,target) | ||
17953 | */ | ||
17954 | private pattern mayInRelationreferences_reference_EAnnotation( | ||
17955 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17956 | source: DefinedElement, target:DefinedElement) | ||
17957 | { | ||
17958 | find interpretation(problem,interpretation); | ||
17959 | // The two endpoint of the link have to exist | ||
17960 | find mayExist(problem, interpretation, source); | ||
17961 | find mayExist(problem, interpretation, target); | ||
17962 | // Type consistency | ||
17963 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
17964 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
17965 | } or { | ||
17966 | find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target); | ||
17967 | } | ||
17968 | /** | ||
17969 | * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target) | ||
17970 | */ | ||
17971 | private pattern mustInRelationeSuperTypes_reference_EClass( | ||
17972 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17973 | source: DefinedElement, target:DefinedElement) | ||
17974 | { | ||
17975 | find interpretation(problem,interpretation); | ||
17976 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
17977 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
17978 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
17979 | BinaryElementRelationLink.param1(link,source); | ||
17980 | BinaryElementRelationLink.param2(link,target); | ||
17981 | } | ||
17982 | /** | ||
17983 | * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target) | ||
17984 | */ | ||
17985 | private pattern mayInRelationeSuperTypes_reference_EClass( | ||
17986 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
17987 | source: DefinedElement, target:DefinedElement) | ||
17988 | { | ||
17989 | find interpretation(problem,interpretation); | ||
17990 | // The two endpoint of the link have to exist | ||
17991 | find mayExist(problem, interpretation, source); | ||
17992 | find mayExist(problem, interpretation, target); | ||
17993 | // Type consistency | ||
17994 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
17995 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
17996 | } or { | ||
17997 | find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
17998 | } | ||
17999 | /** | ||
18000 | * Matcher for detecting tuples t where []eOperations reference EClass(source,target) | ||
18001 | */ | ||
18002 | private pattern mustInRelationeOperations_reference_EClass( | ||
18003 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18004 | source: DefinedElement, target:DefinedElement) | ||
18005 | { | ||
18006 | find interpretation(problem,interpretation); | ||
18007 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18008 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); | ||
18009 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18010 | BinaryElementRelationLink.param1(link,source); | ||
18011 | BinaryElementRelationLink.param2(link,target); | ||
18012 | } | ||
18013 | /** | ||
18014 | * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) | ||
18015 | */ | ||
18016 | private pattern mayInRelationeOperations_reference_EClass( | ||
18017 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18018 | source: DefinedElement, target:DefinedElement) | ||
18019 | { | ||
18020 | find interpretation(problem,interpretation); | ||
18021 | // The two endpoint of the link have to exist | ||
18022 | find mayExist(problem, interpretation, source); | ||
18023 | find mayExist(problem, interpretation, target); | ||
18024 | // Type consistency | ||
18025 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18026 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
18027 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18028 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18029 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); | ||
18030 | check(numberOfExistingOppositeReferences < 1); | ||
18031 | // The reference is containment, then a new reference cannot be create if: | ||
18032 | // 1. Multiple parents | ||
18033 | neg find mustContains4(problem,interpretation,_,target); | ||
18034 | // 2. Circle in the containment hierarchy | ||
18035 | neg find mustTransitiveContains(source,target); | ||
18036 | } or { | ||
18037 | find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); | ||
18038 | } | ||
18039 | /** | ||
18040 | * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target) | ||
18041 | */ | ||
18042 | private pattern mustInRelationeAllAttributes_reference_EClass( | ||
18043 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18044 | source: DefinedElement, target:DefinedElement) | ||
18045 | { | ||
18046 | find interpretation(problem,interpretation); | ||
18047 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18048 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
18049 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18050 | BinaryElementRelationLink.param1(link,source); | ||
18051 | BinaryElementRelationLink.param2(link,target); | ||
18052 | } | ||
18053 | /** | ||
18054 | * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target) | ||
18055 | */ | ||
18056 | private pattern mayInRelationeAllAttributes_reference_EClass( | ||
18057 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18058 | source: DefinedElement, target:DefinedElement) | ||
18059 | { | ||
18060 | find interpretation(problem,interpretation); | ||
18061 | // The two endpoint of the link have to exist | ||
18062 | find mayExist(problem, interpretation, source); | ||
18063 | find mayExist(problem, interpretation, target); | ||
18064 | // Type consistency | ||
18065 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18066 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
18067 | } or { | ||
18068 | find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target); | ||
18069 | } | ||
18070 | /** | ||
18071 | * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target) | ||
18072 | */ | ||
18073 | private pattern mustInRelationeAllReferences_reference_EClass( | ||
18074 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18075 | source: DefinedElement, target:DefinedElement) | ||
18076 | { | ||
18077 | find interpretation(problem,interpretation); | ||
18078 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18079 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
18080 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18081 | BinaryElementRelationLink.param1(link,source); | ||
18082 | BinaryElementRelationLink.param2(link,target); | ||
18083 | } | ||
18084 | /** | ||
18085 | * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target) | ||
18086 | */ | ||
18087 | private pattern mayInRelationeAllReferences_reference_EClass( | ||
18088 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18089 | source: DefinedElement, target:DefinedElement) | ||
18090 | { | ||
18091 | find interpretation(problem,interpretation); | ||
18092 | // The two endpoint of the link have to exist | ||
18093 | find mayExist(problem, interpretation, source); | ||
18094 | find mayExist(problem, interpretation, target); | ||
18095 | // Type consistency | ||
18096 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18097 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
18098 | } or { | ||
18099 | find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target); | ||
18100 | } | ||
18101 | /** | ||
18102 | * Matcher for detecting tuples t where []eReferences reference EClass(source,target) | ||
18103 | */ | ||
18104 | private pattern mustInRelationeReferences_reference_EClass( | ||
18105 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18106 | source: DefinedElement, target:DefinedElement) | ||
18107 | { | ||
18108 | find interpretation(problem,interpretation); | ||
18109 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18110 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
18111 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18112 | BinaryElementRelationLink.param1(link,source); | ||
18113 | BinaryElementRelationLink.param2(link,target); | ||
18114 | } | ||
18115 | /** | ||
18116 | * Matcher for detecting tuples t where <>eReferences reference EClass(source,target) | ||
18117 | */ | ||
18118 | private pattern mayInRelationeReferences_reference_EClass( | ||
18119 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18120 | source: DefinedElement, target:DefinedElement) | ||
18121 | { | ||
18122 | find interpretation(problem,interpretation); | ||
18123 | // The two endpoint of the link have to exist | ||
18124 | find mayExist(problem, interpretation, source); | ||
18125 | find mayExist(problem, interpretation, target); | ||
18126 | // Type consistency | ||
18127 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18128 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
18129 | } or { | ||
18130 | find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target); | ||
18131 | } | ||
18132 | /** | ||
18133 | * Matcher for detecting tuples t where []eAttributes reference EClass(source,target) | ||
18134 | */ | ||
18135 | private pattern mustInRelationeAttributes_reference_EClass( | ||
18136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18137 | source: DefinedElement, target:DefinedElement) | ||
18138 | { | ||
18139 | find interpretation(problem,interpretation); | ||
18140 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18141 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
18142 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18143 | BinaryElementRelationLink.param1(link,source); | ||
18144 | BinaryElementRelationLink.param2(link,target); | ||
18145 | } | ||
18146 | /** | ||
18147 | * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target) | ||
18148 | */ | ||
18149 | private pattern mayInRelationeAttributes_reference_EClass( | ||
18150 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18151 | source: DefinedElement, target:DefinedElement) | ||
18152 | { | ||
18153 | find interpretation(problem,interpretation); | ||
18154 | // The two endpoint of the link have to exist | ||
18155 | find mayExist(problem, interpretation, source); | ||
18156 | find mayExist(problem, interpretation, target); | ||
18157 | // Type consistency | ||
18158 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18159 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
18160 | } or { | ||
18161 | find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target); | ||
18162 | } | ||
18163 | /** | ||
18164 | * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target) | ||
18165 | */ | ||
18166 | private pattern mustInRelationeAllContainments_reference_EClass( | ||
18167 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18168 | source: DefinedElement, target:DefinedElement) | ||
18169 | { | ||
18170 | find interpretation(problem,interpretation); | ||
18171 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18172 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
18173 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18174 | BinaryElementRelationLink.param1(link,source); | ||
18175 | BinaryElementRelationLink.param2(link,target); | ||
18176 | } | ||
18177 | /** | ||
18178 | * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target) | ||
18179 | */ | ||
18180 | private pattern mayInRelationeAllContainments_reference_EClass( | ||
18181 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18182 | source: DefinedElement, target:DefinedElement) | ||
18183 | { | ||
18184 | find interpretation(problem,interpretation); | ||
18185 | // The two endpoint of the link have to exist | ||
18186 | find mayExist(problem, interpretation, source); | ||
18187 | find mayExist(problem, interpretation, target); | ||
18188 | // Type consistency | ||
18189 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18190 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
18191 | } or { | ||
18192 | find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target); | ||
18193 | } | ||
18194 | /** | ||
18195 | * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target) | ||
18196 | */ | ||
18197 | private pattern mustInRelationeAllOperations_reference_EClass( | ||
18198 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18199 | source: DefinedElement, target:DefinedElement) | ||
18200 | { | ||
18201 | find interpretation(problem,interpretation); | ||
18202 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18203 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
18204 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18205 | BinaryElementRelationLink.param1(link,source); | ||
18206 | BinaryElementRelationLink.param2(link,target); | ||
18207 | } | ||
18208 | /** | ||
18209 | * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target) | ||
18210 | */ | ||
18211 | private pattern mayInRelationeAllOperations_reference_EClass( | ||
18212 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18213 | source: DefinedElement, target:DefinedElement) | ||
18214 | { | ||
18215 | find interpretation(problem,interpretation); | ||
18216 | // The two endpoint of the link have to exist | ||
18217 | find mayExist(problem, interpretation, source); | ||
18218 | find mayExist(problem, interpretation, target); | ||
18219 | // Type consistency | ||
18220 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18221 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
18222 | } or { | ||
18223 | find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target); | ||
18224 | } | ||
18225 | /** | ||
18226 | * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) | ||
18227 | */ | ||
18228 | private pattern mustInRelationeAllStructuralFeatures_reference_EClass( | ||
18229 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18230 | source: DefinedElement, target:DefinedElement) | ||
18231 | { | ||
18232 | find interpretation(problem,interpretation); | ||
18233 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18234 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
18235 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18236 | BinaryElementRelationLink.param1(link,source); | ||
18237 | BinaryElementRelationLink.param2(link,target); | ||
18238 | } | ||
18239 | /** | ||
18240 | * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) | ||
18241 | */ | ||
18242 | private pattern mayInRelationeAllStructuralFeatures_reference_EClass( | ||
18243 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18244 | source: DefinedElement, target:DefinedElement) | ||
18245 | { | ||
18246 | find interpretation(problem,interpretation); | ||
18247 | // The two endpoint of the link have to exist | ||
18248 | find mayExist(problem, interpretation, source); | ||
18249 | find mayExist(problem, interpretation, target); | ||
18250 | // Type consistency | ||
18251 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18252 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
18253 | } or { | ||
18254 | find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
18255 | } | ||
18256 | /** | ||
18257 | * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) | ||
18258 | */ | ||
18259 | private pattern mustInRelationeAllSuperTypes_reference_EClass( | ||
18260 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18261 | source: DefinedElement, target:DefinedElement) | ||
18262 | { | ||
18263 | find interpretation(problem,interpretation); | ||
18264 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18265 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
18266 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18267 | BinaryElementRelationLink.param1(link,source); | ||
18268 | BinaryElementRelationLink.param2(link,target); | ||
18269 | } | ||
18270 | /** | ||
18271 | * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) | ||
18272 | */ | ||
18273 | private pattern mayInRelationeAllSuperTypes_reference_EClass( | ||
18274 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18275 | source: DefinedElement, target:DefinedElement) | ||
18276 | { | ||
18277 | find interpretation(problem,interpretation); | ||
18278 | // The two endpoint of the link have to exist | ||
18279 | find mayExist(problem, interpretation, source); | ||
18280 | find mayExist(problem, interpretation, target); | ||
18281 | // Type consistency | ||
18282 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18283 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
18284 | } or { | ||
18285 | find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
18286 | } | ||
18287 | /** | ||
18288 | * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) | ||
18289 | */ | ||
18290 | private pattern mustInRelationeIDAttribute_reference_EClass( | ||
18291 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18292 | source: DefinedElement, target:DefinedElement) | ||
18293 | { | ||
18294 | find interpretation(problem,interpretation); | ||
18295 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18296 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
18297 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18298 | BinaryElementRelationLink.param1(link,source); | ||
18299 | BinaryElementRelationLink.param2(link,target); | ||
18300 | } | ||
18301 | /** | ||
18302 | * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) | ||
18303 | */ | ||
18304 | private pattern mayInRelationeIDAttribute_reference_EClass( | ||
18305 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18306 | source: DefinedElement, target:DefinedElement) | ||
18307 | { | ||
18308 | find interpretation(problem,interpretation); | ||
18309 | // The two endpoint of the link have to exist | ||
18310 | find mayExist(problem, interpretation, source); | ||
18311 | find mayExist(problem, interpretation, target); | ||
18312 | // Type consistency | ||
18313 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18314 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
18315 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18316 | // the upper bound of the multiplicity should be considered. | ||
18317 | numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); | ||
18318 | check(numberOfExistingReferences < 1); | ||
18319 | } or { | ||
18320 | find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); | ||
18321 | } | ||
18322 | /** | ||
18323 | * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) | ||
18324 | */ | ||
18325 | private pattern mustInRelationeStructuralFeatures_reference_EClass( | ||
18326 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18327 | source: DefinedElement, target:DefinedElement) | ||
18328 | { | ||
18329 | find interpretation(problem,interpretation); | ||
18330 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18331 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); | ||
18332 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18333 | BinaryElementRelationLink.param1(link,source); | ||
18334 | BinaryElementRelationLink.param2(link,target); | ||
18335 | } | ||
18336 | /** | ||
18337 | * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) | ||
18338 | */ | ||
18339 | private pattern mayInRelationeStructuralFeatures_reference_EClass( | ||
18340 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18341 | source: DefinedElement, target:DefinedElement) | ||
18342 | { | ||
18343 | find interpretation(problem,interpretation); | ||
18344 | // The two endpoint of the link have to exist | ||
18345 | find mayExist(problem, interpretation, source); | ||
18346 | find mayExist(problem, interpretation, target); | ||
18347 | // Type consistency | ||
18348 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18349 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
18350 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18351 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18352 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); | ||
18353 | check(numberOfExistingOppositeReferences < 1); | ||
18354 | // The reference is containment, then a new reference cannot be create if: | ||
18355 | // 1. Multiple parents | ||
18356 | neg find mustContains4(problem,interpretation,_,target); | ||
18357 | // 2. Circle in the containment hierarchy | ||
18358 | neg find mustTransitiveContains(source,target); | ||
18359 | } or { | ||
18360 | find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
18361 | } | ||
18362 | /** | ||
18363 | * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target) | ||
18364 | */ | ||
18365 | private pattern mustInRelationeGenericSuperTypes_reference_EClass( | ||
18366 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18367 | source: DefinedElement, target:DefinedElement) | ||
18368 | { | ||
18369 | find interpretation(problem,interpretation); | ||
18370 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18371 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass"); | ||
18372 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18373 | BinaryElementRelationLink.param1(link,source); | ||
18374 | BinaryElementRelationLink.param2(link,target); | ||
18375 | } | ||
18376 | /** | ||
18377 | * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target) | ||
18378 | */ | ||
18379 | private pattern mayInRelationeGenericSuperTypes_reference_EClass( | ||
18380 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18381 | source: DefinedElement, target:DefinedElement) | ||
18382 | { | ||
18383 | find interpretation(problem,interpretation); | ||
18384 | // The two endpoint of the link have to exist | ||
18385 | find mayExist(problem, interpretation, source); | ||
18386 | find mayExist(problem, interpretation, target); | ||
18387 | // Type consistency | ||
18388 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18389 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
18390 | // The reference is containment, then a new reference cannot be create if: | ||
18391 | // 1. Multiple parents | ||
18392 | neg find mustContains4(problem,interpretation,_,target); | ||
18393 | // 2. Circle in the containment hierarchy | ||
18394 | neg find mustTransitiveContains(source,target); | ||
18395 | } or { | ||
18396 | find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
18397 | } | ||
18398 | /** | ||
18399 | * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target) | ||
18400 | */ | ||
18401 | private pattern mustInRelationeAllGenericSuperTypes_reference_EClass( | ||
18402 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18403 | source: DefinedElement, target:DefinedElement) | ||
18404 | { | ||
18405 | find interpretation(problem,interpretation); | ||
18406 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18407 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
18408 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18409 | BinaryElementRelationLink.param1(link,source); | ||
18410 | BinaryElementRelationLink.param2(link,target); | ||
18411 | } | ||
18412 | /** | ||
18413 | * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target) | ||
18414 | */ | ||
18415 | private pattern mayInRelationeAllGenericSuperTypes_reference_EClass( | ||
18416 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18417 | source: DefinedElement, target:DefinedElement) | ||
18418 | { | ||
18419 | find interpretation(problem,interpretation); | ||
18420 | // The two endpoint of the link have to exist | ||
18421 | find mayExist(problem, interpretation, source); | ||
18422 | find mayExist(problem, interpretation, target); | ||
18423 | // Type consistency | ||
18424 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
18425 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
18426 | } or { | ||
18427 | find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
18428 | } | ||
18429 | /** | ||
18430 | * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) | ||
18431 | */ | ||
18432 | private pattern mustInRelationePackage_reference_EClassifier( | ||
18433 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18434 | source: DefinedElement, target:DefinedElement) | ||
18435 | { | ||
18436 | find interpretation(problem,interpretation); | ||
18437 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18438 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); | ||
18439 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18440 | BinaryElementRelationLink.param1(link,source); | ||
18441 | BinaryElementRelationLink.param2(link,target); | ||
18442 | } | ||
18443 | /** | ||
18444 | * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) | ||
18445 | */ | ||
18446 | private pattern mayInRelationePackage_reference_EClassifier( | ||
18447 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18448 | source: DefinedElement, target:DefinedElement) | ||
18449 | { | ||
18450 | find interpretation(problem,interpretation); | ||
18451 | // The two endpoint of the link have to exist | ||
18452 | find mayExist(problem, interpretation, source); | ||
18453 | find mayExist(problem, interpretation, target); | ||
18454 | // Type consistency | ||
18455 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
18456 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
18457 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18458 | // the upper bound of the multiplicity should be considered. | ||
18459 | numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); | ||
18460 | check(numberOfExistingReferences < 1); | ||
18461 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
18462 | // 1. Multiple parents | ||
18463 | neg find mustContains4(problem,interpretation,source,_); | ||
18464 | // 2. Circle in the containment hierarchy | ||
18465 | neg find mustTransitiveContains(source,target); | ||
18466 | } or { | ||
18467 | find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); | ||
18468 | } | ||
18469 | /** | ||
18470 | * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) | ||
18471 | */ | ||
18472 | private pattern mustInRelationeTypeParameters_reference_EClassifier( | ||
18473 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18474 | source: DefinedElement, target:DefinedElement) | ||
18475 | { | ||
18476 | find interpretation(problem,interpretation); | ||
18477 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18478 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); | ||
18479 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18480 | BinaryElementRelationLink.param1(link,source); | ||
18481 | BinaryElementRelationLink.param2(link,target); | ||
18482 | } | ||
18483 | /** | ||
18484 | * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) | ||
18485 | */ | ||
18486 | private pattern mayInRelationeTypeParameters_reference_EClassifier( | ||
18487 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18488 | source: DefinedElement, target:DefinedElement) | ||
18489 | { | ||
18490 | find interpretation(problem,interpretation); | ||
18491 | // The two endpoint of the link have to exist | ||
18492 | find mayExist(problem, interpretation, source); | ||
18493 | find mayExist(problem, interpretation, target); | ||
18494 | // Type consistency | ||
18495 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
18496 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
18497 | // The reference is containment, then a new reference cannot be create if: | ||
18498 | // 1. Multiple parents | ||
18499 | neg find mustContains4(problem,interpretation,_,target); | ||
18500 | // 2. Circle in the containment hierarchy | ||
18501 | neg find mustTransitiveContains(source,target); | ||
18502 | } or { | ||
18503 | find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); | ||
18504 | } | ||
18505 | /** | ||
18506 | * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) | ||
18507 | */ | ||
18508 | private pattern mustInRelationeLiterals_reference_EEnum( | ||
18509 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18510 | source: DefinedElement, target:DefinedElement) | ||
18511 | { | ||
18512 | find interpretation(problem,interpretation); | ||
18513 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18514 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); | ||
18515 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18516 | BinaryElementRelationLink.param1(link,source); | ||
18517 | BinaryElementRelationLink.param2(link,target); | ||
18518 | } | ||
18519 | /** | ||
18520 | * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) | ||
18521 | */ | ||
18522 | private pattern mayInRelationeLiterals_reference_EEnum( | ||
18523 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18524 | source: DefinedElement, target:DefinedElement) | ||
18525 | { | ||
18526 | find interpretation(problem,interpretation); | ||
18527 | // The two endpoint of the link have to exist | ||
18528 | find mayExist(problem, interpretation, source); | ||
18529 | find mayExist(problem, interpretation, target); | ||
18530 | // Type consistency | ||
18531 | find mayInstanceOfEEnum_class(problem,interpretation,source); | ||
18532 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); | ||
18533 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18534 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18535 | numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); | ||
18536 | check(numberOfExistingOppositeReferences < 1); | ||
18537 | // The reference is containment, then a new reference cannot be create if: | ||
18538 | // 1. Multiple parents | ||
18539 | neg find mustContains4(problem,interpretation,_,target); | ||
18540 | // 2. Circle in the containment hierarchy | ||
18541 | neg find mustTransitiveContains(source,target); | ||
18542 | } or { | ||
18543 | find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); | ||
18544 | } | ||
18545 | /** | ||
18546 | * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) | ||
18547 | */ | ||
18548 | private pattern mustInRelationeEnum_reference_EEnumLiteral( | ||
18549 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18550 | source: DefinedElement, target:DefinedElement) | ||
18551 | { | ||
18552 | find interpretation(problem,interpretation); | ||
18553 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18554 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); | ||
18555 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18556 | BinaryElementRelationLink.param1(link,source); | ||
18557 | BinaryElementRelationLink.param2(link,target); | ||
18558 | } | ||
18559 | /** | ||
18560 | * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) | ||
18561 | */ | ||
18562 | private pattern mayInRelationeEnum_reference_EEnumLiteral( | ||
18563 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18564 | source: DefinedElement, target:DefinedElement) | ||
18565 | { | ||
18566 | find interpretation(problem,interpretation); | ||
18567 | // The two endpoint of the link have to exist | ||
18568 | find mayExist(problem, interpretation, source); | ||
18569 | find mayExist(problem, interpretation, target); | ||
18570 | // Type consistency | ||
18571 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
18572 | find mayInstanceOfEEnum_class(problem,interpretation,target); | ||
18573 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18574 | // the upper bound of the multiplicity should be considered. | ||
18575 | numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); | ||
18576 | check(numberOfExistingReferences < 1); | ||
18577 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
18578 | // 1. Multiple parents | ||
18579 | neg find mustContains4(problem,interpretation,source,_); | ||
18580 | // 2. Circle in the containment hierarchy | ||
18581 | neg find mustTransitiveContains(source,target); | ||
18582 | } or { | ||
18583 | find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); | ||
18584 | } | ||
18585 | /** | ||
18586 | * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) | ||
18587 | */ | ||
18588 | private pattern mustInRelationeAnnotations_reference_EModelElement( | ||
18589 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18590 | source: DefinedElement, target:DefinedElement) | ||
18591 | { | ||
18592 | find interpretation(problem,interpretation); | ||
18593 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18594 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); | ||
18595 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18596 | BinaryElementRelationLink.param1(link,source); | ||
18597 | BinaryElementRelationLink.param2(link,target); | ||
18598 | } | ||
18599 | /** | ||
18600 | * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) | ||
18601 | */ | ||
18602 | private pattern mayInRelationeAnnotations_reference_EModelElement( | ||
18603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18604 | source: DefinedElement, target:DefinedElement) | ||
18605 | { | ||
18606 | find interpretation(problem,interpretation); | ||
18607 | // The two endpoint of the link have to exist | ||
18608 | find mayExist(problem, interpretation, source); | ||
18609 | find mayExist(problem, interpretation, target); | ||
18610 | // Type consistency | ||
18611 | find mayInstanceOfEModelElement_class(problem,interpretation,source); | ||
18612 | find mayInstanceOfEAnnotation_class(problem,interpretation,target); | ||
18613 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18614 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18615 | numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); | ||
18616 | check(numberOfExistingOppositeReferences < 1); | ||
18617 | // The reference is containment, then a new reference cannot be create if: | ||
18618 | // 1. Multiple parents | ||
18619 | neg find mustContains4(problem,interpretation,_,target); | ||
18620 | // 2. Circle in the containment hierarchy | ||
18621 | neg find mustTransitiveContains(source,target); | ||
18622 | } or { | ||
18623 | find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); | ||
18624 | } | ||
18625 | /** | ||
18626 | * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) | ||
18627 | */ | ||
18628 | private pattern mustInRelationeContainingClass_reference_EOperation( | ||
18629 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18630 | source: DefinedElement, target:DefinedElement) | ||
18631 | { | ||
18632 | find interpretation(problem,interpretation); | ||
18633 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18634 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); | ||
18635 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18636 | BinaryElementRelationLink.param1(link,source); | ||
18637 | BinaryElementRelationLink.param2(link,target); | ||
18638 | } | ||
18639 | /** | ||
18640 | * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) | ||
18641 | */ | ||
18642 | private pattern mayInRelationeContainingClass_reference_EOperation( | ||
18643 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18644 | source: DefinedElement, target:DefinedElement) | ||
18645 | { | ||
18646 | find interpretation(problem,interpretation); | ||
18647 | // The two endpoint of the link have to exist | ||
18648 | find mayExist(problem, interpretation, source); | ||
18649 | find mayExist(problem, interpretation, target); | ||
18650 | // Type consistency | ||
18651 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
18652 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
18653 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18654 | // the upper bound of the multiplicity should be considered. | ||
18655 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); | ||
18656 | check(numberOfExistingReferences < 1); | ||
18657 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
18658 | // 1. Multiple parents | ||
18659 | neg find mustContains4(problem,interpretation,source,_); | ||
18660 | // 2. Circle in the containment hierarchy | ||
18661 | neg find mustTransitiveContains(source,target); | ||
18662 | } or { | ||
18663 | find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); | ||
18664 | } | ||
18665 | /** | ||
18666 | * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) | ||
18667 | */ | ||
18668 | private pattern mustInRelationeTypeParameters_reference_EOperation( | ||
18669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18670 | source: DefinedElement, target:DefinedElement) | ||
18671 | { | ||
18672 | find interpretation(problem,interpretation); | ||
18673 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18674 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); | ||
18675 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18676 | BinaryElementRelationLink.param1(link,source); | ||
18677 | BinaryElementRelationLink.param2(link,target); | ||
18678 | } | ||
18679 | /** | ||
18680 | * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) | ||
18681 | */ | ||
18682 | private pattern mayInRelationeTypeParameters_reference_EOperation( | ||
18683 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18684 | source: DefinedElement, target:DefinedElement) | ||
18685 | { | ||
18686 | find interpretation(problem,interpretation); | ||
18687 | // The two endpoint of the link have to exist | ||
18688 | find mayExist(problem, interpretation, source); | ||
18689 | find mayExist(problem, interpretation, target); | ||
18690 | // Type consistency | ||
18691 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
18692 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
18693 | // The reference is containment, then a new reference cannot be create if: | ||
18694 | // 1. Multiple parents | ||
18695 | neg find mustContains4(problem,interpretation,_,target); | ||
18696 | // 2. Circle in the containment hierarchy | ||
18697 | neg find mustTransitiveContains(source,target); | ||
18698 | } or { | ||
18699 | find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); | ||
18700 | } | ||
18701 | /** | ||
18702 | * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) | ||
18703 | */ | ||
18704 | private pattern mustInRelationeParameters_reference_EOperation( | ||
18705 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18706 | source: DefinedElement, target:DefinedElement) | ||
18707 | { | ||
18708 | find interpretation(problem,interpretation); | ||
18709 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18710 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); | ||
18711 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18712 | BinaryElementRelationLink.param1(link,source); | ||
18713 | BinaryElementRelationLink.param2(link,target); | ||
18714 | } | ||
18715 | /** | ||
18716 | * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) | ||
18717 | */ | ||
18718 | private pattern mayInRelationeParameters_reference_EOperation( | ||
18719 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18720 | source: DefinedElement, target:DefinedElement) | ||
18721 | { | ||
18722 | find interpretation(problem,interpretation); | ||
18723 | // The two endpoint of the link have to exist | ||
18724 | find mayExist(problem, interpretation, source); | ||
18725 | find mayExist(problem, interpretation, target); | ||
18726 | // Type consistency | ||
18727 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
18728 | find mayInstanceOfEParameter_class(problem,interpretation,target); | ||
18729 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18730 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18731 | numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); | ||
18732 | check(numberOfExistingOppositeReferences < 1); | ||
18733 | // The reference is containment, then a new reference cannot be create if: | ||
18734 | // 1. Multiple parents | ||
18735 | neg find mustContains4(problem,interpretation,_,target); | ||
18736 | // 2. Circle in the containment hierarchy | ||
18737 | neg find mustTransitiveContains(source,target); | ||
18738 | } or { | ||
18739 | find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); | ||
18740 | } | ||
18741 | /** | ||
18742 | * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target) | ||
18743 | */ | ||
18744 | private pattern mustInRelationeExceptions_reference_EOperation( | ||
18745 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18746 | source: DefinedElement, target:DefinedElement) | ||
18747 | { | ||
18748 | find interpretation(problem,interpretation); | ||
18749 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18750 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
18751 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18752 | BinaryElementRelationLink.param1(link,source); | ||
18753 | BinaryElementRelationLink.param2(link,target); | ||
18754 | } | ||
18755 | /** | ||
18756 | * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) | ||
18757 | */ | ||
18758 | private pattern mayInRelationeExceptions_reference_EOperation( | ||
18759 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18760 | source: DefinedElement, target:DefinedElement) | ||
18761 | { | ||
18762 | find interpretation(problem,interpretation); | ||
18763 | // The two endpoint of the link have to exist | ||
18764 | find mayExist(problem, interpretation, source); | ||
18765 | find mayExist(problem, interpretation, target); | ||
18766 | // Type consistency | ||
18767 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
18768 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
18769 | } or { | ||
18770 | find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); | ||
18771 | } | ||
18772 | /** | ||
18773 | * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target) | ||
18774 | */ | ||
18775 | private pattern mustInRelationeGenericExceptions_reference_EOperation( | ||
18776 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18777 | source: DefinedElement, target:DefinedElement) | ||
18778 | { | ||
18779 | find interpretation(problem,interpretation); | ||
18780 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18781 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); | ||
18782 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18783 | BinaryElementRelationLink.param1(link,source); | ||
18784 | BinaryElementRelationLink.param2(link,target); | ||
18785 | } | ||
18786 | /** | ||
18787 | * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) | ||
18788 | */ | ||
18789 | private pattern mayInRelationeGenericExceptions_reference_EOperation( | ||
18790 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18791 | source: DefinedElement, target:DefinedElement) | ||
18792 | { | ||
18793 | find interpretation(problem,interpretation); | ||
18794 | // The two endpoint of the link have to exist | ||
18795 | find mayExist(problem, interpretation, source); | ||
18796 | find mayExist(problem, interpretation, target); | ||
18797 | // Type consistency | ||
18798 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
18799 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
18800 | // The reference is containment, then a new reference cannot be create if: | ||
18801 | // 1. Multiple parents | ||
18802 | neg find mustContains4(problem,interpretation,_,target); | ||
18803 | // 2. Circle in the containment hierarchy | ||
18804 | neg find mustTransitiveContains(source,target); | ||
18805 | } or { | ||
18806 | find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); | ||
18807 | } | ||
18808 | /** | ||
18809 | * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) | ||
18810 | */ | ||
18811 | private pattern mustInRelationeClassifiers_reference_EPackage( | ||
18812 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18813 | source: DefinedElement, target:DefinedElement) | ||
18814 | { | ||
18815 | find interpretation(problem,interpretation); | ||
18816 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18817 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); | ||
18818 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18819 | BinaryElementRelationLink.param1(link,source); | ||
18820 | BinaryElementRelationLink.param2(link,target); | ||
18821 | } | ||
18822 | /** | ||
18823 | * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) | ||
18824 | */ | ||
18825 | private pattern mayInRelationeClassifiers_reference_EPackage( | ||
18826 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18827 | source: DefinedElement, target:DefinedElement) | ||
18828 | { | ||
18829 | find interpretation(problem,interpretation); | ||
18830 | // The two endpoint of the link have to exist | ||
18831 | find mayExist(problem, interpretation, source); | ||
18832 | find mayExist(problem, interpretation, target); | ||
18833 | // Type consistency | ||
18834 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
18835 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
18836 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18837 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18838 | numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); | ||
18839 | check(numberOfExistingOppositeReferences < 1); | ||
18840 | // The reference is containment, then a new reference cannot be create if: | ||
18841 | // 1. Multiple parents | ||
18842 | neg find mustContains4(problem,interpretation,_,target); | ||
18843 | // 2. Circle in the containment hierarchy | ||
18844 | neg find mustTransitiveContains(source,target); | ||
18845 | } or { | ||
18846 | find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); | ||
18847 | } | ||
18848 | /** | ||
18849 | * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) | ||
18850 | */ | ||
18851 | private pattern mustInRelationeSubpackages_reference_EPackage( | ||
18852 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18853 | source: DefinedElement, target:DefinedElement) | ||
18854 | { | ||
18855 | find interpretation(problem,interpretation); | ||
18856 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18857 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); | ||
18858 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18859 | BinaryElementRelationLink.param1(link,source); | ||
18860 | BinaryElementRelationLink.param2(link,target); | ||
18861 | } | ||
18862 | /** | ||
18863 | * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) | ||
18864 | */ | ||
18865 | private pattern mayInRelationeSubpackages_reference_EPackage( | ||
18866 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18867 | source: DefinedElement, target:DefinedElement) | ||
18868 | { | ||
18869 | find interpretation(problem,interpretation); | ||
18870 | // The two endpoint of the link have to exist | ||
18871 | find mayExist(problem, interpretation, source); | ||
18872 | find mayExist(problem, interpretation, target); | ||
18873 | // Type consistency | ||
18874 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
18875 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
18876 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
18877 | // the upper bound of the opposite reference multiplicity should be considered. | ||
18878 | numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); | ||
18879 | check(numberOfExistingOppositeReferences < 1); | ||
18880 | // The reference is containment, then a new reference cannot be create if: | ||
18881 | // 1. Multiple parents | ||
18882 | neg find mustContains4(problem,interpretation,_,target); | ||
18883 | // 2. Circle in the containment hierarchy | ||
18884 | neg find mustTransitiveContains(source,target); | ||
18885 | } or { | ||
18886 | find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); | ||
18887 | } | ||
18888 | /** | ||
18889 | * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) | ||
18890 | */ | ||
18891 | private pattern mustInRelationeSuperPackage_reference_EPackage( | ||
18892 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18893 | source: DefinedElement, target:DefinedElement) | ||
18894 | { | ||
18895 | find interpretation(problem,interpretation); | ||
18896 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18897 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); | ||
18898 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18899 | BinaryElementRelationLink.param1(link,source); | ||
18900 | BinaryElementRelationLink.param2(link,target); | ||
18901 | } | ||
18902 | /** | ||
18903 | * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) | ||
18904 | */ | ||
18905 | private pattern mayInRelationeSuperPackage_reference_EPackage( | ||
18906 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18907 | source: DefinedElement, target:DefinedElement) | ||
18908 | { | ||
18909 | find interpretation(problem,interpretation); | ||
18910 | // The two endpoint of the link have to exist | ||
18911 | find mayExist(problem, interpretation, source); | ||
18912 | find mayExist(problem, interpretation, target); | ||
18913 | // Type consistency | ||
18914 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
18915 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
18916 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18917 | // the upper bound of the multiplicity should be considered. | ||
18918 | numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); | ||
18919 | check(numberOfExistingReferences < 1); | ||
18920 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
18921 | // 1. Multiple parents | ||
18922 | neg find mustContains4(problem,interpretation,source,_); | ||
18923 | // 2. Circle in the containment hierarchy | ||
18924 | neg find mustTransitiveContains(source,target); | ||
18925 | } or { | ||
18926 | find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); | ||
18927 | } | ||
18928 | /** | ||
18929 | * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) | ||
18930 | */ | ||
18931 | private pattern mustInRelationeOperation_reference_EParameter( | ||
18932 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18933 | source: DefinedElement, target:DefinedElement) | ||
18934 | { | ||
18935 | find interpretation(problem,interpretation); | ||
18936 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18937 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); | ||
18938 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18939 | BinaryElementRelationLink.param1(link,source); | ||
18940 | BinaryElementRelationLink.param2(link,target); | ||
18941 | } | ||
18942 | /** | ||
18943 | * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) | ||
18944 | */ | ||
18945 | private pattern mayInRelationeOperation_reference_EParameter( | ||
18946 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18947 | source: DefinedElement, target:DefinedElement) | ||
18948 | { | ||
18949 | find interpretation(problem,interpretation); | ||
18950 | // The two endpoint of the link have to exist | ||
18951 | find mayExist(problem, interpretation, source); | ||
18952 | find mayExist(problem, interpretation, target); | ||
18953 | // Type consistency | ||
18954 | find mayInstanceOfEParameter_class(problem,interpretation,source); | ||
18955 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
18956 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18957 | // the upper bound of the multiplicity should be considered. | ||
18958 | numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); | ||
18959 | check(numberOfExistingReferences < 1); | ||
18960 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
18961 | // 1. Multiple parents | ||
18962 | neg find mustContains4(problem,interpretation,source,_); | ||
18963 | // 2. Circle in the containment hierarchy | ||
18964 | neg find mustTransitiveContains(source,target); | ||
18965 | } or { | ||
18966 | find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); | ||
18967 | } | ||
18968 | /** | ||
18969 | * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) | ||
18970 | */ | ||
18971 | private pattern mustInRelationeOpposite_reference_EReference( | ||
18972 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18973 | source: DefinedElement, target:DefinedElement) | ||
18974 | { | ||
18975 | find interpretation(problem,interpretation); | ||
18976 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
18977 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
18978 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
18979 | BinaryElementRelationLink.param1(link,source); | ||
18980 | BinaryElementRelationLink.param2(link,target); | ||
18981 | } | ||
18982 | /** | ||
18983 | * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target) | ||
18984 | */ | ||
18985 | private pattern mayInRelationeOpposite_reference_EReference( | ||
18986 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
18987 | source: DefinedElement, target:DefinedElement) | ||
18988 | { | ||
18989 | find interpretation(problem,interpretation); | ||
18990 | // The two endpoint of the link have to exist | ||
18991 | find mayExist(problem, interpretation, source); | ||
18992 | find mayExist(problem, interpretation, target); | ||
18993 | // Type consistency | ||
18994 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
18995 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
18996 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
18997 | // the upper bound of the multiplicity should be considered. | ||
18998 | numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); | ||
18999 | check(numberOfExistingReferences < 1); | ||
19000 | } or { | ||
19001 | find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); | ||
19002 | } | ||
19003 | /** | ||
19004 | * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target) | ||
19005 | */ | ||
19006 | private pattern mustInRelationeReferenceType_reference_EReference( | ||
19007 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19008 | source: DefinedElement, target:DefinedElement) | ||
19009 | { | ||
19010 | find interpretation(problem,interpretation); | ||
19011 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19012 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
19013 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19014 | BinaryElementRelationLink.param1(link,source); | ||
19015 | BinaryElementRelationLink.param2(link,target); | ||
19016 | } | ||
19017 | /** | ||
19018 | * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) | ||
19019 | */ | ||
19020 | private pattern mayInRelationeReferenceType_reference_EReference( | ||
19021 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19022 | source: DefinedElement, target:DefinedElement) | ||
19023 | { | ||
19024 | find interpretation(problem,interpretation); | ||
19025 | // The two endpoint of the link have to exist | ||
19026 | find mayExist(problem, interpretation, source); | ||
19027 | find mayExist(problem, interpretation, target); | ||
19028 | // Type consistency | ||
19029 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
19030 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
19031 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19032 | // the upper bound of the multiplicity should be considered. | ||
19033 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); | ||
19034 | check(numberOfExistingReferences < 1); | ||
19035 | } or { | ||
19036 | find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); | ||
19037 | } | ||
19038 | /** | ||
19039 | * Matcher for detecting tuples t where []eKeys reference EReference(source,target) | ||
19040 | */ | ||
19041 | private pattern mustInRelationeKeys_reference_EReference( | ||
19042 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19043 | source: DefinedElement, target:DefinedElement) | ||
19044 | { | ||
19045 | find interpretation(problem,interpretation); | ||
19046 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19047 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
19048 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19049 | BinaryElementRelationLink.param1(link,source); | ||
19050 | BinaryElementRelationLink.param2(link,target); | ||
19051 | } | ||
19052 | /** | ||
19053 | * Matcher for detecting tuples t where <>eKeys reference EReference(source,target) | ||
19054 | */ | ||
19055 | private pattern mayInRelationeKeys_reference_EReference( | ||
19056 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19057 | source: DefinedElement, target:DefinedElement) | ||
19058 | { | ||
19059 | find interpretation(problem,interpretation); | ||
19060 | // The two endpoint of the link have to exist | ||
19061 | find mayExist(problem, interpretation, source); | ||
19062 | find mayExist(problem, interpretation, target); | ||
19063 | // Type consistency | ||
19064 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
19065 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
19066 | } or { | ||
19067 | find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target); | ||
19068 | } | ||
19069 | /** | ||
19070 | * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) | ||
19071 | */ | ||
19072 | private pattern mustInRelationeContainingClass_reference_EStructuralFeature( | ||
19073 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19074 | source: DefinedElement, target:DefinedElement) | ||
19075 | { | ||
19076 | find interpretation(problem,interpretation); | ||
19077 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19078 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); | ||
19079 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19080 | BinaryElementRelationLink.param1(link,source); | ||
19081 | BinaryElementRelationLink.param2(link,target); | ||
19082 | } | ||
19083 | /** | ||
19084 | * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) | ||
19085 | */ | ||
19086 | private pattern mayInRelationeContainingClass_reference_EStructuralFeature( | ||
19087 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19088 | source: DefinedElement, target:DefinedElement) | ||
19089 | { | ||
19090 | find interpretation(problem,interpretation); | ||
19091 | // The two endpoint of the link have to exist | ||
19092 | find mayExist(problem, interpretation, source); | ||
19093 | find mayExist(problem, interpretation, target); | ||
19094 | // Type consistency | ||
19095 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
19096 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
19097 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19098 | // the upper bound of the multiplicity should be considered. | ||
19099 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); | ||
19100 | check(numberOfExistingReferences < 1); | ||
19101 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
19102 | // 1. Multiple parents | ||
19103 | neg find mustContains4(problem,interpretation,source,_); | ||
19104 | // 2. Circle in the containment hierarchy | ||
19105 | neg find mustTransitiveContains(source,target); | ||
19106 | } or { | ||
19107 | find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); | ||
19108 | } | ||
19109 | /** | ||
19110 | * Matcher for detecting tuples t where []eType reference ETypedElement(source,target) | ||
19111 | */ | ||
19112 | private pattern mustInRelationeType_reference_ETypedElement( | ||
19113 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19114 | source: DefinedElement, target:DefinedElement) | ||
19115 | { | ||
19116 | find interpretation(problem,interpretation); | ||
19117 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19118 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
19119 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19120 | BinaryElementRelationLink.param1(link,source); | ||
19121 | BinaryElementRelationLink.param2(link,target); | ||
19122 | } | ||
19123 | /** | ||
19124 | * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target) | ||
19125 | */ | ||
19126 | private pattern mayInRelationeType_reference_ETypedElement( | ||
19127 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19128 | source: DefinedElement, target:DefinedElement) | ||
19129 | { | ||
19130 | find interpretation(problem,interpretation); | ||
19131 | // The two endpoint of the link have to exist | ||
19132 | find mayExist(problem, interpretation, source); | ||
19133 | find mayExist(problem, interpretation, target); | ||
19134 | // Type consistency | ||
19135 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
19136 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
19137 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19138 | // the upper bound of the multiplicity should be considered. | ||
19139 | numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); | ||
19140 | check(numberOfExistingReferences < 1); | ||
19141 | } or { | ||
19142 | find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target); | ||
19143 | } | ||
19144 | /** | ||
19145 | * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target) | ||
19146 | */ | ||
19147 | private pattern mustInRelationeGenericType_reference_ETypedElement( | ||
19148 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19149 | source: DefinedElement, target:DefinedElement) | ||
19150 | { | ||
19151 | find interpretation(problem,interpretation); | ||
19152 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19153 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); | ||
19154 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19155 | BinaryElementRelationLink.param1(link,source); | ||
19156 | BinaryElementRelationLink.param2(link,target); | ||
19157 | } | ||
19158 | /** | ||
19159 | * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) | ||
19160 | */ | ||
19161 | private pattern mayInRelationeGenericType_reference_ETypedElement( | ||
19162 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19163 | source: DefinedElement, target:DefinedElement) | ||
19164 | { | ||
19165 | find interpretation(problem,interpretation); | ||
19166 | // The two endpoint of the link have to exist | ||
19167 | find mayExist(problem, interpretation, source); | ||
19168 | find mayExist(problem, interpretation, target); | ||
19169 | // Type consistency | ||
19170 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
19171 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
19172 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19173 | // the upper bound of the multiplicity should be considered. | ||
19174 | numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); | ||
19175 | check(numberOfExistingReferences < 1); | ||
19176 | // The reference is containment, then a new reference cannot be create if: | ||
19177 | // 1. Multiple parents | ||
19178 | neg find mustContains4(problem,interpretation,_,target); | ||
19179 | // 2. Circle in the containment hierarchy | ||
19180 | neg find mustTransitiveContains(source,target); | ||
19181 | } or { | ||
19182 | find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); | ||
19183 | } | ||
19184 | /** | ||
19185 | * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target) | ||
19186 | */ | ||
19187 | private pattern mustInRelationeUpperBound_reference_EGenericType( | ||
19188 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19189 | source: DefinedElement, target:DefinedElement) | ||
19190 | { | ||
19191 | find interpretation(problem,interpretation); | ||
19192 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19193 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); | ||
19194 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19195 | BinaryElementRelationLink.param1(link,source); | ||
19196 | BinaryElementRelationLink.param2(link,target); | ||
19197 | } | ||
19198 | /** | ||
19199 | * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target) | ||
19200 | */ | ||
19201 | private pattern mayInRelationeUpperBound_reference_EGenericType( | ||
19202 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19203 | source: DefinedElement, target:DefinedElement) | ||
19204 | { | ||
19205 | find interpretation(problem,interpretation); | ||
19206 | // The two endpoint of the link have to exist | ||
19207 | find mayExist(problem, interpretation, source); | ||
19208 | find mayExist(problem, interpretation, target); | ||
19209 | // Type consistency | ||
19210 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19211 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
19212 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19213 | // the upper bound of the multiplicity should be considered. | ||
19214 | numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); | ||
19215 | check(numberOfExistingReferences < 1); | ||
19216 | // The reference is containment, then a new reference cannot be create if: | ||
19217 | // 1. Multiple parents | ||
19218 | neg find mustContains4(problem,interpretation,_,target); | ||
19219 | // 2. Circle in the containment hierarchy | ||
19220 | neg find mustTransitiveContains(source,target); | ||
19221 | } or { | ||
19222 | find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); | ||
19223 | } | ||
19224 | /** | ||
19225 | * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) | ||
19226 | */ | ||
19227 | private pattern mustInRelationeTypeArguments_reference_EGenericType( | ||
19228 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19229 | source: DefinedElement, target:DefinedElement) | ||
19230 | { | ||
19231 | find interpretation(problem,interpretation); | ||
19232 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19233 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); | ||
19234 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19235 | BinaryElementRelationLink.param1(link,source); | ||
19236 | BinaryElementRelationLink.param2(link,target); | ||
19237 | } | ||
19238 | /** | ||
19239 | * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) | ||
19240 | */ | ||
19241 | private pattern mayInRelationeTypeArguments_reference_EGenericType( | ||
19242 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19243 | source: DefinedElement, target:DefinedElement) | ||
19244 | { | ||
19245 | find interpretation(problem,interpretation); | ||
19246 | // The two endpoint of the link have to exist | ||
19247 | find mayExist(problem, interpretation, source); | ||
19248 | find mayExist(problem, interpretation, target); | ||
19249 | // Type consistency | ||
19250 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19251 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
19252 | // The reference is containment, then a new reference cannot be create if: | ||
19253 | // 1. Multiple parents | ||
19254 | neg find mustContains4(problem,interpretation,_,target); | ||
19255 | // 2. Circle in the containment hierarchy | ||
19256 | neg find mustTransitiveContains(source,target); | ||
19257 | } or { | ||
19258 | find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); | ||
19259 | } | ||
19260 | /** | ||
19261 | * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target) | ||
19262 | */ | ||
19263 | private pattern mustInRelationeRawType_reference_EGenericType( | ||
19264 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19265 | source: DefinedElement, target:DefinedElement) | ||
19266 | { | ||
19267 | find interpretation(problem,interpretation); | ||
19268 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19269 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
19270 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19271 | BinaryElementRelationLink.param1(link,source); | ||
19272 | BinaryElementRelationLink.param2(link,target); | ||
19273 | } | ||
19274 | /** | ||
19275 | * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target) | ||
19276 | */ | ||
19277 | private pattern mayInRelationeRawType_reference_EGenericType( | ||
19278 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19279 | source: DefinedElement, target:DefinedElement) | ||
19280 | { | ||
19281 | find interpretation(problem,interpretation); | ||
19282 | // The two endpoint of the link have to exist | ||
19283 | find mayExist(problem, interpretation, source); | ||
19284 | find mayExist(problem, interpretation, target); | ||
19285 | // Type consistency | ||
19286 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19287 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
19288 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19289 | // the upper bound of the multiplicity should be considered. | ||
19290 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); | ||
19291 | check(numberOfExistingReferences < 1); | ||
19292 | } or { | ||
19293 | find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target); | ||
19294 | } | ||
19295 | /** | ||
19296 | * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) | ||
19297 | */ | ||
19298 | private pattern mustInRelationeLowerBound_reference_EGenericType( | ||
19299 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19300 | source: DefinedElement, target:DefinedElement) | ||
19301 | { | ||
19302 | find interpretation(problem,interpretation); | ||
19303 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19304 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); | ||
19305 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19306 | BinaryElementRelationLink.param1(link,source); | ||
19307 | BinaryElementRelationLink.param2(link,target); | ||
19308 | } | ||
19309 | /** | ||
19310 | * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) | ||
19311 | */ | ||
19312 | private pattern mayInRelationeLowerBound_reference_EGenericType( | ||
19313 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19314 | source: DefinedElement, target:DefinedElement) | ||
19315 | { | ||
19316 | find interpretation(problem,interpretation); | ||
19317 | // The two endpoint of the link have to exist | ||
19318 | find mayExist(problem, interpretation, source); | ||
19319 | find mayExist(problem, interpretation, target); | ||
19320 | // Type consistency | ||
19321 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19322 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
19323 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19324 | // the upper bound of the multiplicity should be considered. | ||
19325 | numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); | ||
19326 | check(numberOfExistingReferences < 1); | ||
19327 | // The reference is containment, then a new reference cannot be create if: | ||
19328 | // 1. Multiple parents | ||
19329 | neg find mustContains4(problem,interpretation,_,target); | ||
19330 | // 2. Circle in the containment hierarchy | ||
19331 | neg find mustTransitiveContains(source,target); | ||
19332 | } or { | ||
19333 | find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); | ||
19334 | } | ||
19335 | /** | ||
19336 | * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target) | ||
19337 | */ | ||
19338 | private pattern mustInRelationeTypeParameter_reference_EGenericType( | ||
19339 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19340 | source: DefinedElement, target:DefinedElement) | ||
19341 | { | ||
19342 | find interpretation(problem,interpretation); | ||
19343 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19344 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
19345 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19346 | BinaryElementRelationLink.param1(link,source); | ||
19347 | BinaryElementRelationLink.param2(link,target); | ||
19348 | } | ||
19349 | /** | ||
19350 | * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) | ||
19351 | */ | ||
19352 | private pattern mayInRelationeTypeParameter_reference_EGenericType( | ||
19353 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19354 | source: DefinedElement, target:DefinedElement) | ||
19355 | { | ||
19356 | find interpretation(problem,interpretation); | ||
19357 | // The two endpoint of the link have to exist | ||
19358 | find mayExist(problem, interpretation, source); | ||
19359 | find mayExist(problem, interpretation, target); | ||
19360 | // Type consistency | ||
19361 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19362 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
19363 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19364 | // the upper bound of the multiplicity should be considered. | ||
19365 | numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_); | ||
19366 | check(numberOfExistingReferences < 1); | ||
19367 | } or { | ||
19368 | find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target); | ||
19369 | } | ||
19370 | /** | ||
19371 | * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) | ||
19372 | */ | ||
19373 | private pattern mustInRelationeClassifier_reference_EGenericType( | ||
19374 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19375 | source: DefinedElement, target:DefinedElement) | ||
19376 | { | ||
19377 | find interpretation(problem,interpretation); | ||
19378 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19379 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
19380 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19381 | BinaryElementRelationLink.param1(link,source); | ||
19382 | BinaryElementRelationLink.param2(link,target); | ||
19383 | } | ||
19384 | /** | ||
19385 | * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) | ||
19386 | */ | ||
19387 | private pattern mayInRelationeClassifier_reference_EGenericType( | ||
19388 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19389 | source: DefinedElement, target:DefinedElement) | ||
19390 | { | ||
19391 | find interpretation(problem,interpretation); | ||
19392 | // The two endpoint of the link have to exist | ||
19393 | find mayExist(problem, interpretation, source); | ||
19394 | find mayExist(problem, interpretation, target); | ||
19395 | // Type consistency | ||
19396 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
19397 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
19398 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19399 | // the upper bound of the multiplicity should be considered. | ||
19400 | numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); | ||
19401 | check(numberOfExistingReferences < 1); | ||
19402 | } or { | ||
19403 | find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); | ||
19404 | } | ||
19405 | /** | ||
19406 | * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) | ||
19407 | */ | ||
19408 | private pattern mustInRelationeBounds_reference_ETypeParameter( | ||
19409 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19410 | source: DefinedElement, target:DefinedElement) | ||
19411 | { | ||
19412 | find interpretation(problem,interpretation); | ||
19413 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19414 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); | ||
19415 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19416 | BinaryElementRelationLink.param1(link,source); | ||
19417 | BinaryElementRelationLink.param2(link,target); | ||
19418 | } | ||
19419 | /** | ||
19420 | * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) | ||
19421 | */ | ||
19422 | private pattern mayInRelationeBounds_reference_ETypeParameter( | ||
19423 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19424 | source: DefinedElement, target:DefinedElement) | ||
19425 | { | ||
19426 | find interpretation(problem,interpretation); | ||
19427 | // The two endpoint of the link have to exist | ||
19428 | find mayExist(problem, interpretation, source); | ||
19429 | find mayExist(problem, interpretation, target); | ||
19430 | // Type consistency | ||
19431 | find mayInstanceOfETypeParameter_class(problem,interpretation,source); | ||
19432 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
19433 | // The reference is containment, then a new reference cannot be create if: | ||
19434 | // 1. Multiple parents | ||
19435 | neg find mustContains4(problem,interpretation,_,target); | ||
19436 | // 2. Circle in the containment hierarchy | ||
19437 | neg find mustTransitiveContains(source,target); | ||
19438 | } or { | ||
19439 | find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); | ||
19440 | } | ||
19441 | /** | ||
19442 | * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) | ||
19443 | */ | ||
19444 | private pattern mustInRelationiD_attribute_EAttribute( | ||
19445 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19446 | source: DefinedElement, target:DefinedElement) | ||
19447 | { | ||
19448 | find interpretation(problem,interpretation); | ||
19449 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19450 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
19451 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19452 | BinaryElementRelationLink.param1(link,source); | ||
19453 | BinaryElementRelationLink.param2(link,target); | ||
19454 | } | ||
19455 | /** | ||
19456 | * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) | ||
19457 | */ | ||
19458 | private pattern mayInRelationiD_attribute_EAttribute( | ||
19459 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19460 | source: DefinedElement, target:DefinedElement) | ||
19461 | { | ||
19462 | find interpretation(problem,interpretation); | ||
19463 | // The two endpoint of the link have to exist | ||
19464 | find mayExist(problem, interpretation, source); | ||
19465 | find mayExist(problem, interpretation, target); | ||
19466 | // Type consistency | ||
19467 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
19468 | BooleanElement(target); | ||
19469 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19470 | // the upper bound of the multiplicity should be considered. | ||
19471 | numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); | ||
19472 | check(numberOfExistingReferences < 1); | ||
19473 | } or { | ||
19474 | find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); | ||
19475 | } | ||
19476 | /** | ||
19477 | * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) | ||
19478 | */ | ||
19479 | private pattern mustInRelationsource_attribute_EAnnotation( | ||
19480 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19481 | source: DefinedElement, target:DefinedElement) | ||
19482 | { | ||
19483 | find interpretation(problem,interpretation); | ||
19484 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19485 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
19486 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19487 | BinaryElementRelationLink.param1(link,source); | ||
19488 | BinaryElementRelationLink.param2(link,target); | ||
19489 | } | ||
19490 | /** | ||
19491 | * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) | ||
19492 | */ | ||
19493 | private pattern mayInRelationsource_attribute_EAnnotation( | ||
19494 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19495 | source: DefinedElement, target:DefinedElement) | ||
19496 | { | ||
19497 | find interpretation(problem,interpretation); | ||
19498 | // The two endpoint of the link have to exist | ||
19499 | find mayExist(problem, interpretation, source); | ||
19500 | find mayExist(problem, interpretation, target); | ||
19501 | // Type consistency | ||
19502 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
19503 | StringElement(target); | ||
19504 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19505 | // the upper bound of the multiplicity should be considered. | ||
19506 | numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); | ||
19507 | check(numberOfExistingReferences < 1); | ||
19508 | } or { | ||
19509 | find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); | ||
19510 | } | ||
19511 | /** | ||
19512 | * Matcher for detecting tuples t where []abstract attribute EClass(source,target) | ||
19513 | */ | ||
19514 | private pattern mustInRelationabstract_attribute_EClass( | ||
19515 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19516 | source: DefinedElement, target:DefinedElement) | ||
19517 | { | ||
19518 | find interpretation(problem,interpretation); | ||
19519 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19520 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
19521 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19522 | BinaryElementRelationLink.param1(link,source); | ||
19523 | BinaryElementRelationLink.param2(link,target); | ||
19524 | } | ||
19525 | /** | ||
19526 | * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) | ||
19527 | */ | ||
19528 | private pattern mayInRelationabstract_attribute_EClass( | ||
19529 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19530 | source: DefinedElement, target:DefinedElement) | ||
19531 | { | ||
19532 | find interpretation(problem,interpretation); | ||
19533 | // The two endpoint of the link have to exist | ||
19534 | find mayExist(problem, interpretation, source); | ||
19535 | find mayExist(problem, interpretation, target); | ||
19536 | // Type consistency | ||
19537 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
19538 | BooleanElement(target); | ||
19539 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19540 | // the upper bound of the multiplicity should be considered. | ||
19541 | numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); | ||
19542 | check(numberOfExistingReferences < 1); | ||
19543 | } or { | ||
19544 | find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); | ||
19545 | } | ||
19546 | /** | ||
19547 | * Matcher for detecting tuples t where []interface attribute EClass(source,target) | ||
19548 | */ | ||
19549 | private pattern mustInRelationinterface_attribute_EClass( | ||
19550 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19551 | source: DefinedElement, target:DefinedElement) | ||
19552 | { | ||
19553 | find interpretation(problem,interpretation); | ||
19554 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19555 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
19556 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19557 | BinaryElementRelationLink.param1(link,source); | ||
19558 | BinaryElementRelationLink.param2(link,target); | ||
19559 | } | ||
19560 | /** | ||
19561 | * Matcher for detecting tuples t where <>interface attribute EClass(source,target) | ||
19562 | */ | ||
19563 | private pattern mayInRelationinterface_attribute_EClass( | ||
19564 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19565 | source: DefinedElement, target:DefinedElement) | ||
19566 | { | ||
19567 | find interpretation(problem,interpretation); | ||
19568 | // The two endpoint of the link have to exist | ||
19569 | find mayExist(problem, interpretation, source); | ||
19570 | find mayExist(problem, interpretation, target); | ||
19571 | // Type consistency | ||
19572 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
19573 | BooleanElement(target); | ||
19574 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19575 | // the upper bound of the multiplicity should be considered. | ||
19576 | numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); | ||
19577 | check(numberOfExistingReferences < 1); | ||
19578 | } or { | ||
19579 | find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); | ||
19580 | } | ||
19581 | /** | ||
19582 | * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) | ||
19583 | */ | ||
19584 | private pattern mustInRelationinstanceClassName_attribute_EClassifier( | ||
19585 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19586 | source: DefinedElement, target:DefinedElement) | ||
19587 | { | ||
19588 | find interpretation(problem,interpretation); | ||
19589 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19590 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
19591 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19592 | BinaryElementRelationLink.param1(link,source); | ||
19593 | BinaryElementRelationLink.param2(link,target); | ||
19594 | } | ||
19595 | /** | ||
19596 | * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) | ||
19597 | */ | ||
19598 | private pattern mayInRelationinstanceClassName_attribute_EClassifier( | ||
19599 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19600 | source: DefinedElement, target:DefinedElement) | ||
19601 | { | ||
19602 | find interpretation(problem,interpretation); | ||
19603 | // The two endpoint of the link have to exist | ||
19604 | find mayExist(problem, interpretation, source); | ||
19605 | find mayExist(problem, interpretation, target); | ||
19606 | // Type consistency | ||
19607 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
19608 | StringElement(target); | ||
19609 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19610 | // the upper bound of the multiplicity should be considered. | ||
19611 | numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); | ||
19612 | check(numberOfExistingReferences < 1); | ||
19613 | } or { | ||
19614 | find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); | ||
19615 | } | ||
19616 | /** | ||
19617 | * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) | ||
19618 | */ | ||
19619 | private pattern mustInRelationinstanceTypeName_attribute_EClassifier( | ||
19620 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19621 | source: DefinedElement, target:DefinedElement) | ||
19622 | { | ||
19623 | find interpretation(problem,interpretation); | ||
19624 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19625 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
19626 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19627 | BinaryElementRelationLink.param1(link,source); | ||
19628 | BinaryElementRelationLink.param2(link,target); | ||
19629 | } | ||
19630 | /** | ||
19631 | * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) | ||
19632 | */ | ||
19633 | private pattern mayInRelationinstanceTypeName_attribute_EClassifier( | ||
19634 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19635 | source: DefinedElement, target:DefinedElement) | ||
19636 | { | ||
19637 | find interpretation(problem,interpretation); | ||
19638 | // The two endpoint of the link have to exist | ||
19639 | find mayExist(problem, interpretation, source); | ||
19640 | find mayExist(problem, interpretation, target); | ||
19641 | // Type consistency | ||
19642 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
19643 | StringElement(target); | ||
19644 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19645 | // the upper bound of the multiplicity should be considered. | ||
19646 | numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_); | ||
19647 | check(numberOfExistingReferences < 1); | ||
19648 | } or { | ||
19649 | find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); | ||
19650 | } | ||
19651 | /** | ||
19652 | * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) | ||
19653 | */ | ||
19654 | private pattern mustInRelationserializable_attribute_EDataType( | ||
19655 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19656 | source: DefinedElement, target:DefinedElement) | ||
19657 | { | ||
19658 | find interpretation(problem,interpretation); | ||
19659 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19660 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
19661 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19662 | BinaryElementRelationLink.param1(link,source); | ||
19663 | BinaryElementRelationLink.param2(link,target); | ||
19664 | } | ||
19665 | /** | ||
19666 | * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) | ||
19667 | */ | ||
19668 | private pattern mayInRelationserializable_attribute_EDataType( | ||
19669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19670 | source: DefinedElement, target:DefinedElement) | ||
19671 | { | ||
19672 | find interpretation(problem,interpretation); | ||
19673 | // The two endpoint of the link have to exist | ||
19674 | find mayExist(problem, interpretation, source); | ||
19675 | find mayExist(problem, interpretation, target); | ||
19676 | // Type consistency | ||
19677 | find mayInstanceOfEDataType_class(problem,interpretation,source); | ||
19678 | BooleanElement(target); | ||
19679 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19680 | // the upper bound of the multiplicity should be considered. | ||
19681 | numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); | ||
19682 | check(numberOfExistingReferences < 1); | ||
19683 | } or { | ||
19684 | find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); | ||
19685 | } | ||
19686 | /** | ||
19687 | * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) | ||
19688 | */ | ||
19689 | private pattern mustInRelationvalue_attribute_EEnumLiteral( | ||
19690 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19691 | source: DefinedElement, target:DefinedElement) | ||
19692 | { | ||
19693 | find interpretation(problem,interpretation); | ||
19694 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19695 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
19696 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19697 | BinaryElementRelationLink.param1(link,source); | ||
19698 | BinaryElementRelationLink.param2(link,target); | ||
19699 | } | ||
19700 | /** | ||
19701 | * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) | ||
19702 | */ | ||
19703 | private pattern mayInRelationvalue_attribute_EEnumLiteral( | ||
19704 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19705 | source: DefinedElement, target:DefinedElement) | ||
19706 | { | ||
19707 | find interpretation(problem,interpretation); | ||
19708 | // The two endpoint of the link have to exist | ||
19709 | find mayExist(problem, interpretation, source); | ||
19710 | find mayExist(problem, interpretation, target); | ||
19711 | // Type consistency | ||
19712 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
19713 | IntegerElement(target); | ||
19714 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19715 | // the upper bound of the multiplicity should be considered. | ||
19716 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
19717 | check(numberOfExistingReferences < 1); | ||
19718 | } or { | ||
19719 | find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
19720 | } | ||
19721 | /** | ||
19722 | * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) | ||
19723 | */ | ||
19724 | private pattern mustInRelationliteral_attribute_EEnumLiteral( | ||
19725 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19726 | source: DefinedElement, target:DefinedElement) | ||
19727 | { | ||
19728 | find interpretation(problem,interpretation); | ||
19729 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19730 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
19731 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19732 | BinaryElementRelationLink.param1(link,source); | ||
19733 | BinaryElementRelationLink.param2(link,target); | ||
19734 | } | ||
19735 | /** | ||
19736 | * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) | ||
19737 | */ | ||
19738 | private pattern mayInRelationliteral_attribute_EEnumLiteral( | ||
19739 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19740 | source: DefinedElement, target:DefinedElement) | ||
19741 | { | ||
19742 | find interpretation(problem,interpretation); | ||
19743 | // The two endpoint of the link have to exist | ||
19744 | find mayExist(problem, interpretation, source); | ||
19745 | find mayExist(problem, interpretation, target); | ||
19746 | // Type consistency | ||
19747 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
19748 | StringElement(target); | ||
19749 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19750 | // the upper bound of the multiplicity should be considered. | ||
19751 | numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
19752 | check(numberOfExistingReferences < 1); | ||
19753 | } or { | ||
19754 | find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
19755 | } | ||
19756 | /** | ||
19757 | * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) | ||
19758 | */ | ||
19759 | private pattern mustInRelationname_attribute_ENamedElement( | ||
19760 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19761 | source: DefinedElement, target:DefinedElement) | ||
19762 | { | ||
19763 | find interpretation(problem,interpretation); | ||
19764 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19765 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
19766 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19767 | BinaryElementRelationLink.param1(link,source); | ||
19768 | BinaryElementRelationLink.param2(link,target); | ||
19769 | } | ||
19770 | /** | ||
19771 | * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) | ||
19772 | */ | ||
19773 | private pattern mayInRelationname_attribute_ENamedElement( | ||
19774 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19775 | source: DefinedElement, target:DefinedElement) | ||
19776 | { | ||
19777 | find interpretation(problem,interpretation); | ||
19778 | // The two endpoint of the link have to exist | ||
19779 | find mayExist(problem, interpretation, source); | ||
19780 | find mayExist(problem, interpretation, target); | ||
19781 | // Type consistency | ||
19782 | find mayInstanceOfENamedElement_class(problem,interpretation,source); | ||
19783 | StringElement(target); | ||
19784 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19785 | // the upper bound of the multiplicity should be considered. | ||
19786 | numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); | ||
19787 | check(numberOfExistingReferences < 1); | ||
19788 | } or { | ||
19789 | find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); | ||
19790 | } | ||
19791 | /** | ||
19792 | * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) | ||
19793 | */ | ||
19794 | private pattern mustInRelationnsURI_attribute_EPackage( | ||
19795 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19796 | source: DefinedElement, target:DefinedElement) | ||
19797 | { | ||
19798 | find interpretation(problem,interpretation); | ||
19799 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19800 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
19801 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19802 | BinaryElementRelationLink.param1(link,source); | ||
19803 | BinaryElementRelationLink.param2(link,target); | ||
19804 | } | ||
19805 | /** | ||
19806 | * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) | ||
19807 | */ | ||
19808 | private pattern mayInRelationnsURI_attribute_EPackage( | ||
19809 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19810 | source: DefinedElement, target:DefinedElement) | ||
19811 | { | ||
19812 | find interpretation(problem,interpretation); | ||
19813 | // The two endpoint of the link have to exist | ||
19814 | find mayExist(problem, interpretation, source); | ||
19815 | find mayExist(problem, interpretation, target); | ||
19816 | // Type consistency | ||
19817 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
19818 | StringElement(target); | ||
19819 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19820 | // the upper bound of the multiplicity should be considered. | ||
19821 | numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); | ||
19822 | check(numberOfExistingReferences < 1); | ||
19823 | } or { | ||
19824 | find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); | ||
19825 | } | ||
19826 | /** | ||
19827 | * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) | ||
19828 | */ | ||
19829 | private pattern mustInRelationnsPrefix_attribute_EPackage( | ||
19830 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19831 | source: DefinedElement, target:DefinedElement) | ||
19832 | { | ||
19833 | find interpretation(problem,interpretation); | ||
19834 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19835 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
19836 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19837 | BinaryElementRelationLink.param1(link,source); | ||
19838 | BinaryElementRelationLink.param2(link,target); | ||
19839 | } | ||
19840 | /** | ||
19841 | * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) | ||
19842 | */ | ||
19843 | private pattern mayInRelationnsPrefix_attribute_EPackage( | ||
19844 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19845 | source: DefinedElement, target:DefinedElement) | ||
19846 | { | ||
19847 | find interpretation(problem,interpretation); | ||
19848 | // The two endpoint of the link have to exist | ||
19849 | find mayExist(problem, interpretation, source); | ||
19850 | find mayExist(problem, interpretation, target); | ||
19851 | // Type consistency | ||
19852 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
19853 | StringElement(target); | ||
19854 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19855 | // the upper bound of the multiplicity should be considered. | ||
19856 | numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); | ||
19857 | check(numberOfExistingReferences < 1); | ||
19858 | } or { | ||
19859 | find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); | ||
19860 | } | ||
19861 | /** | ||
19862 | * Matcher for detecting tuples t where []containment attribute EReference(source,target) | ||
19863 | */ | ||
19864 | private pattern mustInRelationcontainment_attribute_EReference( | ||
19865 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19866 | source: DefinedElement, target:DefinedElement) | ||
19867 | { | ||
19868 | find interpretation(problem,interpretation); | ||
19869 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19870 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
19871 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19872 | BinaryElementRelationLink.param1(link,source); | ||
19873 | BinaryElementRelationLink.param2(link,target); | ||
19874 | } | ||
19875 | /** | ||
19876 | * Matcher for detecting tuples t where <>containment attribute EReference(source,target) | ||
19877 | */ | ||
19878 | private pattern mayInRelationcontainment_attribute_EReference( | ||
19879 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19880 | source: DefinedElement, target:DefinedElement) | ||
19881 | { | ||
19882 | find interpretation(problem,interpretation); | ||
19883 | // The two endpoint of the link have to exist | ||
19884 | find mayExist(problem, interpretation, source); | ||
19885 | find mayExist(problem, interpretation, target); | ||
19886 | // Type consistency | ||
19887 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
19888 | BooleanElement(target); | ||
19889 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19890 | // the upper bound of the multiplicity should be considered. | ||
19891 | numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); | ||
19892 | check(numberOfExistingReferences < 1); | ||
19893 | } or { | ||
19894 | find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); | ||
19895 | } | ||
19896 | /** | ||
19897 | * Matcher for detecting tuples t where []container attribute EReference(source,target) | ||
19898 | */ | ||
19899 | private pattern mustInRelationcontainer_attribute_EReference( | ||
19900 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19901 | source: DefinedElement, target:DefinedElement) | ||
19902 | { | ||
19903 | find interpretation(problem,interpretation); | ||
19904 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19905 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
19906 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19907 | BinaryElementRelationLink.param1(link,source); | ||
19908 | BinaryElementRelationLink.param2(link,target); | ||
19909 | } | ||
19910 | /** | ||
19911 | * Matcher for detecting tuples t where <>container attribute EReference(source,target) | ||
19912 | */ | ||
19913 | private pattern mayInRelationcontainer_attribute_EReference( | ||
19914 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19915 | source: DefinedElement, target:DefinedElement) | ||
19916 | { | ||
19917 | find interpretation(problem,interpretation); | ||
19918 | // The two endpoint of the link have to exist | ||
19919 | find mayExist(problem, interpretation, source); | ||
19920 | find mayExist(problem, interpretation, target); | ||
19921 | // Type consistency | ||
19922 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
19923 | BooleanElement(target); | ||
19924 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19925 | // the upper bound of the multiplicity should be considered. | ||
19926 | numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); | ||
19927 | check(numberOfExistingReferences < 1); | ||
19928 | } or { | ||
19929 | find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); | ||
19930 | } | ||
19931 | /** | ||
19932 | * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) | ||
19933 | */ | ||
19934 | private pattern mustInRelationresolveProxies_attribute_EReference( | ||
19935 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19936 | source: DefinedElement, target:DefinedElement) | ||
19937 | { | ||
19938 | find interpretation(problem,interpretation); | ||
19939 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19940 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
19941 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19942 | BinaryElementRelationLink.param1(link,source); | ||
19943 | BinaryElementRelationLink.param2(link,target); | ||
19944 | } | ||
19945 | /** | ||
19946 | * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) | ||
19947 | */ | ||
19948 | private pattern mayInRelationresolveProxies_attribute_EReference( | ||
19949 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19950 | source: DefinedElement, target:DefinedElement) | ||
19951 | { | ||
19952 | find interpretation(problem,interpretation); | ||
19953 | // The two endpoint of the link have to exist | ||
19954 | find mayExist(problem, interpretation, source); | ||
19955 | find mayExist(problem, interpretation, target); | ||
19956 | // Type consistency | ||
19957 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
19958 | BooleanElement(target); | ||
19959 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19960 | // the upper bound of the multiplicity should be considered. | ||
19961 | numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); | ||
19962 | check(numberOfExistingReferences < 1); | ||
19963 | } or { | ||
19964 | find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); | ||
19965 | } | ||
19966 | /** | ||
19967 | * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) | ||
19968 | */ | ||
19969 | private pattern mustInRelationchangeable_attribute_EStructuralFeature( | ||
19970 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19971 | source: DefinedElement, target:DefinedElement) | ||
19972 | { | ||
19973 | find interpretation(problem,interpretation); | ||
19974 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
19975 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
19976 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
19977 | BinaryElementRelationLink.param1(link,source); | ||
19978 | BinaryElementRelationLink.param2(link,target); | ||
19979 | } | ||
19980 | /** | ||
19981 | * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) | ||
19982 | */ | ||
19983 | private pattern mayInRelationchangeable_attribute_EStructuralFeature( | ||
19984 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
19985 | source: DefinedElement, target:DefinedElement) | ||
19986 | { | ||
19987 | find interpretation(problem,interpretation); | ||
19988 | // The two endpoint of the link have to exist | ||
19989 | find mayExist(problem, interpretation, source); | ||
19990 | find mayExist(problem, interpretation, target); | ||
19991 | // Type consistency | ||
19992 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
19993 | BooleanElement(target); | ||
19994 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
19995 | // the upper bound of the multiplicity should be considered. | ||
19996 | numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
19997 | check(numberOfExistingReferences < 1); | ||
19998 | } or { | ||
19999 | find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20000 | } | ||
20001 | /** | ||
20002 | * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) | ||
20003 | */ | ||
20004 | private pattern mustInRelationvolatile_attribute_EStructuralFeature( | ||
20005 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20006 | source: DefinedElement, target:DefinedElement) | ||
20007 | { | ||
20008 | find interpretation(problem,interpretation); | ||
20009 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20010 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
20011 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20012 | BinaryElementRelationLink.param1(link,source); | ||
20013 | BinaryElementRelationLink.param2(link,target); | ||
20014 | } | ||
20015 | /** | ||
20016 | * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) | ||
20017 | */ | ||
20018 | private pattern mayInRelationvolatile_attribute_EStructuralFeature( | ||
20019 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20020 | source: DefinedElement, target:DefinedElement) | ||
20021 | { | ||
20022 | find interpretation(problem,interpretation); | ||
20023 | // The two endpoint of the link have to exist | ||
20024 | find mayExist(problem, interpretation, source); | ||
20025 | find mayExist(problem, interpretation, target); | ||
20026 | // Type consistency | ||
20027 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
20028 | BooleanElement(target); | ||
20029 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20030 | // the upper bound of the multiplicity should be considered. | ||
20031 | numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
20032 | check(numberOfExistingReferences < 1); | ||
20033 | } or { | ||
20034 | find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20035 | } | ||
20036 | /** | ||
20037 | * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) | ||
20038 | */ | ||
20039 | private pattern mustInRelationtransient_attribute_EStructuralFeature( | ||
20040 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20041 | source: DefinedElement, target:DefinedElement) | ||
20042 | { | ||
20043 | find interpretation(problem,interpretation); | ||
20044 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20045 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
20046 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20047 | BinaryElementRelationLink.param1(link,source); | ||
20048 | BinaryElementRelationLink.param2(link,target); | ||
20049 | } | ||
20050 | /** | ||
20051 | * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) | ||
20052 | */ | ||
20053 | private pattern mayInRelationtransient_attribute_EStructuralFeature( | ||
20054 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20055 | source: DefinedElement, target:DefinedElement) | ||
20056 | { | ||
20057 | find interpretation(problem,interpretation); | ||
20058 | // The two endpoint of the link have to exist | ||
20059 | find mayExist(problem, interpretation, source); | ||
20060 | find mayExist(problem, interpretation, target); | ||
20061 | // Type consistency | ||
20062 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
20063 | BooleanElement(target); | ||
20064 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20065 | // the upper bound of the multiplicity should be considered. | ||
20066 | numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
20067 | check(numberOfExistingReferences < 1); | ||
20068 | } or { | ||
20069 | find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20070 | } | ||
20071 | /** | ||
20072 | * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) | ||
20073 | */ | ||
20074 | private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
20075 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20076 | source: DefinedElement, target:DefinedElement) | ||
20077 | { | ||
20078 | find interpretation(problem,interpretation); | ||
20079 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20080 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
20081 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20082 | BinaryElementRelationLink.param1(link,source); | ||
20083 | BinaryElementRelationLink.param2(link,target); | ||
20084 | } | ||
20085 | /** | ||
20086 | * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) | ||
20087 | */ | ||
20088 | private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
20089 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20090 | source: DefinedElement, target:DefinedElement) | ||
20091 | { | ||
20092 | find interpretation(problem,interpretation); | ||
20093 | // The two endpoint of the link have to exist | ||
20094 | find mayExist(problem, interpretation, source); | ||
20095 | find mayExist(problem, interpretation, target); | ||
20096 | // Type consistency | ||
20097 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
20098 | StringElement(target); | ||
20099 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20100 | // the upper bound of the multiplicity should be considered. | ||
20101 | numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
20102 | check(numberOfExistingReferences < 1); | ||
20103 | } or { | ||
20104 | find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20105 | } | ||
20106 | /** | ||
20107 | * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) | ||
20108 | */ | ||
20109 | private pattern mustInRelationunsettable_attribute_EStructuralFeature( | ||
20110 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20111 | source: DefinedElement, target:DefinedElement) | ||
20112 | { | ||
20113 | find interpretation(problem,interpretation); | ||
20114 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20115 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
20116 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20117 | BinaryElementRelationLink.param1(link,source); | ||
20118 | BinaryElementRelationLink.param2(link,target); | ||
20119 | } | ||
20120 | /** | ||
20121 | * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) | ||
20122 | */ | ||
20123 | private pattern mayInRelationunsettable_attribute_EStructuralFeature( | ||
20124 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20125 | source: DefinedElement, target:DefinedElement) | ||
20126 | { | ||
20127 | find interpretation(problem,interpretation); | ||
20128 | // The two endpoint of the link have to exist | ||
20129 | find mayExist(problem, interpretation, source); | ||
20130 | find mayExist(problem, interpretation, target); | ||
20131 | // Type consistency | ||
20132 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
20133 | BooleanElement(target); | ||
20134 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20135 | // the upper bound of the multiplicity should be considered. | ||
20136 | numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
20137 | check(numberOfExistingReferences < 1); | ||
20138 | } or { | ||
20139 | find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20140 | } | ||
20141 | /** | ||
20142 | * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) | ||
20143 | */ | ||
20144 | private pattern mustInRelationderived_attribute_EStructuralFeature( | ||
20145 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20146 | source: DefinedElement, target:DefinedElement) | ||
20147 | { | ||
20148 | find interpretation(problem,interpretation); | ||
20149 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20150 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
20151 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20152 | BinaryElementRelationLink.param1(link,source); | ||
20153 | BinaryElementRelationLink.param2(link,target); | ||
20154 | } | ||
20155 | /** | ||
20156 | * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) | ||
20157 | */ | ||
20158 | private pattern mayInRelationderived_attribute_EStructuralFeature( | ||
20159 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20160 | source: DefinedElement, target:DefinedElement) | ||
20161 | { | ||
20162 | find interpretation(problem,interpretation); | ||
20163 | // The two endpoint of the link have to exist | ||
20164 | find mayExist(problem, interpretation, source); | ||
20165 | find mayExist(problem, interpretation, target); | ||
20166 | // Type consistency | ||
20167 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
20168 | BooleanElement(target); | ||
20169 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20170 | // the upper bound of the multiplicity should be considered. | ||
20171 | numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
20172 | check(numberOfExistingReferences < 1); | ||
20173 | } or { | ||
20174 | find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
20175 | } | ||
20176 | /** | ||
20177 | * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) | ||
20178 | */ | ||
20179 | private pattern mustInRelationordered_attribute_ETypedElement( | ||
20180 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20181 | source: DefinedElement, target:DefinedElement) | ||
20182 | { | ||
20183 | find interpretation(problem,interpretation); | ||
20184 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20185 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
20186 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20187 | BinaryElementRelationLink.param1(link,source); | ||
20188 | BinaryElementRelationLink.param2(link,target); | ||
20189 | } | ||
20190 | /** | ||
20191 | * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) | ||
20192 | */ | ||
20193 | private pattern mayInRelationordered_attribute_ETypedElement( | ||
20194 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20195 | source: DefinedElement, target:DefinedElement) | ||
20196 | { | ||
20197 | find interpretation(problem,interpretation); | ||
20198 | // The two endpoint of the link have to exist | ||
20199 | find mayExist(problem, interpretation, source); | ||
20200 | find mayExist(problem, interpretation, target); | ||
20201 | // Type consistency | ||
20202 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20203 | BooleanElement(target); | ||
20204 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20205 | // the upper bound of the multiplicity should be considered. | ||
20206 | numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); | ||
20207 | check(numberOfExistingReferences < 1); | ||
20208 | } or { | ||
20209 | find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); | ||
20210 | } | ||
20211 | /** | ||
20212 | * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) | ||
20213 | */ | ||
20214 | private pattern mustInRelationunique_attribute_ETypedElement( | ||
20215 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20216 | source: DefinedElement, target:DefinedElement) | ||
20217 | { | ||
20218 | find interpretation(problem,interpretation); | ||
20219 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20220 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
20221 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20222 | BinaryElementRelationLink.param1(link,source); | ||
20223 | BinaryElementRelationLink.param2(link,target); | ||
20224 | } | ||
20225 | /** | ||
20226 | * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) | ||
20227 | */ | ||
20228 | private pattern mayInRelationunique_attribute_ETypedElement( | ||
20229 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20230 | source: DefinedElement, target:DefinedElement) | ||
20231 | { | ||
20232 | find interpretation(problem,interpretation); | ||
20233 | // The two endpoint of the link have to exist | ||
20234 | find mayExist(problem, interpretation, source); | ||
20235 | find mayExist(problem, interpretation, target); | ||
20236 | // Type consistency | ||
20237 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20238 | BooleanElement(target); | ||
20239 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20240 | // the upper bound of the multiplicity should be considered. | ||
20241 | numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); | ||
20242 | check(numberOfExistingReferences < 1); | ||
20243 | } or { | ||
20244 | find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); | ||
20245 | } | ||
20246 | /** | ||
20247 | * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) | ||
20248 | */ | ||
20249 | private pattern mustInRelationlowerBound_attribute_ETypedElement( | ||
20250 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20251 | source: DefinedElement, target:DefinedElement) | ||
20252 | { | ||
20253 | find interpretation(problem,interpretation); | ||
20254 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20255 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
20256 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20257 | BinaryElementRelationLink.param1(link,source); | ||
20258 | BinaryElementRelationLink.param2(link,target); | ||
20259 | } | ||
20260 | /** | ||
20261 | * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) | ||
20262 | */ | ||
20263 | private pattern mayInRelationlowerBound_attribute_ETypedElement( | ||
20264 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20265 | source: DefinedElement, target:DefinedElement) | ||
20266 | { | ||
20267 | find interpretation(problem,interpretation); | ||
20268 | // The two endpoint of the link have to exist | ||
20269 | find mayExist(problem, interpretation, source); | ||
20270 | find mayExist(problem, interpretation, target); | ||
20271 | // Type consistency | ||
20272 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20273 | IntegerElement(target); | ||
20274 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20275 | // the upper bound of the multiplicity should be considered. | ||
20276 | numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
20277 | check(numberOfExistingReferences < 1); | ||
20278 | } or { | ||
20279 | find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
20280 | } | ||
20281 | /** | ||
20282 | * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) | ||
20283 | */ | ||
20284 | private pattern mustInRelationupperBound_attribute_ETypedElement( | ||
20285 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20286 | source: DefinedElement, target:DefinedElement) | ||
20287 | { | ||
20288 | find interpretation(problem,interpretation); | ||
20289 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20290 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
20291 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20292 | BinaryElementRelationLink.param1(link,source); | ||
20293 | BinaryElementRelationLink.param2(link,target); | ||
20294 | } | ||
20295 | /** | ||
20296 | * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) | ||
20297 | */ | ||
20298 | private pattern mayInRelationupperBound_attribute_ETypedElement( | ||
20299 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20300 | source: DefinedElement, target:DefinedElement) | ||
20301 | { | ||
20302 | find interpretation(problem,interpretation); | ||
20303 | // The two endpoint of the link have to exist | ||
20304 | find mayExist(problem, interpretation, source); | ||
20305 | find mayExist(problem, interpretation, target); | ||
20306 | // Type consistency | ||
20307 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20308 | IntegerElement(target); | ||
20309 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20310 | // the upper bound of the multiplicity should be considered. | ||
20311 | numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
20312 | check(numberOfExistingReferences < 1); | ||
20313 | } or { | ||
20314 | find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
20315 | } | ||
20316 | /** | ||
20317 | * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) | ||
20318 | */ | ||
20319 | private pattern mustInRelationmany_attribute_ETypedElement( | ||
20320 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20321 | source: DefinedElement, target:DefinedElement) | ||
20322 | { | ||
20323 | find interpretation(problem,interpretation); | ||
20324 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20325 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
20326 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20327 | BinaryElementRelationLink.param1(link,source); | ||
20328 | BinaryElementRelationLink.param2(link,target); | ||
20329 | } | ||
20330 | /** | ||
20331 | * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) | ||
20332 | */ | ||
20333 | private pattern mayInRelationmany_attribute_ETypedElement( | ||
20334 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20335 | source: DefinedElement, target:DefinedElement) | ||
20336 | { | ||
20337 | find interpretation(problem,interpretation); | ||
20338 | // The two endpoint of the link have to exist | ||
20339 | find mayExist(problem, interpretation, source); | ||
20340 | find mayExist(problem, interpretation, target); | ||
20341 | // Type consistency | ||
20342 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20343 | BooleanElement(target); | ||
20344 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20345 | // the upper bound of the multiplicity should be considered. | ||
20346 | numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); | ||
20347 | check(numberOfExistingReferences < 1); | ||
20348 | } or { | ||
20349 | find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); | ||
20350 | } | ||
20351 | /** | ||
20352 | * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) | ||
20353 | */ | ||
20354 | private pattern mustInRelationrequired_attribute_ETypedElement( | ||
20355 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20356 | source: DefinedElement, target:DefinedElement) | ||
20357 | { | ||
20358 | find interpretation(problem,interpretation); | ||
20359 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20360 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
20361 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20362 | BinaryElementRelationLink.param1(link,source); | ||
20363 | BinaryElementRelationLink.param2(link,target); | ||
20364 | } | ||
20365 | /** | ||
20366 | * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) | ||
20367 | */ | ||
20368 | private pattern mayInRelationrequired_attribute_ETypedElement( | ||
20369 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20370 | source: DefinedElement, target:DefinedElement) | ||
20371 | { | ||
20372 | find interpretation(problem,interpretation); | ||
20373 | // The two endpoint of the link have to exist | ||
20374 | find mayExist(problem, interpretation, source); | ||
20375 | find mayExist(problem, interpretation, target); | ||
20376 | // Type consistency | ||
20377 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
20378 | BooleanElement(target); | ||
20379 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20380 | // the upper bound of the multiplicity should be considered. | ||
20381 | numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); | ||
20382 | check(numberOfExistingReferences < 1); | ||
20383 | } or { | ||
20384 | find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); | ||
20385 | } | ||
20386 | /** | ||
20387 | * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) | ||
20388 | */ | ||
20389 | private pattern mustInRelationkey_attribute_EStringToStringMapEntry( | ||
20390 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20391 | source: DefinedElement, target:DefinedElement) | ||
20392 | { | ||
20393 | find interpretation(problem,interpretation); | ||
20394 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20395 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
20396 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20397 | BinaryElementRelationLink.param1(link,source); | ||
20398 | BinaryElementRelationLink.param2(link,target); | ||
20399 | } | ||
20400 | /** | ||
20401 | * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) | ||
20402 | */ | ||
20403 | private pattern mayInRelationkey_attribute_EStringToStringMapEntry( | ||
20404 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20405 | source: DefinedElement, target:DefinedElement) | ||
20406 | { | ||
20407 | find interpretation(problem,interpretation); | ||
20408 | // The two endpoint of the link have to exist | ||
20409 | find mayExist(problem, interpretation, source); | ||
20410 | find mayExist(problem, interpretation, target); | ||
20411 | // Type consistency | ||
20412 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
20413 | StringElement(target); | ||
20414 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20415 | // the upper bound of the multiplicity should be considered. | ||
20416 | numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
20417 | check(numberOfExistingReferences < 1); | ||
20418 | } or { | ||
20419 | find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
20420 | } | ||
20421 | /** | ||
20422 | * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) | ||
20423 | */ | ||
20424 | private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( | ||
20425 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20426 | source: DefinedElement, target:DefinedElement) | ||
20427 | { | ||
20428 | find interpretation(problem,interpretation); | ||
20429 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20430 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
20431 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
20432 | BinaryElementRelationLink.param1(link,source); | ||
20433 | BinaryElementRelationLink.param2(link,target); | ||
20434 | } | ||
20435 | /** | ||
20436 | * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) | ||
20437 | */ | ||
20438 | private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( | ||
20439 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20440 | source: DefinedElement, target:DefinedElement) | ||
20441 | { | ||
20442 | find interpretation(problem,interpretation); | ||
20443 | // The two endpoint of the link have to exist | ||
20444 | find mayExist(problem, interpretation, source); | ||
20445 | find mayExist(problem, interpretation, target); | ||
20446 | // Type consistency | ||
20447 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
20448 | StringElement(target); | ||
20449 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
20450 | // the upper bound of the multiplicity should be considered. | ||
20451 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
20452 | check(numberOfExistingReferences < 1); | ||
20453 | } or { | ||
20454 | find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
20455 | } | ||
20456 | |||
20457 | ////////// | ||
20458 | // 1.3 Relation Definition Indexers | ||
20459 | ////////// | ||
20460 | |||
20461 | ////////// | ||
20462 | // 1.4 Containment Indexer | ||
20463 | ////////// | ||
20464 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
20465 | find mustContains4(_,_,source,target); | ||
20466 | } | ||
20467 | |||
20468 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
20469 | source: DefinedElement, target: DefinedElement) | ||
20470 | { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or | ||
20471 | |||
20472 | { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or | ||
20473 | |||
20474 | { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or | ||
20475 | |||
20476 | { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or | ||
20477 | |||
20478 | { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or | ||
20479 | |||
20480 | { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or | ||
20481 | |||
20482 | { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or | ||
20483 | |||
20484 | { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or | ||
20485 | |||
20486 | { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
20487 | |||
20488 | { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
20489 | |||
20490 | { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or | ||
20491 | |||
20492 | { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or | ||
20493 | |||
20494 | { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or | ||
20495 | |||
20496 | { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or | ||
20497 | |||
20498 | { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
20499 | |||
20500 | { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or | ||
20501 | |||
20502 | { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
20503 | |||
20504 | { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } | ||
20505 | |||
20506 | private pattern mustTransitiveContains(source,target) { | ||
20507 | find mustContains2+(source,target); | ||
20508 | } | ||
20509 | |||
20510 | ////////// | ||
20511 | // 2. Invalidation Indexers | ||
20512 | ////////// | ||
20513 | // 2.1 Invalidated by WF Queries | ||
20514 | ////////// | ||
20515 | |||
20516 | ////////// | ||
20517 | // 3. Unfinishedness Indexers | ||
20518 | ////////// | ||
20519 | // 3.1 Unfinishedness Measured by Multiplicity | ||
20520 | ////////// | ||
20521 | pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
20522 | find interpretation(problem,interpretation); | ||
20523 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20524 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
20525 | find mustInstanceOfEAttribute_class(problem,interpretation,object); | ||
20526 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); | ||
20527 | check(numberOfExistingReferences < 1); | ||
20528 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
20529 | } | ||
20530 | pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
20531 | find interpretation(problem,interpretation); | ||
20532 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20533 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
20534 | find mustInstanceOfEReference_class(problem,interpretation,object); | ||
20535 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); | ||
20536 | check(numberOfExistingReferences < 1); | ||
20537 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
20538 | } | ||
20539 | pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
20540 | find interpretation(problem,interpretation); | ||
20541 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
20542 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
20543 | find mustInstanceOfEGenericType_class(problem,interpretation,object); | ||
20544 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); | ||
20545 | check(numberOfExistingReferences < 1); | ||
20546 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
20547 | } | ||
20548 | |||
20549 | ////////// | ||
20550 | // 3.2 Unfinishedness Measured by WF Queries | ||
20551 | ////////// | ||
20552 | |||
20553 | ////////// | ||
20554 | // 4. Refinement Indexers | ||
20555 | ////////// | ||
20556 | // 4.1 Object constructors | ||
20557 | ////////// | ||
20558 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
20559 | { | ||
20560 | find interpretation(problem,interpretation); | ||
20561 | find mustInstanceOfEEnum_class(problem,interpretation,root); | ||
20562 | find mustExist(problem, interpretation, root); | ||
20563 | }or{ | ||
20564 | find interpretation(problem,interpretation); | ||
20565 | find mustInstanceOfENamedElement_class(problem,interpretation,root); | ||
20566 | find mustExist(problem, interpretation, root); | ||
20567 | }or{ | ||
20568 | find interpretation(problem,interpretation); | ||
20569 | find mustInstanceOfEClassifier_class(problem,interpretation,root); | ||
20570 | find mustExist(problem, interpretation, root); | ||
20571 | }or{ | ||
20572 | find interpretation(problem,interpretation); | ||
20573 | find mustInstanceOfEDataType_class(problem,interpretation,root); | ||
20574 | find mustExist(problem, interpretation, root); | ||
20575 | }or{ | ||
20576 | find interpretation(problem,interpretation); | ||
20577 | find mustInstanceOfEClass_class(problem,interpretation,root); | ||
20578 | find mustExist(problem, interpretation, root); | ||
20579 | }or{ | ||
20580 | find interpretation(problem,interpretation); | ||
20581 | find mustInstanceOfEGenericType_class(problem,interpretation,root); | ||
20582 | find mustExist(problem, interpretation, root); | ||
20583 | }or{ | ||
20584 | find interpretation(problem,interpretation); | ||
20585 | find mustInstanceOfETypeParameter_class(problem,interpretation,root); | ||
20586 | find mustExist(problem, interpretation, root); | ||
20587 | }or{ | ||
20588 | find interpretation(problem,interpretation); | ||
20589 | find mustInstanceOfEReference_class(problem,interpretation,root); | ||
20590 | find mustExist(problem, interpretation, root); | ||
20591 | }or{ | ||
20592 | find interpretation(problem,interpretation); | ||
20593 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root); | ||
20594 | find mustExist(problem, interpretation, root); | ||
20595 | }or{ | ||
20596 | find interpretation(problem,interpretation); | ||
20597 | find mustInstanceOfEModelElement_class(problem,interpretation,root); | ||
20598 | find mustExist(problem, interpretation, root); | ||
20599 | }or{ | ||
20600 | find interpretation(problem,interpretation); | ||
20601 | find mustInstanceOfEPackage_class(problem,interpretation,root); | ||
20602 | find mustExist(problem, interpretation, root); | ||
20603 | }or{ | ||
20604 | find interpretation(problem,interpretation); | ||
20605 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,root); | ||
20606 | find mustExist(problem, interpretation, root); | ||
20607 | }or{ | ||
20608 | find interpretation(problem,interpretation); | ||
20609 | find mustInstanceOfEOperation_class(problem,interpretation,root); | ||
20610 | find mustExist(problem, interpretation, root); | ||
20611 | }or{ | ||
20612 | find interpretation(problem,interpretation); | ||
20613 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,root); | ||
20614 | find mustExist(problem, interpretation, root); | ||
20615 | }or{ | ||
20616 | find interpretation(problem,interpretation); | ||
20617 | find mustInstanceOfEParameter_class(problem,interpretation,root); | ||
20618 | find mustExist(problem, interpretation, root); | ||
20619 | }or{ | ||
20620 | find interpretation(problem,interpretation); | ||
20621 | find mustInstanceOfEAnnotation_class(problem,interpretation,root); | ||
20622 | find mustExist(problem, interpretation, root); | ||
20623 | }or{ | ||
20624 | find interpretation(problem,interpretation); | ||
20625 | find mustInstanceOfEAttribute_class(problem,interpretation,root); | ||
20626 | find mustExist(problem, interpretation, root); | ||
20627 | }or{ | ||
20628 | find interpretation(problem,interpretation); | ||
20629 | find mustInstanceOfETypedElement_class(problem,interpretation,root); | ||
20630 | find mustExist(problem, interpretation, root); | ||
20631 | }or{ | ||
20632 | find interpretation(problem,interpretation); | ||
20633 | find mustInstanceOfEObject_class(problem,interpretation,root); | ||
20634 | find mustExist(problem, interpretation, root); | ||
20635 | }or{ | ||
20636 | find interpretation(problem,interpretation); | ||
20637 | find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); | ||
20638 | find mustExist(problem, interpretation, root); | ||
20639 | }or{ | ||
20640 | find interpretation(problem,interpretation); | ||
20641 | find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); | ||
20642 | find mustExist(problem, interpretation, root); | ||
20643 | }or{ | ||
20644 | find interpretation(problem,interpretation); | ||
20645 | find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); | ||
20646 | find mustExist(problem, interpretation, root); | ||
20647 | }or{ | ||
20648 | find interpretation(problem,interpretation); | ||
20649 | find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); | ||
20650 | find mustExist(problem, interpretation, root); | ||
20651 | }or{ | ||
20652 | find interpretation(problem,interpretation); | ||
20653 | find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); | ||
20654 | find mustExist(problem, interpretation, root); | ||
20655 | }or{ | ||
20656 | find interpretation(problem,interpretation); | ||
20657 | find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); | ||
20658 | find mustExist(problem, interpretation, root); | ||
20659 | } | ||
20660 | pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
20661 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20662 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20663 | container:DefinedElement) | ||
20664 | { | ||
20665 | find interpretation(problem,interpretation); | ||
20666 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20667 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
20668 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20669 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
20670 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20671 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
20672 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
20673 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
20674 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
20675 | find mustExist(problem, interpretation, container); | ||
20676 | neg find mustExist(problem, interpretation, newObject); | ||
20677 | } | ||
20678 | pattern createObject_EDataType_class( | ||
20679 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20680 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20681 | { | ||
20682 | find interpretation(problem,interpretation); | ||
20683 | neg find hasElementInContainment(problem,interpretation); | ||
20684 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20685 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
20686 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
20687 | find mayExist(problem, interpretation, newObject); | ||
20688 | neg find mustExist(problem, interpretation, newObject); | ||
20689 | } | ||
20690 | pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
20691 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20692 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20693 | container:DefinedElement) | ||
20694 | { | ||
20695 | find interpretation(problem,interpretation); | ||
20696 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20697 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
20698 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20699 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
20700 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20701 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
20702 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
20703 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
20704 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
20705 | find mustExist(problem, interpretation, container); | ||
20706 | neg find mustExist(problem, interpretation, newObject); | ||
20707 | } | ||
20708 | pattern createObject_EClass_class( | ||
20709 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20710 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20711 | { | ||
20712 | find interpretation(problem,interpretation); | ||
20713 | neg find hasElementInContainment(problem,interpretation); | ||
20714 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20715 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
20716 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
20717 | find mayExist(problem, interpretation, newObject); | ||
20718 | neg find mustExist(problem, interpretation, newObject); | ||
20719 | } | ||
20720 | pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( | ||
20721 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20722 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20723 | container:DefinedElement) | ||
20724 | { | ||
20725 | find interpretation(problem,interpretation); | ||
20726 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20727 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
20728 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20729 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); | ||
20730 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20731 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); | ||
20732 | find mustInstanceOfEEnum_class(problem,interpretation,container); | ||
20733 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
20734 | find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); | ||
20735 | find mustExist(problem, interpretation, container); | ||
20736 | neg find mustExist(problem, interpretation, newObject); | ||
20737 | } | ||
20738 | pattern createObject_EEnumLiteral_class( | ||
20739 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20740 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20741 | { | ||
20742 | find interpretation(problem,interpretation); | ||
20743 | neg find hasElementInContainment(problem,interpretation); | ||
20744 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20745 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
20746 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
20747 | find mayExist(problem, interpretation, newObject); | ||
20748 | neg find mustExist(problem, interpretation, newObject); | ||
20749 | } | ||
20750 | pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( | ||
20751 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20752 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20753 | container:DefinedElement) | ||
20754 | { | ||
20755 | find interpretation(problem,interpretation); | ||
20756 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20757 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
20758 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20759 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); | ||
20760 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20761 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); | ||
20762 | find mustInstanceOfEModelElement_class(problem,interpretation,container); | ||
20763 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
20764 | find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); | ||
20765 | find mustExist(problem, interpretation, container); | ||
20766 | neg find mustExist(problem, interpretation, newObject); | ||
20767 | } | ||
20768 | pattern createObject_EAnnotation_class( | ||
20769 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20770 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20771 | { | ||
20772 | find interpretation(problem,interpretation); | ||
20773 | neg find hasElementInContainment(problem,interpretation); | ||
20774 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20775 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
20776 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
20777 | find mayExist(problem, interpretation, newObject); | ||
20778 | neg find mustExist(problem, interpretation, newObject); | ||
20779 | } | ||
20780 | pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( | ||
20781 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20782 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20783 | container:DefinedElement) | ||
20784 | { | ||
20785 | find interpretation(problem,interpretation); | ||
20786 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20787 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
20788 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20789 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); | ||
20790 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20791 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); | ||
20792 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
20793 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
20794 | find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); | ||
20795 | find mustExist(problem, interpretation, container); | ||
20796 | neg find mustExist(problem, interpretation, newObject); | ||
20797 | } | ||
20798 | pattern createObject_EPackage_class_UndefinedPart( | ||
20799 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20800 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20801 | { | ||
20802 | find interpretation(problem,interpretation); | ||
20803 | neg find hasElementInContainment(problem,interpretation); | ||
20804 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20805 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
20806 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
20807 | find mayExist(problem, interpretation, newObject); | ||
20808 | neg find mustExist(problem, interpretation, newObject); | ||
20809 | } | ||
20810 | pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( | ||
20811 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20812 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20813 | container:DefinedElement) | ||
20814 | { | ||
20815 | find interpretation(problem,interpretation); | ||
20816 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20817 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
20818 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20819 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); | ||
20820 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
20821 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); | ||
20822 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
20823 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
20824 | find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); | ||
20825 | find mustExist(problem, interpretation, container); | ||
20826 | neg find mustExist(problem, interpretation, newObject); | ||
20827 | } | ||
20828 | pattern createObject_EOperation_class( | ||
20829 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20830 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20831 | { | ||
20832 | find interpretation(problem,interpretation); | ||
20833 | neg find hasElementInContainment(problem,interpretation); | ||
20834 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20835 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
20836 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
20837 | find mayExist(problem, interpretation, newObject); | ||
20838 | neg find mustExist(problem, interpretation, newObject); | ||
20839 | } | ||
20840 | pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( | ||
20841 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20842 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20843 | container:DefinedElement) | ||
20844 | { | ||
20845 | find interpretation(problem,interpretation); | ||
20846 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20847 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20848 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20849 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass"); | ||
20850 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
20851 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20852 | find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject); | ||
20853 | find mustExist(problem, interpretation, container); | ||
20854 | neg find mustExist(problem, interpretation, newObject); | ||
20855 | } | ||
20856 | pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation( | ||
20857 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20858 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20859 | container:DefinedElement) | ||
20860 | { | ||
20861 | find interpretation(problem,interpretation); | ||
20862 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20863 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20864 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20865 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); | ||
20866 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
20867 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20868 | find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); | ||
20869 | find mustExist(problem, interpretation, container); | ||
20870 | neg find mustExist(problem, interpretation, newObject); | ||
20871 | } | ||
20872 | pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( | ||
20873 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20874 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20875 | container:DefinedElement) | ||
20876 | { | ||
20877 | find interpretation(problem,interpretation); | ||
20878 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20879 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20880 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20881 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); | ||
20882 | find mustInstanceOfETypedElement_class(problem,interpretation,container); | ||
20883 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20884 | find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); | ||
20885 | find mustExist(problem, interpretation, container); | ||
20886 | neg find mustExist(problem, interpretation, newObject); | ||
20887 | } | ||
20888 | pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( | ||
20889 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20890 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20891 | container:DefinedElement) | ||
20892 | { | ||
20893 | find interpretation(problem,interpretation); | ||
20894 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20895 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20896 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20897 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); | ||
20898 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
20899 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20900 | find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
20901 | find mustExist(problem, interpretation, container); | ||
20902 | neg find mustExist(problem, interpretation, newObject); | ||
20903 | } | ||
20904 | pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( | ||
20905 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20906 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20907 | container:DefinedElement) | ||
20908 | { | ||
20909 | find interpretation(problem,interpretation); | ||
20910 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20911 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20912 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20913 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); | ||
20914 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
20915 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20916 | find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); | ||
20917 | find mustExist(problem, interpretation, container); | ||
20918 | neg find mustExist(problem, interpretation, newObject); | ||
20919 | } | ||
20920 | pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( | ||
20921 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20922 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20923 | container:DefinedElement) | ||
20924 | { | ||
20925 | find interpretation(problem,interpretation); | ||
20926 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20927 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20928 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20929 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); | ||
20930 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
20931 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20932 | find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
20933 | find mustExist(problem, interpretation, container); | ||
20934 | neg find mustExist(problem, interpretation, newObject); | ||
20935 | } | ||
20936 | pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( | ||
20937 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20938 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20939 | container:DefinedElement) | ||
20940 | { | ||
20941 | find interpretation(problem,interpretation); | ||
20942 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20943 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20944 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20945 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); | ||
20946 | find mustInstanceOfETypeParameter_class(problem,interpretation,container); | ||
20947 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20948 | find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); | ||
20949 | find mustExist(problem, interpretation, container); | ||
20950 | neg find mustExist(problem, interpretation, newObject); | ||
20951 | } | ||
20952 | pattern createObject_EGenericType_class( | ||
20953 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20954 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20955 | { | ||
20956 | find interpretation(problem,interpretation); | ||
20957 | neg find hasElementInContainment(problem,interpretation); | ||
20958 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20959 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
20960 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
20961 | find mayExist(problem, interpretation, newObject); | ||
20962 | neg find mustExist(problem, interpretation, newObject); | ||
20963 | } | ||
20964 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( | ||
20965 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20966 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20967 | container:DefinedElement) | ||
20968 | { | ||
20969 | find interpretation(problem,interpretation); | ||
20970 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20971 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
20972 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20973 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier"); | ||
20974 | find mustInstanceOfEClassifier_class(problem,interpretation,container); | ||
20975 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
20976 | find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject); | ||
20977 | find mustExist(problem, interpretation, container); | ||
20978 | neg find mustExist(problem, interpretation, newObject); | ||
20979 | } | ||
20980 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation( | ||
20981 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20982 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
20983 | container:DefinedElement) | ||
20984 | { | ||
20985 | find interpretation(problem,interpretation); | ||
20986 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
20987 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
20988 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
20989 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation"); | ||
20990 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
20991 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
20992 | find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
20993 | find mustExist(problem, interpretation, container); | ||
20994 | neg find mustExist(problem, interpretation, newObject); | ||
20995 | } | ||
20996 | pattern createObject_ETypeParameter_class( | ||
20997 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
20998 | typeInterpretation:PartialComplexTypeInterpretation) | ||
20999 | { | ||
21000 | find interpretation(problem,interpretation); | ||
21001 | neg find hasElementInContainment(problem,interpretation); | ||
21002 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21003 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
21004 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
21005 | find mayExist(problem, interpretation, newObject); | ||
21006 | neg find mustExist(problem, interpretation, newObject); | ||
21007 | } | ||
21008 | pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
21009 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21010 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21011 | container:DefinedElement) | ||
21012 | { | ||
21013 | find interpretation(problem,interpretation); | ||
21014 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21015 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
21016 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21017 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
21018 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
21019 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
21020 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
21021 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
21022 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
21023 | find mustExist(problem, interpretation, container); | ||
21024 | neg find mustExist(problem, interpretation, newObject); | ||
21025 | } | ||
21026 | pattern createObject_EReference_class( | ||
21027 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21028 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21029 | { | ||
21030 | find interpretation(problem,interpretation); | ||
21031 | neg find hasElementInContainment(problem,interpretation); | ||
21032 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21033 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
21034 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
21035 | find mayExist(problem, interpretation, newObject); | ||
21036 | neg find mustExist(problem, interpretation, newObject); | ||
21037 | } | ||
21038 | pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( | ||
21039 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21040 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21041 | container:DefinedElement) | ||
21042 | { | ||
21043 | find interpretation(problem,interpretation); | ||
21044 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21045 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
21046 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21047 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); | ||
21048 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
21049 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); | ||
21050 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
21051 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
21052 | find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
21053 | find mustExist(problem, interpretation, container); | ||
21054 | neg find mustExist(problem, interpretation, newObject); | ||
21055 | } | ||
21056 | pattern createObject_EParameter_class( | ||
21057 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21058 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21059 | { | ||
21060 | find interpretation(problem,interpretation); | ||
21061 | neg find hasElementInContainment(problem,interpretation); | ||
21062 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21063 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
21064 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
21065 | find mayExist(problem, interpretation, newObject); | ||
21066 | neg find mustExist(problem, interpretation, newObject); | ||
21067 | } | ||
21068 | pattern createObject_EObject_class_by_contents_reference_EAnnotation( | ||
21069 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21070 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21071 | container:DefinedElement) | ||
21072 | { | ||
21073 | find interpretation(problem,interpretation); | ||
21074 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21075 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
21076 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21077 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); | ||
21078 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
21079 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
21080 | find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); | ||
21081 | find mustExist(problem, interpretation, container); | ||
21082 | neg find mustExist(problem, interpretation, newObject); | ||
21083 | } | ||
21084 | pattern createObject_EObject_class( | ||
21085 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21086 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21087 | { | ||
21088 | find interpretation(problem,interpretation); | ||
21089 | neg find hasElementInContainment(problem,interpretation); | ||
21090 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21091 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
21092 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
21093 | find mayExist(problem, interpretation, newObject); | ||
21094 | neg find mustExist(problem, interpretation, newObject); | ||
21095 | } | ||
21096 | pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
21097 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21098 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21099 | container:DefinedElement) | ||
21100 | { | ||
21101 | find interpretation(problem,interpretation); | ||
21102 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21103 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
21104 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21105 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
21106 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
21107 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
21108 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
21109 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
21110 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
21111 | find mustExist(problem, interpretation, container); | ||
21112 | neg find mustExist(problem, interpretation, newObject); | ||
21113 | } | ||
21114 | pattern createObject_EAttribute_class( | ||
21115 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21116 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21117 | { | ||
21118 | find interpretation(problem,interpretation); | ||
21119 | neg find hasElementInContainment(problem,interpretation); | ||
21120 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21121 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
21122 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
21123 | find mayExist(problem, interpretation, newObject); | ||
21124 | neg find mustExist(problem, interpretation, newObject); | ||
21125 | } | ||
21126 | pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
21127 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21128 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21129 | container:DefinedElement) | ||
21130 | { | ||
21131 | find interpretation(problem,interpretation); | ||
21132 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21133 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
21134 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21135 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
21136 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
21137 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
21138 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
21139 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
21140 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
21141 | find mustExist(problem, interpretation, container); | ||
21142 | neg find mustExist(problem, interpretation, newObject); | ||
21143 | } | ||
21144 | pattern createObject_EEnum_class( | ||
21145 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21146 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21147 | { | ||
21148 | find interpretation(problem,interpretation); | ||
21149 | neg find hasElementInContainment(problem,interpretation); | ||
21150 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21151 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
21152 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
21153 | find mayExist(problem, interpretation, newObject); | ||
21154 | neg find mustExist(problem, interpretation, newObject); | ||
21155 | } | ||
21156 | pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( | ||
21157 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21158 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
21159 | container:DefinedElement) | ||
21160 | { | ||
21161 | find interpretation(problem,interpretation); | ||
21162 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21163 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
21164 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
21165 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation"); | ||
21166 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
21167 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
21168 | find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject); | ||
21169 | find mustExist(problem, interpretation, container); | ||
21170 | neg find mustExist(problem, interpretation, newObject); | ||
21171 | } | ||
21172 | pattern createObject_EStringToStringMapEntry_class( | ||
21173 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21174 | typeInterpretation:PartialComplexTypeInterpretation) | ||
21175 | { | ||
21176 | find interpretation(problem,interpretation); | ||
21177 | neg find hasElementInContainment(problem,interpretation); | ||
21178 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
21179 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
21180 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
21181 | find mayExist(problem, interpretation, newObject); | ||
21182 | neg find mustExist(problem, interpretation, newObject); | ||
21183 | } | ||
21184 | |||
21185 | ////////// | ||
21186 | // 4.2 Type refinement | ||
21187 | ////////// | ||
21188 | pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21189 | find interpretation(problem,interpretation); | ||
21190 | PartialInterpretation.newElements(interpretation,element); | ||
21191 | find mayInstanceOfEDataType_class(problem,interpretation,element); | ||
21192 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
21193 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
21194 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21195 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21196 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21197 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21198 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21199 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21200 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
21201 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21202 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21203 | } | ||
21204 | pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21205 | find interpretation(problem,interpretation); | ||
21206 | PartialInterpretation.newElements(interpretation,element); | ||
21207 | find mayInstanceOfEClass_class(problem,interpretation,element); | ||
21208 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
21209 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
21210 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21211 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21212 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21213 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21214 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21215 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21216 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21217 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21218 | } | ||
21219 | pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21220 | find interpretation(problem,interpretation); | ||
21221 | PartialInterpretation.newElements(interpretation,element); | ||
21222 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21223 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21224 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21225 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21226 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21227 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21228 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21229 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21230 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21231 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21232 | } | ||
21233 | pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21234 | find interpretation(problem,interpretation); | ||
21235 | PartialInterpretation.newElements(interpretation,element); | ||
21236 | find mayInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21237 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21238 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
21239 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21240 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21241 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21242 | } | ||
21243 | pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21244 | find interpretation(problem,interpretation); | ||
21245 | PartialInterpretation.newElements(interpretation,element); | ||
21246 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
21247 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21248 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21249 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21250 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21251 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21252 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21253 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21254 | neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
21255 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21256 | } | ||
21257 | pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21258 | find interpretation(problem,interpretation); | ||
21259 | PartialInterpretation.newElements(interpretation,element); | ||
21260 | find mayInstanceOfEOperation_class(problem,interpretation,element); | ||
21261 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
21262 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21263 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21264 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21265 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
21266 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21267 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21268 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21269 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
21270 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21271 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21272 | } | ||
21273 | pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21274 | find interpretation(problem,interpretation); | ||
21275 | PartialInterpretation.newElements(interpretation,element); | ||
21276 | find mayInstanceOfEGenericType_class(problem,interpretation,element); | ||
21277 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
21278 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21279 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21280 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21281 | } | ||
21282 | pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21283 | find interpretation(problem,interpretation); | ||
21284 | PartialInterpretation.newElements(interpretation,element); | ||
21285 | find mayInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21286 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21287 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21288 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21289 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21290 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21291 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21292 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21293 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21294 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21295 | } | ||
21296 | pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21297 | find interpretation(problem,interpretation); | ||
21298 | PartialInterpretation.newElements(interpretation,element); | ||
21299 | find mayInstanceOfEReference_class(problem,interpretation,element); | ||
21300 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
21301 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
21302 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21303 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21304 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21305 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
21306 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21307 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21308 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21309 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
21310 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21311 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21312 | } | ||
21313 | pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21314 | find interpretation(problem,interpretation); | ||
21315 | PartialInterpretation.newElements(interpretation,element); | ||
21316 | find mayInstanceOfEParameter_class(problem,interpretation,element); | ||
21317 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
21318 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21319 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21320 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21321 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
21322 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21323 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21324 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
21325 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21326 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21327 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21328 | } | ||
21329 | pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21330 | find interpretation(problem,interpretation); | ||
21331 | PartialInterpretation.newElements(interpretation,element); | ||
21332 | find mayInstanceOfEObject_class(problem,interpretation,element); | ||
21333 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
21334 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21335 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21336 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21337 | } | ||
21338 | pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21339 | find interpretation(problem,interpretation); | ||
21340 | PartialInterpretation.newElements(interpretation,element); | ||
21341 | find mayInstanceOfEAttribute_class(problem,interpretation,element); | ||
21342 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
21343 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
21344 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21345 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21346 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21347 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
21348 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21349 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
21350 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21351 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
21352 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21353 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21354 | } | ||
21355 | pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21356 | find interpretation(problem,interpretation); | ||
21357 | PartialInterpretation.newElements(interpretation,element); | ||
21358 | find mayInstanceOfEEnum_class(problem,interpretation,element); | ||
21359 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
21360 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
21361 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
21362 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21363 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21364 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
21365 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
21366 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
21367 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
21368 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21369 | } | ||
21370 | pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
21371 | find interpretation(problem,interpretation); | ||
21372 | PartialInterpretation.newElements(interpretation,element); | ||
21373 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21374 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
21375 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
21376 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
21377 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
21378 | } | ||
21379 | |||
21380 | ////////// | ||
21381 | // 4.3 Relation refinement | ||
21382 | ////////// | ||
21383 | pattern refineRelation_eAttributeType_reference_EAttribute( | ||
21384 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21385 | relationIterpretation:PartialRelationInterpretation, | ||
21386 | from: DefinedElement, to: DefinedElement) | ||
21387 | { | ||
21388 | find interpretation(problem,interpretation); | ||
21389 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21390 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
21391 | find mustExist(problem, interpretation, from); | ||
21392 | find mustExist(problem, interpretation, to); | ||
21393 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
21394 | find mustInstanceOfEDataType_class(problem,interpretation,to); | ||
21395 | find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
21396 | neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
21397 | } | ||
21398 | pattern refineRelation_references_reference_EAnnotation( | ||
21399 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21400 | relationIterpretation:PartialRelationInterpretation, | ||
21401 | from: DefinedElement, to: DefinedElement) | ||
21402 | { | ||
21403 | find interpretation(problem,interpretation); | ||
21404 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21405 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
21406 | find mustExist(problem, interpretation, from); | ||
21407 | find mustExist(problem, interpretation, to); | ||
21408 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
21409 | find mustInstanceOfEObject_class(problem,interpretation,to); | ||
21410 | find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
21411 | neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
21412 | } | ||
21413 | pattern refineRelation_eSuperTypes_reference_EClass( | ||
21414 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21415 | relationIterpretation:PartialRelationInterpretation, | ||
21416 | from: DefinedElement, to: DefinedElement) | ||
21417 | { | ||
21418 | find interpretation(problem,interpretation); | ||
21419 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21420 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
21421 | find mustExist(problem, interpretation, from); | ||
21422 | find mustExist(problem, interpretation, to); | ||
21423 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21424 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
21425 | find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21426 | neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21427 | } | ||
21428 | pattern refineRelation_eAllAttributes_reference_EClass( | ||
21429 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21430 | relationIterpretation:PartialRelationInterpretation, | ||
21431 | from: DefinedElement, to: DefinedElement) | ||
21432 | { | ||
21433 | find interpretation(problem,interpretation); | ||
21434 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21435 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
21436 | find mustExist(problem, interpretation, from); | ||
21437 | find mustExist(problem, interpretation, to); | ||
21438 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21439 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
21440 | find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
21441 | neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
21442 | } | ||
21443 | pattern refineRelation_eAllReferences_reference_EClass( | ||
21444 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21445 | relationIterpretation:PartialRelationInterpretation, | ||
21446 | from: DefinedElement, to: DefinedElement) | ||
21447 | { | ||
21448 | find interpretation(problem,interpretation); | ||
21449 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21450 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
21451 | find mustExist(problem, interpretation, from); | ||
21452 | find mustExist(problem, interpretation, to); | ||
21453 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21454 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
21455 | find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
21456 | neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
21457 | } | ||
21458 | pattern refineRelation_eReferences_reference_EClass( | ||
21459 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21460 | relationIterpretation:PartialRelationInterpretation, | ||
21461 | from: DefinedElement, to: DefinedElement) | ||
21462 | { | ||
21463 | find interpretation(problem,interpretation); | ||
21464 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21465 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
21466 | find mustExist(problem, interpretation, from); | ||
21467 | find mustExist(problem, interpretation, to); | ||
21468 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21469 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
21470 | find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
21471 | neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
21472 | } | ||
21473 | pattern refineRelation_eAttributes_reference_EClass( | ||
21474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21475 | relationIterpretation:PartialRelationInterpretation, | ||
21476 | from: DefinedElement, to: DefinedElement) | ||
21477 | { | ||
21478 | find interpretation(problem,interpretation); | ||
21479 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21480 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
21481 | find mustExist(problem, interpretation, from); | ||
21482 | find mustExist(problem, interpretation, to); | ||
21483 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21484 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
21485 | find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
21486 | neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
21487 | } | ||
21488 | pattern refineRelation_eAllContainments_reference_EClass( | ||
21489 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21490 | relationIterpretation:PartialRelationInterpretation, | ||
21491 | from: DefinedElement, to: DefinedElement) | ||
21492 | { | ||
21493 | find interpretation(problem,interpretation); | ||
21494 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21495 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
21496 | find mustExist(problem, interpretation, from); | ||
21497 | find mustExist(problem, interpretation, to); | ||
21498 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21499 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
21500 | find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
21501 | neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
21502 | } | ||
21503 | pattern refineRelation_eAllOperations_reference_EClass( | ||
21504 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21505 | relationIterpretation:PartialRelationInterpretation, | ||
21506 | from: DefinedElement, to: DefinedElement) | ||
21507 | { | ||
21508 | find interpretation(problem,interpretation); | ||
21509 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21510 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
21511 | find mustExist(problem, interpretation, from); | ||
21512 | find mustExist(problem, interpretation, to); | ||
21513 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21514 | find mustInstanceOfEOperation_class(problem,interpretation,to); | ||
21515 | find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
21516 | neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
21517 | } | ||
21518 | pattern refineRelation_eAllStructuralFeatures_reference_EClass( | ||
21519 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21520 | relationIterpretation:PartialRelationInterpretation, | ||
21521 | from: DefinedElement, to: DefinedElement) | ||
21522 | { | ||
21523 | find interpretation(problem,interpretation); | ||
21524 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21525 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
21526 | find mustExist(problem, interpretation, from); | ||
21527 | find mustExist(problem, interpretation, to); | ||
21528 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21529 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,to); | ||
21530 | find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
21531 | neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
21532 | } | ||
21533 | pattern refineRelation_eAllSuperTypes_reference_EClass( | ||
21534 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21535 | relationIterpretation:PartialRelationInterpretation, | ||
21536 | from: DefinedElement, to: DefinedElement) | ||
21537 | { | ||
21538 | find interpretation(problem,interpretation); | ||
21539 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21540 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
21541 | find mustExist(problem, interpretation, from); | ||
21542 | find mustExist(problem, interpretation, to); | ||
21543 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21544 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
21545 | find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21546 | neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21547 | } | ||
21548 | pattern refineRelation_eIDAttribute_reference_EClass( | ||
21549 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21550 | relationIterpretation:PartialRelationInterpretation, | ||
21551 | from: DefinedElement, to: DefinedElement) | ||
21552 | { | ||
21553 | find interpretation(problem,interpretation); | ||
21554 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21555 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
21556 | find mustExist(problem, interpretation, from); | ||
21557 | find mustExist(problem, interpretation, to); | ||
21558 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21559 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
21560 | find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
21561 | neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
21562 | } | ||
21563 | pattern refineRelation_eAllGenericSuperTypes_reference_EClass( | ||
21564 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21565 | relationIterpretation:PartialRelationInterpretation, | ||
21566 | from: DefinedElement, to: DefinedElement) | ||
21567 | { | ||
21568 | find interpretation(problem,interpretation); | ||
21569 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21570 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
21571 | find mustExist(problem, interpretation, from); | ||
21572 | find mustExist(problem, interpretation, to); | ||
21573 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21574 | find mustInstanceOfEGenericType_class(problem,interpretation,to); | ||
21575 | find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21576 | neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
21577 | } | ||
21578 | pattern refineRelation_eExceptions_reference_EOperation( | ||
21579 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21580 | relationIterpretation:PartialRelationInterpretation, | ||
21581 | from: DefinedElement, to: DefinedElement) | ||
21582 | { | ||
21583 | find interpretation(problem,interpretation); | ||
21584 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21585 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
21586 | find mustExist(problem, interpretation, from); | ||
21587 | find mustExist(problem, interpretation, to); | ||
21588 | find mustInstanceOfEOperation_class(problem,interpretation,from); | ||
21589 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
21590 | find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
21591 | neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
21592 | } | ||
21593 | pattern refineRelation_eOpposite_reference_EReference( | ||
21594 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21595 | relationIterpretation:PartialRelationInterpretation, | ||
21596 | from: DefinedElement, to: DefinedElement) | ||
21597 | { | ||
21598 | find interpretation(problem,interpretation); | ||
21599 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21600 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
21601 | find mustExist(problem, interpretation, from); | ||
21602 | find mustExist(problem, interpretation, to); | ||
21603 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21604 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
21605 | find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
21606 | neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
21607 | } | ||
21608 | pattern refineRelation_eReferenceType_reference_EReference( | ||
21609 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21610 | relationIterpretation:PartialRelationInterpretation, | ||
21611 | from: DefinedElement, to: DefinedElement) | ||
21612 | { | ||
21613 | find interpretation(problem,interpretation); | ||
21614 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21615 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
21616 | find mustExist(problem, interpretation, from); | ||
21617 | find mustExist(problem, interpretation, to); | ||
21618 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21619 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
21620 | find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
21621 | neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
21622 | } | ||
21623 | pattern refineRelation_eKeys_reference_EReference( | ||
21624 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21625 | relationIterpretation:PartialRelationInterpretation, | ||
21626 | from: DefinedElement, to: DefinedElement) | ||
21627 | { | ||
21628 | find interpretation(problem,interpretation); | ||
21629 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21630 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
21631 | find mustExist(problem, interpretation, from); | ||
21632 | find mustExist(problem, interpretation, to); | ||
21633 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21634 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
21635 | find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
21636 | neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
21637 | } | ||
21638 | pattern refineRelation_eType_reference_ETypedElement( | ||
21639 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21640 | relationIterpretation:PartialRelationInterpretation, | ||
21641 | from: DefinedElement, to: DefinedElement) | ||
21642 | { | ||
21643 | find interpretation(problem,interpretation); | ||
21644 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21645 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
21646 | find mustExist(problem, interpretation, from); | ||
21647 | find mustExist(problem, interpretation, to); | ||
21648 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
21649 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
21650 | find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
21651 | neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
21652 | } | ||
21653 | pattern refineRelation_eRawType_reference_EGenericType( | ||
21654 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21655 | relationIterpretation:PartialRelationInterpretation, | ||
21656 | from: DefinedElement, to: DefinedElement) | ||
21657 | { | ||
21658 | find interpretation(problem,interpretation); | ||
21659 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21660 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
21661 | find mustExist(problem, interpretation, from); | ||
21662 | find mustExist(problem, interpretation, to); | ||
21663 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
21664 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
21665 | find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
21666 | neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
21667 | } | ||
21668 | pattern refineRelation_eTypeParameter_reference_EGenericType( | ||
21669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21670 | relationIterpretation:PartialRelationInterpretation, | ||
21671 | from: DefinedElement, to: DefinedElement) | ||
21672 | { | ||
21673 | find interpretation(problem,interpretation); | ||
21674 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21675 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
21676 | find mustExist(problem, interpretation, from); | ||
21677 | find mustExist(problem, interpretation, to); | ||
21678 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
21679 | find mustInstanceOfETypeParameter_class(problem,interpretation,to); | ||
21680 | find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
21681 | neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
21682 | } | ||
21683 | pattern refineRelation_eClassifier_reference_EGenericType( | ||
21684 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21685 | relationIterpretation:PartialRelationInterpretation, | ||
21686 | from: DefinedElement, to: DefinedElement) | ||
21687 | { | ||
21688 | find interpretation(problem,interpretation); | ||
21689 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21690 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
21691 | find mustExist(problem, interpretation, from); | ||
21692 | find mustExist(problem, interpretation, to); | ||
21693 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
21694 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
21695 | find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
21696 | neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
21697 | } | ||
21698 | pattern refineRelation_iD_attribute_EAttribute( | ||
21699 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21700 | relationIterpretation:PartialRelationInterpretation, | ||
21701 | from: DefinedElement, to: DefinedElement) | ||
21702 | { | ||
21703 | find interpretation(problem,interpretation); | ||
21704 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21705 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
21706 | find mustExist(problem, interpretation, from); | ||
21707 | find mustExist(problem, interpretation, to); | ||
21708 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
21709 | BooleanElement(to); | ||
21710 | find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
21711 | neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
21712 | } | ||
21713 | pattern refineRelation_source_attribute_EAnnotation( | ||
21714 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21715 | relationIterpretation:PartialRelationInterpretation, | ||
21716 | from: DefinedElement, to: DefinedElement) | ||
21717 | { | ||
21718 | find interpretation(problem,interpretation); | ||
21719 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21720 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
21721 | find mustExist(problem, interpretation, from); | ||
21722 | find mustExist(problem, interpretation, to); | ||
21723 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
21724 | StringElement(to); | ||
21725 | find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
21726 | neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
21727 | } | ||
21728 | pattern refineRelation_abstract_attribute_EClass( | ||
21729 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21730 | relationIterpretation:PartialRelationInterpretation, | ||
21731 | from: DefinedElement, to: DefinedElement) | ||
21732 | { | ||
21733 | find interpretation(problem,interpretation); | ||
21734 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21735 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
21736 | find mustExist(problem, interpretation, from); | ||
21737 | find mustExist(problem, interpretation, to); | ||
21738 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21739 | BooleanElement(to); | ||
21740 | find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
21741 | neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
21742 | } | ||
21743 | pattern refineRelation_interface_attribute_EClass( | ||
21744 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21745 | relationIterpretation:PartialRelationInterpretation, | ||
21746 | from: DefinedElement, to: DefinedElement) | ||
21747 | { | ||
21748 | find interpretation(problem,interpretation); | ||
21749 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21750 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
21751 | find mustExist(problem, interpretation, from); | ||
21752 | find mustExist(problem, interpretation, to); | ||
21753 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
21754 | BooleanElement(to); | ||
21755 | find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
21756 | neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
21757 | } | ||
21758 | pattern refineRelation_instanceClassName_attribute_EClassifier( | ||
21759 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21760 | relationIterpretation:PartialRelationInterpretation, | ||
21761 | from: DefinedElement, to: DefinedElement) | ||
21762 | { | ||
21763 | find interpretation(problem,interpretation); | ||
21764 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21765 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
21766 | find mustExist(problem, interpretation, from); | ||
21767 | find mustExist(problem, interpretation, to); | ||
21768 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
21769 | StringElement(to); | ||
21770 | find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
21771 | neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
21772 | } | ||
21773 | pattern refineRelation_instanceTypeName_attribute_EClassifier( | ||
21774 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21775 | relationIterpretation:PartialRelationInterpretation, | ||
21776 | from: DefinedElement, to: DefinedElement) | ||
21777 | { | ||
21778 | find interpretation(problem,interpretation); | ||
21779 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21780 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
21781 | find mustExist(problem, interpretation, from); | ||
21782 | find mustExist(problem, interpretation, to); | ||
21783 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
21784 | StringElement(to); | ||
21785 | find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
21786 | neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
21787 | } | ||
21788 | pattern refineRelation_serializable_attribute_EDataType( | ||
21789 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21790 | relationIterpretation:PartialRelationInterpretation, | ||
21791 | from: DefinedElement, to: DefinedElement) | ||
21792 | { | ||
21793 | find interpretation(problem,interpretation); | ||
21794 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21795 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
21796 | find mustExist(problem, interpretation, from); | ||
21797 | find mustExist(problem, interpretation, to); | ||
21798 | find mustInstanceOfEDataType_class(problem,interpretation,from); | ||
21799 | BooleanElement(to); | ||
21800 | find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
21801 | neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
21802 | } | ||
21803 | pattern refineRelation_value_attribute_EEnumLiteral( | ||
21804 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21805 | relationIterpretation:PartialRelationInterpretation, | ||
21806 | from: DefinedElement, to: DefinedElement) | ||
21807 | { | ||
21808 | find interpretation(problem,interpretation); | ||
21809 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21810 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
21811 | find mustExist(problem, interpretation, from); | ||
21812 | find mustExist(problem, interpretation, to); | ||
21813 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
21814 | IntegerElement(to); | ||
21815 | find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
21816 | neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
21817 | } | ||
21818 | pattern refineRelation_literal_attribute_EEnumLiteral( | ||
21819 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21820 | relationIterpretation:PartialRelationInterpretation, | ||
21821 | from: DefinedElement, to: DefinedElement) | ||
21822 | { | ||
21823 | find interpretation(problem,interpretation); | ||
21824 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21825 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
21826 | find mustExist(problem, interpretation, from); | ||
21827 | find mustExist(problem, interpretation, to); | ||
21828 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
21829 | StringElement(to); | ||
21830 | find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
21831 | neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
21832 | } | ||
21833 | pattern refineRelation_name_attribute_ENamedElement( | ||
21834 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21835 | relationIterpretation:PartialRelationInterpretation, | ||
21836 | from: DefinedElement, to: DefinedElement) | ||
21837 | { | ||
21838 | find interpretation(problem,interpretation); | ||
21839 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21840 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
21841 | find mustExist(problem, interpretation, from); | ||
21842 | find mustExist(problem, interpretation, to); | ||
21843 | find mustInstanceOfENamedElement_class(problem,interpretation,from); | ||
21844 | StringElement(to); | ||
21845 | find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
21846 | neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
21847 | } | ||
21848 | pattern refineRelation_nsURI_attribute_EPackage( | ||
21849 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21850 | relationIterpretation:PartialRelationInterpretation, | ||
21851 | from: DefinedElement, to: DefinedElement) | ||
21852 | { | ||
21853 | find interpretation(problem,interpretation); | ||
21854 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21855 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
21856 | find mustExist(problem, interpretation, from); | ||
21857 | find mustExist(problem, interpretation, to); | ||
21858 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
21859 | StringElement(to); | ||
21860 | find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
21861 | neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
21862 | } | ||
21863 | pattern refineRelation_nsPrefix_attribute_EPackage( | ||
21864 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21865 | relationIterpretation:PartialRelationInterpretation, | ||
21866 | from: DefinedElement, to: DefinedElement) | ||
21867 | { | ||
21868 | find interpretation(problem,interpretation); | ||
21869 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21870 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
21871 | find mustExist(problem, interpretation, from); | ||
21872 | find mustExist(problem, interpretation, to); | ||
21873 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
21874 | StringElement(to); | ||
21875 | find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
21876 | neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
21877 | } | ||
21878 | pattern refineRelation_containment_attribute_EReference( | ||
21879 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21880 | relationIterpretation:PartialRelationInterpretation, | ||
21881 | from: DefinedElement, to: DefinedElement) | ||
21882 | { | ||
21883 | find interpretation(problem,interpretation); | ||
21884 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21885 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
21886 | find mustExist(problem, interpretation, from); | ||
21887 | find mustExist(problem, interpretation, to); | ||
21888 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21889 | BooleanElement(to); | ||
21890 | find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
21891 | neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
21892 | } | ||
21893 | pattern refineRelation_container_attribute_EReference( | ||
21894 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21895 | relationIterpretation:PartialRelationInterpretation, | ||
21896 | from: DefinedElement, to: DefinedElement) | ||
21897 | { | ||
21898 | find interpretation(problem,interpretation); | ||
21899 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21900 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
21901 | find mustExist(problem, interpretation, from); | ||
21902 | find mustExist(problem, interpretation, to); | ||
21903 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21904 | BooleanElement(to); | ||
21905 | find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
21906 | neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
21907 | } | ||
21908 | pattern refineRelation_resolveProxies_attribute_EReference( | ||
21909 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21910 | relationIterpretation:PartialRelationInterpretation, | ||
21911 | from: DefinedElement, to: DefinedElement) | ||
21912 | { | ||
21913 | find interpretation(problem,interpretation); | ||
21914 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21915 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
21916 | find mustExist(problem, interpretation, from); | ||
21917 | find mustExist(problem, interpretation, to); | ||
21918 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
21919 | BooleanElement(to); | ||
21920 | find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
21921 | neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
21922 | } | ||
21923 | pattern refineRelation_changeable_attribute_EStructuralFeature( | ||
21924 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21925 | relationIterpretation:PartialRelationInterpretation, | ||
21926 | from: DefinedElement, to: DefinedElement) | ||
21927 | { | ||
21928 | find interpretation(problem,interpretation); | ||
21929 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21930 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
21931 | find mustExist(problem, interpretation, from); | ||
21932 | find mustExist(problem, interpretation, to); | ||
21933 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
21934 | BooleanElement(to); | ||
21935 | find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21936 | neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21937 | } | ||
21938 | pattern refineRelation_volatile_attribute_EStructuralFeature( | ||
21939 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21940 | relationIterpretation:PartialRelationInterpretation, | ||
21941 | from: DefinedElement, to: DefinedElement) | ||
21942 | { | ||
21943 | find interpretation(problem,interpretation); | ||
21944 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21945 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
21946 | find mustExist(problem, interpretation, from); | ||
21947 | find mustExist(problem, interpretation, to); | ||
21948 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
21949 | BooleanElement(to); | ||
21950 | find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21951 | neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21952 | } | ||
21953 | pattern refineRelation_transient_attribute_EStructuralFeature( | ||
21954 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21955 | relationIterpretation:PartialRelationInterpretation, | ||
21956 | from: DefinedElement, to: DefinedElement) | ||
21957 | { | ||
21958 | find interpretation(problem,interpretation); | ||
21959 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21960 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
21961 | find mustExist(problem, interpretation, from); | ||
21962 | find mustExist(problem, interpretation, to); | ||
21963 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
21964 | BooleanElement(to); | ||
21965 | find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21966 | neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21967 | } | ||
21968 | pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature( | ||
21969 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21970 | relationIterpretation:PartialRelationInterpretation, | ||
21971 | from: DefinedElement, to: DefinedElement) | ||
21972 | { | ||
21973 | find interpretation(problem,interpretation); | ||
21974 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21975 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
21976 | find mustExist(problem, interpretation, from); | ||
21977 | find mustExist(problem, interpretation, to); | ||
21978 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
21979 | StringElement(to); | ||
21980 | find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21981 | neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21982 | } | ||
21983 | pattern refineRelation_unsettable_attribute_EStructuralFeature( | ||
21984 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
21985 | relationIterpretation:PartialRelationInterpretation, | ||
21986 | from: DefinedElement, to: DefinedElement) | ||
21987 | { | ||
21988 | find interpretation(problem,interpretation); | ||
21989 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
21990 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
21991 | find mustExist(problem, interpretation, from); | ||
21992 | find mustExist(problem, interpretation, to); | ||
21993 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
21994 | BooleanElement(to); | ||
21995 | find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21996 | neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
21997 | } | ||
21998 | pattern refineRelation_derived_attribute_EStructuralFeature( | ||
21999 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22000 | relationIterpretation:PartialRelationInterpretation, | ||
22001 | from: DefinedElement, to: DefinedElement) | ||
22002 | { | ||
22003 | find interpretation(problem,interpretation); | ||
22004 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22005 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
22006 | find mustExist(problem, interpretation, from); | ||
22007 | find mustExist(problem, interpretation, to); | ||
22008 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
22009 | BooleanElement(to); | ||
22010 | find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
22011 | neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
22012 | } | ||
22013 | pattern refineRelation_ordered_attribute_ETypedElement( | ||
22014 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22015 | relationIterpretation:PartialRelationInterpretation, | ||
22016 | from: DefinedElement, to: DefinedElement) | ||
22017 | { | ||
22018 | find interpretation(problem,interpretation); | ||
22019 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22020 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
22021 | find mustExist(problem, interpretation, from); | ||
22022 | find mustExist(problem, interpretation, to); | ||
22023 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22024 | BooleanElement(to); | ||
22025 | find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
22026 | neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
22027 | } | ||
22028 | pattern refineRelation_unique_attribute_ETypedElement( | ||
22029 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22030 | relationIterpretation:PartialRelationInterpretation, | ||
22031 | from: DefinedElement, to: DefinedElement) | ||
22032 | { | ||
22033 | find interpretation(problem,interpretation); | ||
22034 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22035 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
22036 | find mustExist(problem, interpretation, from); | ||
22037 | find mustExist(problem, interpretation, to); | ||
22038 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22039 | BooleanElement(to); | ||
22040 | find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
22041 | neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
22042 | } | ||
22043 | pattern refineRelation_lowerBound_attribute_ETypedElement( | ||
22044 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22045 | relationIterpretation:PartialRelationInterpretation, | ||
22046 | from: DefinedElement, to: DefinedElement) | ||
22047 | { | ||
22048 | find interpretation(problem,interpretation); | ||
22049 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22050 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
22051 | find mustExist(problem, interpretation, from); | ||
22052 | find mustExist(problem, interpretation, to); | ||
22053 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22054 | IntegerElement(to); | ||
22055 | find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
22056 | neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
22057 | } | ||
22058 | pattern refineRelation_upperBound_attribute_ETypedElement( | ||
22059 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22060 | relationIterpretation:PartialRelationInterpretation, | ||
22061 | from: DefinedElement, to: DefinedElement) | ||
22062 | { | ||
22063 | find interpretation(problem,interpretation); | ||
22064 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22065 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
22066 | find mustExist(problem, interpretation, from); | ||
22067 | find mustExist(problem, interpretation, to); | ||
22068 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22069 | IntegerElement(to); | ||
22070 | find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
22071 | neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
22072 | } | ||
22073 | pattern refineRelation_many_attribute_ETypedElement( | ||
22074 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22075 | relationIterpretation:PartialRelationInterpretation, | ||
22076 | from: DefinedElement, to: DefinedElement) | ||
22077 | { | ||
22078 | find interpretation(problem,interpretation); | ||
22079 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22080 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
22081 | find mustExist(problem, interpretation, from); | ||
22082 | find mustExist(problem, interpretation, to); | ||
22083 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22084 | BooleanElement(to); | ||
22085 | find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
22086 | neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
22087 | } | ||
22088 | pattern refineRelation_required_attribute_ETypedElement( | ||
22089 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22090 | relationIterpretation:PartialRelationInterpretation, | ||
22091 | from: DefinedElement, to: DefinedElement) | ||
22092 | { | ||
22093 | find interpretation(problem,interpretation); | ||
22094 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22095 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
22096 | find mustExist(problem, interpretation, from); | ||
22097 | find mustExist(problem, interpretation, to); | ||
22098 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
22099 | BooleanElement(to); | ||
22100 | find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
22101 | neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
22102 | } | ||
22103 | pattern refineRelation_key_attribute_EStringToStringMapEntry( | ||
22104 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22105 | relationIterpretation:PartialRelationInterpretation, | ||
22106 | from: DefinedElement, to: DefinedElement) | ||
22107 | { | ||
22108 | find interpretation(problem,interpretation); | ||
22109 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22110 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
22111 | find mustExist(problem, interpretation, from); | ||
22112 | find mustExist(problem, interpretation, to); | ||
22113 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
22114 | StringElement(to); | ||
22115 | find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
22116 | neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
22117 | } | ||
22118 | pattern refineRelation_value_attribute_EStringToStringMapEntry( | ||
22119 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
22120 | relationIterpretation:PartialRelationInterpretation, | ||
22121 | from: DefinedElement, to: DefinedElement) | ||
22122 | { | ||
22123 | find interpretation(problem,interpretation); | ||
22124 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
22125 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
22126 | find mustExist(problem, interpretation, from); | ||
22127 | find mustExist(problem, interpretation, to); | ||
22128 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
22129 | StringElement(to); | ||
22130 | find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
22131 | neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
22132 | } | ||
22133 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
22134 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
22135 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
22136 | |||
22137 | ////////// | ||
22138 | // 0. Util | ||
22139 | ////////// | ||
22140 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22141 | PartialInterpretation.problem(interpretation,problem); | ||
22142 | } | ||
22143 | |||
22144 | ///////////////////////// | ||
22145 | // 0.1 Existence | ||
22146 | ///////////////////////// | ||
22147 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22148 | find interpretation(problem,interpretation); | ||
22149 | LogicProblem.elements(problem,element); | ||
22150 | } or { | ||
22151 | find interpretation(problem,interpretation); | ||
22152 | PartialInterpretation.newElements(interpretation,element); | ||
22153 | } | ||
22154 | |||
22155 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22156 | find mustExist(problem,interpretation,element); | ||
22157 | } or { | ||
22158 | find interpretation(problem,interpretation); | ||
22159 | neg find elementCloseWorld(element); | ||
22160 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22161 | } | ||
22162 | |||
22163 | private pattern elementCloseWorld(element:DefinedElement) { | ||
22164 | PartialInterpretation.openWorldElements(i,element); | ||
22165 | PartialInterpretation.maxNewElements(i,0); | ||
22166 | } or { | ||
22167 | Scope.targetTypeInterpretation(scope,interpretation); | ||
22168 | PartialTypeInterpratation.elements(interpretation,element); | ||
22169 | Scope.maxNewElements(scope,0); | ||
22170 | } | ||
22171 | |||
22172 | //////////////////////// | ||
22173 | // 0.2 Equivalence | ||
22174 | //////////////////////// | ||
22175 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
22176 | find mayExist(problem,interpretation,a); | ||
22177 | find mayExist(problem,interpretation,b); | ||
22178 | a == b; | ||
22179 | } | ||
22180 | |||
22181 | //////////////////////// | ||
22182 | // 0.3 Required Patterns by TypeIndexer | ||
22183 | //////////////////////// | ||
22184 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
22185 | find interpretation(problem,interpretation); | ||
22186 | LogicProblem.types(problem,type); | ||
22187 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
22188 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22189 | } | ||
22190 | |||
22191 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
22192 | find interpretation(problem,interpretation); | ||
22193 | LogicProblem.types(problem,type); | ||
22194 | TypeDefinition.elements(type,element); | ||
22195 | } or { | ||
22196 | find interpretation(problem,interpretation); | ||
22197 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
22198 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
22199 | } | ||
22200 | |||
22201 | private pattern isPrimitive(element: PrimitiveElement) { | ||
22202 | PrimitiveElement(element); | ||
22203 | } | ||
22204 | |||
22205 | ////////// | ||
22206 | // 1. Problem-Specific Base Indexers | ||
22207 | ////////// | ||
22208 | // 1.1 Type Indexers | ||
22209 | ////////// | ||
22210 | // 1.1.1 primitive Type Indexers | ||
22211 | ////////// | ||
22212 | |||
22213 | ////////// | ||
22214 | // 1.1.2 domain-specific Type Indexers | ||
22215 | ////////// | ||
22216 | /** | ||
22217 | * An element must be an instance of type "EAttribute class". | ||
22218 | */ | ||
22219 | private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22220 | Type.name(type,"EAttribute class"); | ||
22221 | find directInstanceOf(problem,interpretation,element,type); | ||
22222 | } | ||
22223 | private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22224 | find interpretation(problem,interpretation); | ||
22225 | PartialInterpretation.scopes(interpretation,scope); | ||
22226 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22227 | Scope.maxNewElements(scope,0); | ||
22228 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22229 | Type.name(type,"EAttribute class"); | ||
22230 | } | ||
22231 | |||
22232 | /** | ||
22233 | * An element may be an instance of type "EAttribute class". | ||
22234 | */ | ||
22235 | private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22236 | { | ||
22237 | find interpretation(problem,interpretation); | ||
22238 | PartialInterpretation.newElements(interpretation,element); | ||
22239 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22240 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22241 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22242 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22243 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22244 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22245 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22246 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22247 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22248 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
22249 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22250 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
22251 | neg find isPrimitive(element); | ||
22252 | } or { | ||
22253 | find interpretation(problem,interpretation); | ||
22254 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22255 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22256 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22257 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22258 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22259 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22260 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22261 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22262 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22263 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22264 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
22265 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22266 | neg find scopeDisallowsNewEAttribute_class(problem, interpretation); | ||
22267 | neg find isPrimitive(element); | ||
22268 | } or | ||
22269 | { find mustInstanceOfEAttribute_class(problem,interpretation,element); } | ||
22270 | /** | ||
22271 | * An element must be an instance of type "EAnnotation class". | ||
22272 | */ | ||
22273 | private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22274 | Type.name(type,"EAnnotation class"); | ||
22275 | find directInstanceOf(problem,interpretation,element,type); | ||
22276 | } | ||
22277 | private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22278 | find interpretation(problem,interpretation); | ||
22279 | PartialInterpretation.scopes(interpretation,scope); | ||
22280 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22281 | Scope.maxNewElements(scope,0); | ||
22282 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22283 | Type.name(type,"EAnnotation class"); | ||
22284 | } | ||
22285 | |||
22286 | /** | ||
22287 | * An element may be an instance of type "EAnnotation class". | ||
22288 | */ | ||
22289 | private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22290 | { | ||
22291 | find interpretation(problem,interpretation); | ||
22292 | PartialInterpretation.newElements(interpretation,element); | ||
22293 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22294 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22295 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22296 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
22297 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
22298 | neg find isPrimitive(element); | ||
22299 | } or { | ||
22300 | find interpretation(problem,interpretation); | ||
22301 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22302 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22303 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22304 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22305 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
22306 | neg find scopeDisallowsNewEAnnotation_class(problem, interpretation); | ||
22307 | neg find isPrimitive(element); | ||
22308 | } or | ||
22309 | { find mustInstanceOfEAnnotation_class(problem,interpretation,element); } | ||
22310 | /** | ||
22311 | * An element must be an instance of type "EClass class". | ||
22312 | */ | ||
22313 | private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22314 | Type.name(type,"EClass class"); | ||
22315 | find directInstanceOf(problem,interpretation,element,type); | ||
22316 | } | ||
22317 | private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22318 | find interpretation(problem,interpretation); | ||
22319 | PartialInterpretation.scopes(interpretation,scope); | ||
22320 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22321 | Scope.maxNewElements(scope,0); | ||
22322 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22323 | Type.name(type,"EClass class"); | ||
22324 | } | ||
22325 | |||
22326 | /** | ||
22327 | * An element may be an instance of type "EClass class". | ||
22328 | */ | ||
22329 | private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22330 | { | ||
22331 | find interpretation(problem,interpretation); | ||
22332 | PartialInterpretation.newElements(interpretation,element); | ||
22333 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22334 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
22335 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22336 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22337 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22338 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22339 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22340 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22341 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22342 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
22343 | neg find isPrimitive(element); | ||
22344 | } or { | ||
22345 | find interpretation(problem,interpretation); | ||
22346 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22347 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22348 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
22349 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22350 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22351 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22352 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22353 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22354 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22355 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22356 | neg find scopeDisallowsNewEClass_class(problem, interpretation); | ||
22357 | neg find isPrimitive(element); | ||
22358 | } or | ||
22359 | { find mustInstanceOfEClass_class(problem,interpretation,element); } | ||
22360 | /** | ||
22361 | * An element must be an instance of type "EClassifier class". | ||
22362 | */ | ||
22363 | private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22364 | Type.name(type,"EClassifier class"); | ||
22365 | find directInstanceOf(problem,interpretation,element,type); | ||
22366 | } | ||
22367 | private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22368 | find interpretation(problem,interpretation); | ||
22369 | PartialInterpretation.scopes(interpretation,scope); | ||
22370 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22371 | Scope.maxNewElements(scope,0); | ||
22372 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22373 | Type.name(type,"EClassifier class"); | ||
22374 | } | ||
22375 | |||
22376 | /** | ||
22377 | * An element may be an instance of type "EClassifier class". | ||
22378 | */ | ||
22379 | private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22380 | { | ||
22381 | find interpretation(problem,interpretation); | ||
22382 | PartialInterpretation.newElements(interpretation,element); | ||
22383 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22384 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
22385 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22386 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22387 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22388 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22389 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22390 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22391 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22392 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22393 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
22394 | neg find isPrimitive(element); | ||
22395 | } or { | ||
22396 | find interpretation(problem,interpretation); | ||
22397 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22398 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22399 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
22400 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22401 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22402 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22403 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22404 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22405 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22406 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22407 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22408 | neg find scopeDisallowsNewEClassifier_class(problem, interpretation); | ||
22409 | neg find isPrimitive(element); | ||
22410 | } or | ||
22411 | { find mustInstanceOfEClassifier_class(problem,interpretation,element); } | ||
22412 | /** | ||
22413 | * An element must be an instance of type "EDataType class". | ||
22414 | */ | ||
22415 | private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22416 | Type.name(type,"EDataType class"); | ||
22417 | find directInstanceOf(problem,interpretation,element,type); | ||
22418 | } | ||
22419 | private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22420 | find interpretation(problem,interpretation); | ||
22421 | PartialInterpretation.scopes(interpretation,scope); | ||
22422 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22423 | Scope.maxNewElements(scope,0); | ||
22424 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22425 | Type.name(type,"EDataType class"); | ||
22426 | } | ||
22427 | |||
22428 | /** | ||
22429 | * An element may be an instance of type "EDataType class". | ||
22430 | */ | ||
22431 | private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22432 | { | ||
22433 | find interpretation(problem,interpretation); | ||
22434 | PartialInterpretation.newElements(interpretation,element); | ||
22435 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22436 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22437 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
22438 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22439 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22440 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22441 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22442 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22443 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22444 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22445 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
22446 | neg find isPrimitive(element); | ||
22447 | } or { | ||
22448 | find interpretation(problem,interpretation); | ||
22449 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22450 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22451 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22452 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
22453 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22454 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22455 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22456 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22457 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22458 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22459 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22460 | neg find scopeDisallowsNewEDataType_class(problem, interpretation); | ||
22461 | neg find isPrimitive(element); | ||
22462 | } or | ||
22463 | { find mustInstanceOfEDataType_class(problem,interpretation,element); } | ||
22464 | /** | ||
22465 | * An element must be an instance of type "EEnum class". | ||
22466 | */ | ||
22467 | private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22468 | Type.name(type,"EEnum class"); | ||
22469 | find directInstanceOf(problem,interpretation,element,type); | ||
22470 | } | ||
22471 | private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22472 | find interpretation(problem,interpretation); | ||
22473 | PartialInterpretation.scopes(interpretation,scope); | ||
22474 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22475 | Scope.maxNewElements(scope,0); | ||
22476 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22477 | Type.name(type,"EEnum class"); | ||
22478 | } | ||
22479 | |||
22480 | /** | ||
22481 | * An element may be an instance of type "EEnum class". | ||
22482 | */ | ||
22483 | private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22484 | { | ||
22485 | find interpretation(problem,interpretation); | ||
22486 | PartialInterpretation.newElements(interpretation,element); | ||
22487 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22488 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22489 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22490 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22491 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22492 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22493 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22494 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22495 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22496 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
22497 | neg find isPrimitive(element); | ||
22498 | } or { | ||
22499 | find interpretation(problem,interpretation); | ||
22500 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22501 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22502 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22503 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22504 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22505 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22506 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22507 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22508 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22509 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
22510 | neg find scopeDisallowsNewEEnum_class(problem, interpretation); | ||
22511 | neg find isPrimitive(element); | ||
22512 | } or | ||
22513 | { find mustInstanceOfEEnum_class(problem,interpretation,element); } | ||
22514 | /** | ||
22515 | * An element must be an instance of type "EEnumLiteral class". | ||
22516 | */ | ||
22517 | private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22518 | Type.name(type,"EEnumLiteral class"); | ||
22519 | find directInstanceOf(problem,interpretation,element,type); | ||
22520 | } | ||
22521 | private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22522 | find interpretation(problem,interpretation); | ||
22523 | PartialInterpretation.scopes(interpretation,scope); | ||
22524 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22525 | Scope.maxNewElements(scope,0); | ||
22526 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22527 | Type.name(type,"EEnumLiteral class"); | ||
22528 | } | ||
22529 | |||
22530 | /** | ||
22531 | * An element may be an instance of type "EEnumLiteral class". | ||
22532 | */ | ||
22533 | private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22534 | { | ||
22535 | find interpretation(problem,interpretation); | ||
22536 | PartialInterpretation.newElements(interpretation,element); | ||
22537 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22538 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22539 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22540 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22541 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22542 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22543 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22544 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22545 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
22546 | neg find isPrimitive(element); | ||
22547 | } or { | ||
22548 | find interpretation(problem,interpretation); | ||
22549 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22550 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22551 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22552 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22553 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22554 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22555 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
22556 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22557 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22558 | neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation); | ||
22559 | neg find isPrimitive(element); | ||
22560 | } or | ||
22561 | { find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); } | ||
22562 | /** | ||
22563 | * An element must be an instance of type "EModelElement class". | ||
22564 | */ | ||
22565 | private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22566 | Type.name(type,"EModelElement class"); | ||
22567 | find directInstanceOf(problem,interpretation,element,type); | ||
22568 | } | ||
22569 | private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22570 | find interpretation(problem,interpretation); | ||
22571 | PartialInterpretation.scopes(interpretation,scope); | ||
22572 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22573 | Scope.maxNewElements(scope,0); | ||
22574 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22575 | Type.name(type,"EModelElement class"); | ||
22576 | } | ||
22577 | |||
22578 | /** | ||
22579 | * An element may be an instance of type "EModelElement class". | ||
22580 | */ | ||
22581 | private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22582 | { | ||
22583 | find interpretation(problem,interpretation); | ||
22584 | PartialInterpretation.newElements(interpretation,element); | ||
22585 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22586 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22587 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22588 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22589 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
22590 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
22591 | neg find isPrimitive(element); | ||
22592 | } or { | ||
22593 | find interpretation(problem,interpretation); | ||
22594 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22595 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22596 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22597 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22598 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22599 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
22600 | neg find scopeDisallowsNewEModelElement_class(problem, interpretation); | ||
22601 | neg find isPrimitive(element); | ||
22602 | } or | ||
22603 | { find mustInstanceOfEModelElement_class(problem,interpretation,element); } | ||
22604 | /** | ||
22605 | * An element must be an instance of type "ENamedElement class". | ||
22606 | */ | ||
22607 | private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22608 | Type.name(type,"ENamedElement class"); | ||
22609 | find directInstanceOf(problem,interpretation,element,type); | ||
22610 | } | ||
22611 | private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22612 | find interpretation(problem,interpretation); | ||
22613 | PartialInterpretation.scopes(interpretation,scope); | ||
22614 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22615 | Scope.maxNewElements(scope,0); | ||
22616 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22617 | Type.name(type,"ENamedElement class"); | ||
22618 | } | ||
22619 | |||
22620 | /** | ||
22621 | * An element may be an instance of type "ENamedElement class". | ||
22622 | */ | ||
22623 | private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22624 | { | ||
22625 | find interpretation(problem,interpretation); | ||
22626 | PartialInterpretation.newElements(interpretation,element); | ||
22627 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22628 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22629 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22630 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22631 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22632 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
22633 | neg find isPrimitive(element); | ||
22634 | } or { | ||
22635 | find interpretation(problem,interpretation); | ||
22636 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22637 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22638 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22639 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22640 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22641 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22642 | neg find scopeDisallowsNewENamedElement_class(problem, interpretation); | ||
22643 | neg find isPrimitive(element); | ||
22644 | } or | ||
22645 | { find mustInstanceOfENamedElement_class(problem,interpretation,element); } | ||
22646 | /** | ||
22647 | * An element must be an instance of type "EObject class". | ||
22648 | */ | ||
22649 | private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22650 | Type.name(type,"EObject class"); | ||
22651 | find directInstanceOf(problem,interpretation,element,type); | ||
22652 | } | ||
22653 | private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22654 | find interpretation(problem,interpretation); | ||
22655 | PartialInterpretation.scopes(interpretation,scope); | ||
22656 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22657 | Scope.maxNewElements(scope,0); | ||
22658 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22659 | Type.name(type,"EObject class"); | ||
22660 | } | ||
22661 | |||
22662 | /** | ||
22663 | * An element may be an instance of type "EObject class". | ||
22664 | */ | ||
22665 | private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22666 | { | ||
22667 | find interpretation(problem,interpretation); | ||
22668 | PartialInterpretation.newElements(interpretation,element); | ||
22669 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
22670 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22671 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22672 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
22673 | neg find isPrimitive(element); | ||
22674 | } or { | ||
22675 | find interpretation(problem,interpretation); | ||
22676 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22677 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
22678 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22679 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22680 | neg find scopeDisallowsNewEObject_class(problem, interpretation); | ||
22681 | neg find isPrimitive(element); | ||
22682 | } or | ||
22683 | { find mustInstanceOfEObject_class(problem,interpretation,element); } | ||
22684 | /** | ||
22685 | * An element must be an instance of type "EOperation class". | ||
22686 | */ | ||
22687 | private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22688 | Type.name(type,"EOperation class"); | ||
22689 | find directInstanceOf(problem,interpretation,element,type); | ||
22690 | } | ||
22691 | private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22692 | find interpretation(problem,interpretation); | ||
22693 | PartialInterpretation.scopes(interpretation,scope); | ||
22694 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22695 | Scope.maxNewElements(scope,0); | ||
22696 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22697 | Type.name(type,"EOperation class"); | ||
22698 | } | ||
22699 | |||
22700 | /** | ||
22701 | * An element may be an instance of type "EOperation class". | ||
22702 | */ | ||
22703 | private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22704 | { | ||
22705 | find interpretation(problem,interpretation); | ||
22706 | PartialInterpretation.newElements(interpretation,element); | ||
22707 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22708 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22709 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22710 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22711 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22712 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22713 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22714 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22715 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22716 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22717 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
22718 | neg find isPrimitive(element); | ||
22719 | } or { | ||
22720 | find interpretation(problem,interpretation); | ||
22721 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22722 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22723 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22724 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22725 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22726 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22727 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22728 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22729 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22730 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22731 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22732 | neg find scopeDisallowsNewEOperation_class(problem, interpretation); | ||
22733 | neg find isPrimitive(element); | ||
22734 | } or | ||
22735 | { find mustInstanceOfEOperation_class(problem,interpretation,element); } | ||
22736 | /** | ||
22737 | * An element must be an instance of type "EPackage class". | ||
22738 | */ | ||
22739 | private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22740 | Type.name(type,"EPackage class"); | ||
22741 | find directInstanceOf(problem,interpretation,element,type); | ||
22742 | } | ||
22743 | private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22744 | find interpretation(problem,interpretation); | ||
22745 | PartialInterpretation.scopes(interpretation,scope); | ||
22746 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22747 | Scope.maxNewElements(scope,0); | ||
22748 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22749 | Type.name(type,"EPackage class"); | ||
22750 | } | ||
22751 | |||
22752 | /** | ||
22753 | * An element may be an instance of type "EPackage class". | ||
22754 | */ | ||
22755 | private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22756 | { | ||
22757 | find interpretation(problem,interpretation); | ||
22758 | PartialInterpretation.newElements(interpretation,element); | ||
22759 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22760 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22761 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22762 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22763 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
22764 | neg find isPrimitive(element); | ||
22765 | } or { | ||
22766 | find interpretation(problem,interpretation); | ||
22767 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22768 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22769 | neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); | ||
22770 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22771 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22772 | neg find scopeDisallowsNewEPackage_class(problem, interpretation); | ||
22773 | neg find isPrimitive(element); | ||
22774 | } or | ||
22775 | { find mustInstanceOfEPackage_class(problem,interpretation,element); } | ||
22776 | /** | ||
22777 | * An element must be an instance of type "EParameter class". | ||
22778 | */ | ||
22779 | private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22780 | Type.name(type,"EParameter class"); | ||
22781 | find directInstanceOf(problem,interpretation,element,type); | ||
22782 | } | ||
22783 | private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22784 | find interpretation(problem,interpretation); | ||
22785 | PartialInterpretation.scopes(interpretation,scope); | ||
22786 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22787 | Scope.maxNewElements(scope,0); | ||
22788 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22789 | Type.name(type,"EParameter class"); | ||
22790 | } | ||
22791 | |||
22792 | /** | ||
22793 | * An element may be an instance of type "EParameter class". | ||
22794 | */ | ||
22795 | private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22796 | { | ||
22797 | find interpretation(problem,interpretation); | ||
22798 | PartialInterpretation.newElements(interpretation,element); | ||
22799 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22800 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22801 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22802 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22803 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22804 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22805 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22806 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22807 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22808 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22809 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
22810 | neg find isPrimitive(element); | ||
22811 | } or { | ||
22812 | find interpretation(problem,interpretation); | ||
22813 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22814 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22815 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22816 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22817 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22818 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22819 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22820 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22821 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22822 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22823 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22824 | neg find scopeDisallowsNewEParameter_class(problem, interpretation); | ||
22825 | neg find isPrimitive(element); | ||
22826 | } or | ||
22827 | { find mustInstanceOfEParameter_class(problem,interpretation,element); } | ||
22828 | /** | ||
22829 | * An element must be an instance of type "EReference class". | ||
22830 | */ | ||
22831 | private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22832 | Type.name(type,"EReference class"); | ||
22833 | find directInstanceOf(problem,interpretation,element,type); | ||
22834 | } | ||
22835 | private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22836 | find interpretation(problem,interpretation); | ||
22837 | PartialInterpretation.scopes(interpretation,scope); | ||
22838 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22839 | Scope.maxNewElements(scope,0); | ||
22840 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22841 | Type.name(type,"EReference class"); | ||
22842 | } | ||
22843 | |||
22844 | /** | ||
22845 | * An element may be an instance of type "EReference class". | ||
22846 | */ | ||
22847 | private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22848 | { | ||
22849 | find interpretation(problem,interpretation); | ||
22850 | PartialInterpretation.newElements(interpretation,element); | ||
22851 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22852 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
22853 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22854 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22855 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22856 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22857 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22858 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22859 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22860 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22861 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22862 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
22863 | neg find isPrimitive(element); | ||
22864 | } or { | ||
22865 | find interpretation(problem,interpretation); | ||
22866 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22867 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22868 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
22869 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22870 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22871 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22872 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22873 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22874 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22875 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22876 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22877 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22878 | neg find scopeDisallowsNewEReference_class(problem, interpretation); | ||
22879 | neg find isPrimitive(element); | ||
22880 | } or | ||
22881 | { find mustInstanceOfEReference_class(problem,interpretation,element); } | ||
22882 | /** | ||
22883 | * An element must be an instance of type "EStructuralFeature class". | ||
22884 | */ | ||
22885 | private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22886 | Type.name(type,"EStructuralFeature class"); | ||
22887 | find directInstanceOf(problem,interpretation,element,type); | ||
22888 | } | ||
22889 | private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22890 | find interpretation(problem,interpretation); | ||
22891 | PartialInterpretation.scopes(interpretation,scope); | ||
22892 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22893 | Scope.maxNewElements(scope,0); | ||
22894 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22895 | Type.name(type,"EStructuralFeature class"); | ||
22896 | } | ||
22897 | |||
22898 | /** | ||
22899 | * An element may be an instance of type "EStructuralFeature class". | ||
22900 | */ | ||
22901 | private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22902 | { | ||
22903 | find interpretation(problem,interpretation); | ||
22904 | PartialInterpretation.newElements(interpretation,element); | ||
22905 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22906 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
22907 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22908 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22909 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22910 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22911 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22912 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22913 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22914 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22915 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22916 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
22917 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
22918 | neg find isPrimitive(element); | ||
22919 | } or { | ||
22920 | find interpretation(problem,interpretation); | ||
22921 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22922 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22923 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
22924 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22925 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22926 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22927 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22928 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22929 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22930 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22931 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22932 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22933 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
22934 | neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation); | ||
22935 | neg find isPrimitive(element); | ||
22936 | } or | ||
22937 | { find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } | ||
22938 | /** | ||
22939 | * An element must be an instance of type "ETypedElement class". | ||
22940 | */ | ||
22941 | private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22942 | Type.name(type,"ETypedElement class"); | ||
22943 | find directInstanceOf(problem,interpretation,element,type); | ||
22944 | } | ||
22945 | private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
22946 | find interpretation(problem,interpretation); | ||
22947 | PartialInterpretation.scopes(interpretation,scope); | ||
22948 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
22949 | Scope.maxNewElements(scope,0); | ||
22950 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
22951 | Type.name(type,"ETypedElement class"); | ||
22952 | } | ||
22953 | |||
22954 | /** | ||
22955 | * An element may be an instance of type "ETypedElement class". | ||
22956 | */ | ||
22957 | private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
22958 | { | ||
22959 | find interpretation(problem,interpretation); | ||
22960 | PartialInterpretation.newElements(interpretation,element); | ||
22961 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22962 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22963 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22964 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22965 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22966 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22967 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22968 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22969 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22970 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22971 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22972 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
22973 | neg find isPrimitive(element); | ||
22974 | } or { | ||
22975 | find interpretation(problem,interpretation); | ||
22976 | PartialInterpretation.openWorldElements(interpretation,element); | ||
22977 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
22978 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
22979 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
22980 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
22981 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
22982 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
22983 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
22984 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
22985 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
22986 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
22987 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
22988 | neg find scopeDisallowsNewETypedElement_class(problem, interpretation); | ||
22989 | neg find isPrimitive(element); | ||
22990 | } or | ||
22991 | { find mustInstanceOfETypedElement_class(problem,interpretation,element); } | ||
22992 | /** | ||
22993 | * An element must be an instance of type "EStringToStringMapEntry class". | ||
22994 | */ | ||
22995 | private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
22996 | Type.name(type,"EStringToStringMapEntry class"); | ||
22997 | find directInstanceOf(problem,interpretation,element,type); | ||
22998 | } | ||
22999 | private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23000 | find interpretation(problem,interpretation); | ||
23001 | PartialInterpretation.scopes(interpretation,scope); | ||
23002 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23003 | Scope.maxNewElements(scope,0); | ||
23004 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23005 | Type.name(type,"EStringToStringMapEntry class"); | ||
23006 | } | ||
23007 | |||
23008 | /** | ||
23009 | * An element may be an instance of type "EStringToStringMapEntry class". | ||
23010 | */ | ||
23011 | private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23012 | { | ||
23013 | find interpretation(problem,interpretation); | ||
23014 | PartialInterpretation.newElements(interpretation,element); | ||
23015 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
23016 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23017 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23018 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
23019 | neg find isPrimitive(element); | ||
23020 | } or { | ||
23021 | find interpretation(problem,interpretation); | ||
23022 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23023 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
23024 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23025 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23026 | neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); | ||
23027 | neg find isPrimitive(element); | ||
23028 | } or | ||
23029 | { find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } | ||
23030 | /** | ||
23031 | * An element must be an instance of type "EGenericType class". | ||
23032 | */ | ||
23033 | private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23034 | Type.name(type,"EGenericType class"); | ||
23035 | find directInstanceOf(problem,interpretation,element,type); | ||
23036 | } | ||
23037 | private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23038 | find interpretation(problem,interpretation); | ||
23039 | PartialInterpretation.scopes(interpretation,scope); | ||
23040 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23041 | Scope.maxNewElements(scope,0); | ||
23042 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23043 | Type.name(type,"EGenericType class"); | ||
23044 | } | ||
23045 | |||
23046 | /** | ||
23047 | * An element may be an instance of type "EGenericType class". | ||
23048 | */ | ||
23049 | private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23050 | { | ||
23051 | find interpretation(problem,interpretation); | ||
23052 | PartialInterpretation.newElements(interpretation,element); | ||
23053 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
23054 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23055 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23056 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
23057 | neg find isPrimitive(element); | ||
23058 | } or { | ||
23059 | find interpretation(problem,interpretation); | ||
23060 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23061 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
23062 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23063 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23064 | neg find scopeDisallowsNewEGenericType_class(problem, interpretation); | ||
23065 | neg find isPrimitive(element); | ||
23066 | } or | ||
23067 | { find mustInstanceOfEGenericType_class(problem,interpretation,element); } | ||
23068 | /** | ||
23069 | * An element must be an instance of type "ETypeParameter class". | ||
23070 | */ | ||
23071 | private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23072 | Type.name(type,"ETypeParameter class"); | ||
23073 | find directInstanceOf(problem,interpretation,element,type); | ||
23074 | } | ||
23075 | private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23076 | find interpretation(problem,interpretation); | ||
23077 | PartialInterpretation.scopes(interpretation,scope); | ||
23078 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23079 | Scope.maxNewElements(scope,0); | ||
23080 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23081 | Type.name(type,"ETypeParameter class"); | ||
23082 | } | ||
23083 | |||
23084 | /** | ||
23085 | * An element may be an instance of type "ETypeParameter class". | ||
23086 | */ | ||
23087 | private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23088 | { | ||
23089 | find interpretation(problem,interpretation); | ||
23090 | PartialInterpretation.newElements(interpretation,element); | ||
23091 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
23092 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23093 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23094 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23095 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23096 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23097 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23098 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23099 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
23100 | neg find isPrimitive(element); | ||
23101 | } or { | ||
23102 | find interpretation(problem,interpretation); | ||
23103 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23104 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
23105 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23106 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23107 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23108 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23109 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23110 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23111 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23112 | neg find scopeDisallowsNewETypeParameter_class(problem, interpretation); | ||
23113 | neg find isPrimitive(element); | ||
23114 | } or | ||
23115 | { find mustInstanceOfETypeParameter_class(problem,interpretation,element); } | ||
23116 | /** | ||
23117 | * An element must be an instance of type "EModelElement class DefinedPart". | ||
23118 | */ | ||
23119 | private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23120 | Type.name(type,"EModelElement class DefinedPart"); | ||
23121 | find directInstanceOf(problem,interpretation,element,type); | ||
23122 | } | ||
23123 | private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23124 | find interpretation(problem,interpretation); | ||
23125 | PartialInterpretation.scopes(interpretation,scope); | ||
23126 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23127 | Scope.maxNewElements(scope,0); | ||
23128 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23129 | Type.name(type,"EModelElement class DefinedPart"); | ||
23130 | } | ||
23131 | |||
23132 | /** | ||
23133 | * An element may be an instance of type "EModelElement class DefinedPart". | ||
23134 | */ | ||
23135 | private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23136 | { find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); } | ||
23137 | /** | ||
23138 | * An element must be an instance of type "EModelElement class UndefinedPart". | ||
23139 | */ | ||
23140 | private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23141 | Type.name(type,"EModelElement class UndefinedPart"); | ||
23142 | find directInstanceOf(problem,interpretation,element,type); | ||
23143 | } | ||
23144 | private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23145 | find interpretation(problem,interpretation); | ||
23146 | PartialInterpretation.scopes(interpretation,scope); | ||
23147 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23148 | Scope.maxNewElements(scope,0); | ||
23149 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23150 | Type.name(type,"EModelElement class UndefinedPart"); | ||
23151 | } | ||
23152 | |||
23153 | /** | ||
23154 | * An element may be an instance of type "EModelElement class UndefinedPart". | ||
23155 | */ | ||
23156 | private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23157 | { | ||
23158 | find interpretation(problem,interpretation); | ||
23159 | PartialInterpretation.newElements(interpretation,element); | ||
23160 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23161 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23162 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23163 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23164 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
23165 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
23166 | neg find isPrimitive(element); | ||
23167 | } or { | ||
23168 | find interpretation(problem,interpretation); | ||
23169 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23170 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23171 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23172 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23173 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23174 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
23175 | neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); | ||
23176 | neg find isPrimitive(element); | ||
23177 | } or | ||
23178 | { find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } | ||
23179 | /** | ||
23180 | * An element must be an instance of type "ENamedElement class DefinedPart". | ||
23181 | */ | ||
23182 | private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23183 | Type.name(type,"ENamedElement class DefinedPart"); | ||
23184 | find directInstanceOf(problem,interpretation,element,type); | ||
23185 | } | ||
23186 | private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23187 | find interpretation(problem,interpretation); | ||
23188 | PartialInterpretation.scopes(interpretation,scope); | ||
23189 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23190 | Scope.maxNewElements(scope,0); | ||
23191 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23192 | Type.name(type,"ENamedElement class DefinedPart"); | ||
23193 | } | ||
23194 | |||
23195 | /** | ||
23196 | * An element may be an instance of type "ENamedElement class DefinedPart". | ||
23197 | */ | ||
23198 | private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23199 | { find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); } | ||
23200 | /** | ||
23201 | * An element must be an instance of type "ENamedElement class UndefinedPart". | ||
23202 | */ | ||
23203 | private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23204 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
23205 | find directInstanceOf(problem,interpretation,element,type); | ||
23206 | } | ||
23207 | private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23208 | find interpretation(problem,interpretation); | ||
23209 | PartialInterpretation.scopes(interpretation,scope); | ||
23210 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23211 | Scope.maxNewElements(scope,0); | ||
23212 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23213 | Type.name(type,"ENamedElement class UndefinedPart"); | ||
23214 | } | ||
23215 | |||
23216 | /** | ||
23217 | * An element may be an instance of type "ENamedElement class UndefinedPart". | ||
23218 | */ | ||
23219 | private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23220 | { | ||
23221 | find interpretation(problem,interpretation); | ||
23222 | PartialInterpretation.newElements(interpretation,element); | ||
23223 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
23224 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23225 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23226 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23227 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23228 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23229 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23230 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
23231 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23232 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
23233 | neg find isPrimitive(element); | ||
23234 | } or { | ||
23235 | find interpretation(problem,interpretation); | ||
23236 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23237 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
23238 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23239 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23240 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23241 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23242 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23243 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23244 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
23245 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23246 | neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation); | ||
23247 | neg find isPrimitive(element); | ||
23248 | } or | ||
23249 | { find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } | ||
23250 | /** | ||
23251 | * An element must be an instance of type "EPackage class DefinedPart". | ||
23252 | */ | ||
23253 | private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23254 | Type.name(type,"EPackage class DefinedPart"); | ||
23255 | find directInstanceOf(problem,interpretation,element,type); | ||
23256 | } | ||
23257 | private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23258 | find interpretation(problem,interpretation); | ||
23259 | PartialInterpretation.scopes(interpretation,scope); | ||
23260 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23261 | Scope.maxNewElements(scope,0); | ||
23262 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23263 | Type.name(type,"EPackage class DefinedPart"); | ||
23264 | } | ||
23265 | |||
23266 | /** | ||
23267 | * An element may be an instance of type "EPackage class DefinedPart". | ||
23268 | */ | ||
23269 | private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23270 | { find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } | ||
23271 | /** | ||
23272 | * An element must be an instance of type "EPackage class UndefinedPart". | ||
23273 | */ | ||
23274 | private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
23275 | Type.name(type,"EPackage class UndefinedPart"); | ||
23276 | find directInstanceOf(problem,interpretation,element,type); | ||
23277 | } | ||
23278 | private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
23279 | find interpretation(problem,interpretation); | ||
23280 | PartialInterpretation.scopes(interpretation,scope); | ||
23281 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
23282 | Scope.maxNewElements(scope,0); | ||
23283 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
23284 | Type.name(type,"EPackage class UndefinedPart"); | ||
23285 | } | ||
23286 | |||
23287 | /** | ||
23288 | * An element may be an instance of type "EPackage class UndefinedPart". | ||
23289 | */ | ||
23290 | private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
23291 | { | ||
23292 | find interpretation(problem,interpretation); | ||
23293 | PartialInterpretation.newElements(interpretation,element); | ||
23294 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23295 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23296 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23297 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23298 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23299 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23300 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
23301 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23302 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
23303 | neg find isPrimitive(element); | ||
23304 | } or { | ||
23305 | find interpretation(problem,interpretation); | ||
23306 | PartialInterpretation.openWorldElements(interpretation,element); | ||
23307 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
23308 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
23309 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
23310 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
23311 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
23312 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
23313 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
23314 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
23315 | neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation); | ||
23316 | neg find isPrimitive(element); | ||
23317 | } or | ||
23318 | { find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } | ||
23319 | |||
23320 | ////////// | ||
23321 | // 1.2 Relation Declaration Indexers | ||
23322 | ////////// | ||
23323 | /** | ||
23324 | * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) | ||
23325 | */ | ||
23326 | private pattern mustInRelationeAttributeType_reference_EAttribute( | ||
23327 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23328 | source: DefinedElement, target:DefinedElement) | ||
23329 | { | ||
23330 | find interpretation(problem,interpretation); | ||
23331 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23332 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
23333 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23334 | BinaryElementRelationLink.param1(link,source); | ||
23335 | BinaryElementRelationLink.param2(link,target); | ||
23336 | } | ||
23337 | /** | ||
23338 | * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) | ||
23339 | */ | ||
23340 | private pattern mayInRelationeAttributeType_reference_EAttribute( | ||
23341 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23342 | source: DefinedElement, target:DefinedElement) | ||
23343 | { | ||
23344 | find interpretation(problem,interpretation); | ||
23345 | // The two endpoint of the link have to exist | ||
23346 | find mayExist(problem, interpretation, source); | ||
23347 | find mayExist(problem, interpretation, target); | ||
23348 | // Type consistency | ||
23349 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
23350 | find mayInstanceOfEDataType_class(problem,interpretation,target); | ||
23351 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
23352 | // the upper bound of the multiplicity should be considered. | ||
23353 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); | ||
23354 | check(numberOfExistingReferences < 1); | ||
23355 | } or { | ||
23356 | find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); | ||
23357 | } | ||
23358 | /** | ||
23359 | * Matcher for detecting tuples t where []details reference EAnnotation(source,target) | ||
23360 | */ | ||
23361 | private pattern mustInRelationdetails_reference_EAnnotation( | ||
23362 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23363 | source: DefinedElement, target:DefinedElement) | ||
23364 | { | ||
23365 | find interpretation(problem,interpretation); | ||
23366 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23367 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); | ||
23368 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23369 | BinaryElementRelationLink.param1(link,source); | ||
23370 | BinaryElementRelationLink.param2(link,target); | ||
23371 | } | ||
23372 | /** | ||
23373 | * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) | ||
23374 | */ | ||
23375 | private pattern mayInRelationdetails_reference_EAnnotation( | ||
23376 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23377 | source: DefinedElement, target:DefinedElement) | ||
23378 | { | ||
23379 | find interpretation(problem,interpretation); | ||
23380 | // The two endpoint of the link have to exist | ||
23381 | find mayExist(problem, interpretation, source); | ||
23382 | find mayExist(problem, interpretation, target); | ||
23383 | // Type consistency | ||
23384 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
23385 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); | ||
23386 | // The reference is containment, then a new reference cannot be create if: | ||
23387 | // 1. Multiple parents | ||
23388 | neg find mustContains4(problem,interpretation,_,target); | ||
23389 | // 2. Circle in the containment hierarchy | ||
23390 | neg find mustTransitiveContains(source,target); | ||
23391 | } or { | ||
23392 | find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); | ||
23393 | } | ||
23394 | /** | ||
23395 | * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) | ||
23396 | */ | ||
23397 | private pattern mustInRelationeModelElement_reference_EAnnotation( | ||
23398 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23399 | source: DefinedElement, target:DefinedElement) | ||
23400 | { | ||
23401 | find interpretation(problem,interpretation); | ||
23402 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23403 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); | ||
23404 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23405 | BinaryElementRelationLink.param1(link,source); | ||
23406 | BinaryElementRelationLink.param2(link,target); | ||
23407 | } | ||
23408 | /** | ||
23409 | * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) | ||
23410 | */ | ||
23411 | private pattern mayInRelationeModelElement_reference_EAnnotation( | ||
23412 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23413 | source: DefinedElement, target:DefinedElement) | ||
23414 | { | ||
23415 | find interpretation(problem,interpretation); | ||
23416 | // The two endpoint of the link have to exist | ||
23417 | find mayExist(problem, interpretation, source); | ||
23418 | find mayExist(problem, interpretation, target); | ||
23419 | // Type consistency | ||
23420 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
23421 | find mayInstanceOfEModelElement_class(problem,interpretation,target); | ||
23422 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
23423 | // the upper bound of the multiplicity should be considered. | ||
23424 | numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); | ||
23425 | check(numberOfExistingReferences < 1); | ||
23426 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
23427 | // 1. Multiple parents | ||
23428 | neg find mustContains4(problem,interpretation,source,_); | ||
23429 | // 2. Circle in the containment hierarchy | ||
23430 | neg find mustTransitiveContains(source,target); | ||
23431 | } or { | ||
23432 | find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); | ||
23433 | } | ||
23434 | /** | ||
23435 | * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) | ||
23436 | */ | ||
23437 | private pattern mustInRelationcontents_reference_EAnnotation( | ||
23438 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23439 | source: DefinedElement, target:DefinedElement) | ||
23440 | { | ||
23441 | find interpretation(problem,interpretation); | ||
23442 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23443 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); | ||
23444 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23445 | BinaryElementRelationLink.param1(link,source); | ||
23446 | BinaryElementRelationLink.param2(link,target); | ||
23447 | } | ||
23448 | /** | ||
23449 | * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) | ||
23450 | */ | ||
23451 | private pattern mayInRelationcontents_reference_EAnnotation( | ||
23452 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23453 | source: DefinedElement, target:DefinedElement) | ||
23454 | { | ||
23455 | find interpretation(problem,interpretation); | ||
23456 | // The two endpoint of the link have to exist | ||
23457 | find mayExist(problem, interpretation, source); | ||
23458 | find mayExist(problem, interpretation, target); | ||
23459 | // Type consistency | ||
23460 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
23461 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
23462 | // The reference is containment, then a new reference cannot be create if: | ||
23463 | // 1. Multiple parents | ||
23464 | neg find mustContains4(problem,interpretation,_,target); | ||
23465 | // 2. Circle in the containment hierarchy | ||
23466 | neg find mustTransitiveContains(source,target); | ||
23467 | } or { | ||
23468 | find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); | ||
23469 | } | ||
23470 | /** | ||
23471 | * Matcher for detecting tuples t where []references reference EAnnotation(source,target) | ||
23472 | */ | ||
23473 | private pattern mustInRelationreferences_reference_EAnnotation( | ||
23474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23475 | source: DefinedElement, target:DefinedElement) | ||
23476 | { | ||
23477 | find interpretation(problem,interpretation); | ||
23478 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23479 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
23480 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23481 | BinaryElementRelationLink.param1(link,source); | ||
23482 | BinaryElementRelationLink.param2(link,target); | ||
23483 | } | ||
23484 | /** | ||
23485 | * Matcher for detecting tuples t where <>references reference EAnnotation(source,target) | ||
23486 | */ | ||
23487 | private pattern mayInRelationreferences_reference_EAnnotation( | ||
23488 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23489 | source: DefinedElement, target:DefinedElement) | ||
23490 | { | ||
23491 | find interpretation(problem,interpretation); | ||
23492 | // The two endpoint of the link have to exist | ||
23493 | find mayExist(problem, interpretation, source); | ||
23494 | find mayExist(problem, interpretation, target); | ||
23495 | // Type consistency | ||
23496 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
23497 | find mayInstanceOfEObject_class(problem,interpretation,target); | ||
23498 | } or { | ||
23499 | find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target); | ||
23500 | } | ||
23501 | /** | ||
23502 | * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target) | ||
23503 | */ | ||
23504 | private pattern mustInRelationeSuperTypes_reference_EClass( | ||
23505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23506 | source: DefinedElement, target:DefinedElement) | ||
23507 | { | ||
23508 | find interpretation(problem,interpretation); | ||
23509 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23510 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
23511 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23512 | BinaryElementRelationLink.param1(link,source); | ||
23513 | BinaryElementRelationLink.param2(link,target); | ||
23514 | } | ||
23515 | /** | ||
23516 | * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target) | ||
23517 | */ | ||
23518 | private pattern mayInRelationeSuperTypes_reference_EClass( | ||
23519 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23520 | source: DefinedElement, target:DefinedElement) | ||
23521 | { | ||
23522 | find interpretation(problem,interpretation); | ||
23523 | // The two endpoint of the link have to exist | ||
23524 | find mayExist(problem, interpretation, source); | ||
23525 | find mayExist(problem, interpretation, target); | ||
23526 | // Type consistency | ||
23527 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23528 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
23529 | } or { | ||
23530 | find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
23531 | } | ||
23532 | /** | ||
23533 | * Matcher for detecting tuples t where []eOperations reference EClass(source,target) | ||
23534 | */ | ||
23535 | private pattern mustInRelationeOperations_reference_EClass( | ||
23536 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23537 | source: DefinedElement, target:DefinedElement) | ||
23538 | { | ||
23539 | find interpretation(problem,interpretation); | ||
23540 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23541 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); | ||
23542 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23543 | BinaryElementRelationLink.param1(link,source); | ||
23544 | BinaryElementRelationLink.param2(link,target); | ||
23545 | } | ||
23546 | /** | ||
23547 | * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) | ||
23548 | */ | ||
23549 | private pattern mayInRelationeOperations_reference_EClass( | ||
23550 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23551 | source: DefinedElement, target:DefinedElement) | ||
23552 | { | ||
23553 | find interpretation(problem,interpretation); | ||
23554 | // The two endpoint of the link have to exist | ||
23555 | find mayExist(problem, interpretation, source); | ||
23556 | find mayExist(problem, interpretation, target); | ||
23557 | // Type consistency | ||
23558 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23559 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
23560 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
23561 | // the upper bound of the opposite reference multiplicity should be considered. | ||
23562 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); | ||
23563 | check(numberOfExistingOppositeReferences < 1); | ||
23564 | // The reference is containment, then a new reference cannot be create if: | ||
23565 | // 1. Multiple parents | ||
23566 | neg find mustContains4(problem,interpretation,_,target); | ||
23567 | // 2. Circle in the containment hierarchy | ||
23568 | neg find mustTransitiveContains(source,target); | ||
23569 | } or { | ||
23570 | find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); | ||
23571 | } | ||
23572 | /** | ||
23573 | * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target) | ||
23574 | */ | ||
23575 | private pattern mustInRelationeAllAttributes_reference_EClass( | ||
23576 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23577 | source: DefinedElement, target:DefinedElement) | ||
23578 | { | ||
23579 | find interpretation(problem,interpretation); | ||
23580 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23581 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
23582 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23583 | BinaryElementRelationLink.param1(link,source); | ||
23584 | BinaryElementRelationLink.param2(link,target); | ||
23585 | } | ||
23586 | /** | ||
23587 | * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target) | ||
23588 | */ | ||
23589 | private pattern mayInRelationeAllAttributes_reference_EClass( | ||
23590 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23591 | source: DefinedElement, target:DefinedElement) | ||
23592 | { | ||
23593 | find interpretation(problem,interpretation); | ||
23594 | // The two endpoint of the link have to exist | ||
23595 | find mayExist(problem, interpretation, source); | ||
23596 | find mayExist(problem, interpretation, target); | ||
23597 | // Type consistency | ||
23598 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23599 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
23600 | } or { | ||
23601 | find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target); | ||
23602 | } | ||
23603 | /** | ||
23604 | * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target) | ||
23605 | */ | ||
23606 | private pattern mustInRelationeAllReferences_reference_EClass( | ||
23607 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23608 | source: DefinedElement, target:DefinedElement) | ||
23609 | { | ||
23610 | find interpretation(problem,interpretation); | ||
23611 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23612 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
23613 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23614 | BinaryElementRelationLink.param1(link,source); | ||
23615 | BinaryElementRelationLink.param2(link,target); | ||
23616 | } | ||
23617 | /** | ||
23618 | * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target) | ||
23619 | */ | ||
23620 | private pattern mayInRelationeAllReferences_reference_EClass( | ||
23621 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23622 | source: DefinedElement, target:DefinedElement) | ||
23623 | { | ||
23624 | find interpretation(problem,interpretation); | ||
23625 | // The two endpoint of the link have to exist | ||
23626 | find mayExist(problem, interpretation, source); | ||
23627 | find mayExist(problem, interpretation, target); | ||
23628 | // Type consistency | ||
23629 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23630 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
23631 | } or { | ||
23632 | find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target); | ||
23633 | } | ||
23634 | /** | ||
23635 | * Matcher for detecting tuples t where []eReferences reference EClass(source,target) | ||
23636 | */ | ||
23637 | private pattern mustInRelationeReferences_reference_EClass( | ||
23638 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23639 | source: DefinedElement, target:DefinedElement) | ||
23640 | { | ||
23641 | find interpretation(problem,interpretation); | ||
23642 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23643 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
23644 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23645 | BinaryElementRelationLink.param1(link,source); | ||
23646 | BinaryElementRelationLink.param2(link,target); | ||
23647 | } | ||
23648 | /** | ||
23649 | * Matcher for detecting tuples t where <>eReferences reference EClass(source,target) | ||
23650 | */ | ||
23651 | private pattern mayInRelationeReferences_reference_EClass( | ||
23652 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23653 | source: DefinedElement, target:DefinedElement) | ||
23654 | { | ||
23655 | find interpretation(problem,interpretation); | ||
23656 | // The two endpoint of the link have to exist | ||
23657 | find mayExist(problem, interpretation, source); | ||
23658 | find mayExist(problem, interpretation, target); | ||
23659 | // Type consistency | ||
23660 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23661 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
23662 | } or { | ||
23663 | find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target); | ||
23664 | } | ||
23665 | /** | ||
23666 | * Matcher for detecting tuples t where []eAttributes reference EClass(source,target) | ||
23667 | */ | ||
23668 | private pattern mustInRelationeAttributes_reference_EClass( | ||
23669 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23670 | source: DefinedElement, target:DefinedElement) | ||
23671 | { | ||
23672 | find interpretation(problem,interpretation); | ||
23673 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23674 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
23675 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23676 | BinaryElementRelationLink.param1(link,source); | ||
23677 | BinaryElementRelationLink.param2(link,target); | ||
23678 | } | ||
23679 | /** | ||
23680 | * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target) | ||
23681 | */ | ||
23682 | private pattern mayInRelationeAttributes_reference_EClass( | ||
23683 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23684 | source: DefinedElement, target:DefinedElement) | ||
23685 | { | ||
23686 | find interpretation(problem,interpretation); | ||
23687 | // The two endpoint of the link have to exist | ||
23688 | find mayExist(problem, interpretation, source); | ||
23689 | find mayExist(problem, interpretation, target); | ||
23690 | // Type consistency | ||
23691 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23692 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
23693 | } or { | ||
23694 | find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target); | ||
23695 | } | ||
23696 | /** | ||
23697 | * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target) | ||
23698 | */ | ||
23699 | private pattern mustInRelationeAllContainments_reference_EClass( | ||
23700 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23701 | source: DefinedElement, target:DefinedElement) | ||
23702 | { | ||
23703 | find interpretation(problem,interpretation); | ||
23704 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23705 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
23706 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23707 | BinaryElementRelationLink.param1(link,source); | ||
23708 | BinaryElementRelationLink.param2(link,target); | ||
23709 | } | ||
23710 | /** | ||
23711 | * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target) | ||
23712 | */ | ||
23713 | private pattern mayInRelationeAllContainments_reference_EClass( | ||
23714 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23715 | source: DefinedElement, target:DefinedElement) | ||
23716 | { | ||
23717 | find interpretation(problem,interpretation); | ||
23718 | // The two endpoint of the link have to exist | ||
23719 | find mayExist(problem, interpretation, source); | ||
23720 | find mayExist(problem, interpretation, target); | ||
23721 | // Type consistency | ||
23722 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23723 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
23724 | } or { | ||
23725 | find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target); | ||
23726 | } | ||
23727 | /** | ||
23728 | * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target) | ||
23729 | */ | ||
23730 | private pattern mustInRelationeAllOperations_reference_EClass( | ||
23731 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23732 | source: DefinedElement, target:DefinedElement) | ||
23733 | { | ||
23734 | find interpretation(problem,interpretation); | ||
23735 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23736 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
23737 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23738 | BinaryElementRelationLink.param1(link,source); | ||
23739 | BinaryElementRelationLink.param2(link,target); | ||
23740 | } | ||
23741 | /** | ||
23742 | * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target) | ||
23743 | */ | ||
23744 | private pattern mayInRelationeAllOperations_reference_EClass( | ||
23745 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23746 | source: DefinedElement, target:DefinedElement) | ||
23747 | { | ||
23748 | find interpretation(problem,interpretation); | ||
23749 | // The two endpoint of the link have to exist | ||
23750 | find mayExist(problem, interpretation, source); | ||
23751 | find mayExist(problem, interpretation, target); | ||
23752 | // Type consistency | ||
23753 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23754 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
23755 | } or { | ||
23756 | find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target); | ||
23757 | } | ||
23758 | /** | ||
23759 | * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) | ||
23760 | */ | ||
23761 | private pattern mustInRelationeAllStructuralFeatures_reference_EClass( | ||
23762 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23763 | source: DefinedElement, target:DefinedElement) | ||
23764 | { | ||
23765 | find interpretation(problem,interpretation); | ||
23766 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23767 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
23768 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23769 | BinaryElementRelationLink.param1(link,source); | ||
23770 | BinaryElementRelationLink.param2(link,target); | ||
23771 | } | ||
23772 | /** | ||
23773 | * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) | ||
23774 | */ | ||
23775 | private pattern mayInRelationeAllStructuralFeatures_reference_EClass( | ||
23776 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23777 | source: DefinedElement, target:DefinedElement) | ||
23778 | { | ||
23779 | find interpretation(problem,interpretation); | ||
23780 | // The two endpoint of the link have to exist | ||
23781 | find mayExist(problem, interpretation, source); | ||
23782 | find mayExist(problem, interpretation, target); | ||
23783 | // Type consistency | ||
23784 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23785 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
23786 | } or { | ||
23787 | find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
23788 | } | ||
23789 | /** | ||
23790 | * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) | ||
23791 | */ | ||
23792 | private pattern mustInRelationeAllSuperTypes_reference_EClass( | ||
23793 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23794 | source: DefinedElement, target:DefinedElement) | ||
23795 | { | ||
23796 | find interpretation(problem,interpretation); | ||
23797 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23798 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
23799 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23800 | BinaryElementRelationLink.param1(link,source); | ||
23801 | BinaryElementRelationLink.param2(link,target); | ||
23802 | } | ||
23803 | /** | ||
23804 | * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) | ||
23805 | */ | ||
23806 | private pattern mayInRelationeAllSuperTypes_reference_EClass( | ||
23807 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23808 | source: DefinedElement, target:DefinedElement) | ||
23809 | { | ||
23810 | find interpretation(problem,interpretation); | ||
23811 | // The two endpoint of the link have to exist | ||
23812 | find mayExist(problem, interpretation, source); | ||
23813 | find mayExist(problem, interpretation, target); | ||
23814 | // Type consistency | ||
23815 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23816 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
23817 | } or { | ||
23818 | find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
23819 | } | ||
23820 | /** | ||
23821 | * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) | ||
23822 | */ | ||
23823 | private pattern mustInRelationeIDAttribute_reference_EClass( | ||
23824 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23825 | source: DefinedElement, target:DefinedElement) | ||
23826 | { | ||
23827 | find interpretation(problem,interpretation); | ||
23828 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23829 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
23830 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23831 | BinaryElementRelationLink.param1(link,source); | ||
23832 | BinaryElementRelationLink.param2(link,target); | ||
23833 | } | ||
23834 | /** | ||
23835 | * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) | ||
23836 | */ | ||
23837 | private pattern mayInRelationeIDAttribute_reference_EClass( | ||
23838 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23839 | source: DefinedElement, target:DefinedElement) | ||
23840 | { | ||
23841 | find interpretation(problem,interpretation); | ||
23842 | // The two endpoint of the link have to exist | ||
23843 | find mayExist(problem, interpretation, source); | ||
23844 | find mayExist(problem, interpretation, target); | ||
23845 | // Type consistency | ||
23846 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23847 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
23848 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
23849 | // the upper bound of the multiplicity should be considered. | ||
23850 | numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); | ||
23851 | check(numberOfExistingReferences < 1); | ||
23852 | } or { | ||
23853 | find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); | ||
23854 | } | ||
23855 | /** | ||
23856 | * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) | ||
23857 | */ | ||
23858 | private pattern mustInRelationeStructuralFeatures_reference_EClass( | ||
23859 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23860 | source: DefinedElement, target:DefinedElement) | ||
23861 | { | ||
23862 | find interpretation(problem,interpretation); | ||
23863 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23864 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); | ||
23865 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23866 | BinaryElementRelationLink.param1(link,source); | ||
23867 | BinaryElementRelationLink.param2(link,target); | ||
23868 | } | ||
23869 | /** | ||
23870 | * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) | ||
23871 | */ | ||
23872 | private pattern mayInRelationeStructuralFeatures_reference_EClass( | ||
23873 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23874 | source: DefinedElement, target:DefinedElement) | ||
23875 | { | ||
23876 | find interpretation(problem,interpretation); | ||
23877 | // The two endpoint of the link have to exist | ||
23878 | find mayExist(problem, interpretation, source); | ||
23879 | find mayExist(problem, interpretation, target); | ||
23880 | // Type consistency | ||
23881 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23882 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); | ||
23883 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
23884 | // the upper bound of the opposite reference multiplicity should be considered. | ||
23885 | numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); | ||
23886 | check(numberOfExistingOppositeReferences < 1); | ||
23887 | // The reference is containment, then a new reference cannot be create if: | ||
23888 | // 1. Multiple parents | ||
23889 | neg find mustContains4(problem,interpretation,_,target); | ||
23890 | // 2. Circle in the containment hierarchy | ||
23891 | neg find mustTransitiveContains(source,target); | ||
23892 | } or { | ||
23893 | find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); | ||
23894 | } | ||
23895 | /** | ||
23896 | * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target) | ||
23897 | */ | ||
23898 | private pattern mustInRelationeGenericSuperTypes_reference_EClass( | ||
23899 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23900 | source: DefinedElement, target:DefinedElement) | ||
23901 | { | ||
23902 | find interpretation(problem,interpretation); | ||
23903 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23904 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass"); | ||
23905 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23906 | BinaryElementRelationLink.param1(link,source); | ||
23907 | BinaryElementRelationLink.param2(link,target); | ||
23908 | } | ||
23909 | /** | ||
23910 | * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target) | ||
23911 | */ | ||
23912 | private pattern mayInRelationeGenericSuperTypes_reference_EClass( | ||
23913 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23914 | source: DefinedElement, target:DefinedElement) | ||
23915 | { | ||
23916 | find interpretation(problem,interpretation); | ||
23917 | // The two endpoint of the link have to exist | ||
23918 | find mayExist(problem, interpretation, source); | ||
23919 | find mayExist(problem, interpretation, target); | ||
23920 | // Type consistency | ||
23921 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23922 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
23923 | // The reference is containment, then a new reference cannot be create if: | ||
23924 | // 1. Multiple parents | ||
23925 | neg find mustContains4(problem,interpretation,_,target); | ||
23926 | // 2. Circle in the containment hierarchy | ||
23927 | neg find mustTransitiveContains(source,target); | ||
23928 | } or { | ||
23929 | find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
23930 | } | ||
23931 | /** | ||
23932 | * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target) | ||
23933 | */ | ||
23934 | private pattern mustInRelationeAllGenericSuperTypes_reference_EClass( | ||
23935 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23936 | source: DefinedElement, target:DefinedElement) | ||
23937 | { | ||
23938 | find interpretation(problem,interpretation); | ||
23939 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23940 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
23941 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23942 | BinaryElementRelationLink.param1(link,source); | ||
23943 | BinaryElementRelationLink.param2(link,target); | ||
23944 | } | ||
23945 | /** | ||
23946 | * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target) | ||
23947 | */ | ||
23948 | private pattern mayInRelationeAllGenericSuperTypes_reference_EClass( | ||
23949 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23950 | source: DefinedElement, target:DefinedElement) | ||
23951 | { | ||
23952 | find interpretation(problem,interpretation); | ||
23953 | // The two endpoint of the link have to exist | ||
23954 | find mayExist(problem, interpretation, source); | ||
23955 | find mayExist(problem, interpretation, target); | ||
23956 | // Type consistency | ||
23957 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
23958 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
23959 | } or { | ||
23960 | find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target); | ||
23961 | } | ||
23962 | /** | ||
23963 | * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) | ||
23964 | */ | ||
23965 | private pattern mustInRelationePackage_reference_EClassifier( | ||
23966 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23967 | source: DefinedElement, target:DefinedElement) | ||
23968 | { | ||
23969 | find interpretation(problem,interpretation); | ||
23970 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
23971 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); | ||
23972 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
23973 | BinaryElementRelationLink.param1(link,source); | ||
23974 | BinaryElementRelationLink.param2(link,target); | ||
23975 | } | ||
23976 | /** | ||
23977 | * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) | ||
23978 | */ | ||
23979 | private pattern mayInRelationePackage_reference_EClassifier( | ||
23980 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
23981 | source: DefinedElement, target:DefinedElement) | ||
23982 | { | ||
23983 | find interpretation(problem,interpretation); | ||
23984 | // The two endpoint of the link have to exist | ||
23985 | find mayExist(problem, interpretation, source); | ||
23986 | find mayExist(problem, interpretation, target); | ||
23987 | // Type consistency | ||
23988 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
23989 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
23990 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
23991 | // the upper bound of the multiplicity should be considered. | ||
23992 | numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); | ||
23993 | check(numberOfExistingReferences < 1); | ||
23994 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
23995 | // 1. Multiple parents | ||
23996 | neg find mustContains4(problem,interpretation,source,_); | ||
23997 | // 2. Circle in the containment hierarchy | ||
23998 | neg find mustTransitiveContains(source,target); | ||
23999 | } or { | ||
24000 | find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); | ||
24001 | } | ||
24002 | /** | ||
24003 | * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) | ||
24004 | */ | ||
24005 | private pattern mustInRelationeTypeParameters_reference_EClassifier( | ||
24006 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24007 | source: DefinedElement, target:DefinedElement) | ||
24008 | { | ||
24009 | find interpretation(problem,interpretation); | ||
24010 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24011 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); | ||
24012 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24013 | BinaryElementRelationLink.param1(link,source); | ||
24014 | BinaryElementRelationLink.param2(link,target); | ||
24015 | } | ||
24016 | /** | ||
24017 | * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) | ||
24018 | */ | ||
24019 | private pattern mayInRelationeTypeParameters_reference_EClassifier( | ||
24020 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24021 | source: DefinedElement, target:DefinedElement) | ||
24022 | { | ||
24023 | find interpretation(problem,interpretation); | ||
24024 | // The two endpoint of the link have to exist | ||
24025 | find mayExist(problem, interpretation, source); | ||
24026 | find mayExist(problem, interpretation, target); | ||
24027 | // Type consistency | ||
24028 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
24029 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
24030 | // The reference is containment, then a new reference cannot be create if: | ||
24031 | // 1. Multiple parents | ||
24032 | neg find mustContains4(problem,interpretation,_,target); | ||
24033 | // 2. Circle in the containment hierarchy | ||
24034 | neg find mustTransitiveContains(source,target); | ||
24035 | } or { | ||
24036 | find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); | ||
24037 | } | ||
24038 | /** | ||
24039 | * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) | ||
24040 | */ | ||
24041 | private pattern mustInRelationeLiterals_reference_EEnum( | ||
24042 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24043 | source: DefinedElement, target:DefinedElement) | ||
24044 | { | ||
24045 | find interpretation(problem,interpretation); | ||
24046 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24047 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); | ||
24048 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24049 | BinaryElementRelationLink.param1(link,source); | ||
24050 | BinaryElementRelationLink.param2(link,target); | ||
24051 | } | ||
24052 | /** | ||
24053 | * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) | ||
24054 | */ | ||
24055 | private pattern mayInRelationeLiterals_reference_EEnum( | ||
24056 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24057 | source: DefinedElement, target:DefinedElement) | ||
24058 | { | ||
24059 | find interpretation(problem,interpretation); | ||
24060 | // The two endpoint of the link have to exist | ||
24061 | find mayExist(problem, interpretation, source); | ||
24062 | find mayExist(problem, interpretation, target); | ||
24063 | // Type consistency | ||
24064 | find mayInstanceOfEEnum_class(problem,interpretation,source); | ||
24065 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); | ||
24066 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
24067 | // the upper bound of the opposite reference multiplicity should be considered. | ||
24068 | numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); | ||
24069 | check(numberOfExistingOppositeReferences < 1); | ||
24070 | // The reference is containment, then a new reference cannot be create if: | ||
24071 | // 1. Multiple parents | ||
24072 | neg find mustContains4(problem,interpretation,_,target); | ||
24073 | // 2. Circle in the containment hierarchy | ||
24074 | neg find mustTransitiveContains(source,target); | ||
24075 | } or { | ||
24076 | find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); | ||
24077 | } | ||
24078 | /** | ||
24079 | * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) | ||
24080 | */ | ||
24081 | private pattern mustInRelationeEnum_reference_EEnumLiteral( | ||
24082 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24083 | source: DefinedElement, target:DefinedElement) | ||
24084 | { | ||
24085 | find interpretation(problem,interpretation); | ||
24086 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24087 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); | ||
24088 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24089 | BinaryElementRelationLink.param1(link,source); | ||
24090 | BinaryElementRelationLink.param2(link,target); | ||
24091 | } | ||
24092 | /** | ||
24093 | * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) | ||
24094 | */ | ||
24095 | private pattern mayInRelationeEnum_reference_EEnumLiteral( | ||
24096 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24097 | source: DefinedElement, target:DefinedElement) | ||
24098 | { | ||
24099 | find interpretation(problem,interpretation); | ||
24100 | // The two endpoint of the link have to exist | ||
24101 | find mayExist(problem, interpretation, source); | ||
24102 | find mayExist(problem, interpretation, target); | ||
24103 | // Type consistency | ||
24104 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
24105 | find mayInstanceOfEEnum_class(problem,interpretation,target); | ||
24106 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24107 | // the upper bound of the multiplicity should be considered. | ||
24108 | numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); | ||
24109 | check(numberOfExistingReferences < 1); | ||
24110 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
24111 | // 1. Multiple parents | ||
24112 | neg find mustContains4(problem,interpretation,source,_); | ||
24113 | // 2. Circle in the containment hierarchy | ||
24114 | neg find mustTransitiveContains(source,target); | ||
24115 | } or { | ||
24116 | find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); | ||
24117 | } | ||
24118 | /** | ||
24119 | * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) | ||
24120 | */ | ||
24121 | private pattern mustInRelationeAnnotations_reference_EModelElement( | ||
24122 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24123 | source: DefinedElement, target:DefinedElement) | ||
24124 | { | ||
24125 | find interpretation(problem,interpretation); | ||
24126 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24127 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); | ||
24128 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24129 | BinaryElementRelationLink.param1(link,source); | ||
24130 | BinaryElementRelationLink.param2(link,target); | ||
24131 | } | ||
24132 | /** | ||
24133 | * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) | ||
24134 | */ | ||
24135 | private pattern mayInRelationeAnnotations_reference_EModelElement( | ||
24136 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24137 | source: DefinedElement, target:DefinedElement) | ||
24138 | { | ||
24139 | find interpretation(problem,interpretation); | ||
24140 | // The two endpoint of the link have to exist | ||
24141 | find mayExist(problem, interpretation, source); | ||
24142 | find mayExist(problem, interpretation, target); | ||
24143 | // Type consistency | ||
24144 | find mayInstanceOfEModelElement_class(problem,interpretation,source); | ||
24145 | find mayInstanceOfEAnnotation_class(problem,interpretation,target); | ||
24146 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
24147 | // the upper bound of the opposite reference multiplicity should be considered. | ||
24148 | numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); | ||
24149 | check(numberOfExistingOppositeReferences < 1); | ||
24150 | // The reference is containment, then a new reference cannot be create if: | ||
24151 | // 1. Multiple parents | ||
24152 | neg find mustContains4(problem,interpretation,_,target); | ||
24153 | // 2. Circle in the containment hierarchy | ||
24154 | neg find mustTransitiveContains(source,target); | ||
24155 | } or { | ||
24156 | find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); | ||
24157 | } | ||
24158 | /** | ||
24159 | * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) | ||
24160 | */ | ||
24161 | private pattern mustInRelationeContainingClass_reference_EOperation( | ||
24162 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24163 | source: DefinedElement, target:DefinedElement) | ||
24164 | { | ||
24165 | find interpretation(problem,interpretation); | ||
24166 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24167 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); | ||
24168 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24169 | BinaryElementRelationLink.param1(link,source); | ||
24170 | BinaryElementRelationLink.param2(link,target); | ||
24171 | } | ||
24172 | /** | ||
24173 | * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) | ||
24174 | */ | ||
24175 | private pattern mayInRelationeContainingClass_reference_EOperation( | ||
24176 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24177 | source: DefinedElement, target:DefinedElement) | ||
24178 | { | ||
24179 | find interpretation(problem,interpretation); | ||
24180 | // The two endpoint of the link have to exist | ||
24181 | find mayExist(problem, interpretation, source); | ||
24182 | find mayExist(problem, interpretation, target); | ||
24183 | // Type consistency | ||
24184 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
24185 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
24186 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24187 | // the upper bound of the multiplicity should be considered. | ||
24188 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); | ||
24189 | check(numberOfExistingReferences < 1); | ||
24190 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
24191 | // 1. Multiple parents | ||
24192 | neg find mustContains4(problem,interpretation,source,_); | ||
24193 | // 2. Circle in the containment hierarchy | ||
24194 | neg find mustTransitiveContains(source,target); | ||
24195 | } or { | ||
24196 | find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); | ||
24197 | } | ||
24198 | /** | ||
24199 | * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) | ||
24200 | */ | ||
24201 | private pattern mustInRelationeTypeParameters_reference_EOperation( | ||
24202 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24203 | source: DefinedElement, target:DefinedElement) | ||
24204 | { | ||
24205 | find interpretation(problem,interpretation); | ||
24206 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24207 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); | ||
24208 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24209 | BinaryElementRelationLink.param1(link,source); | ||
24210 | BinaryElementRelationLink.param2(link,target); | ||
24211 | } | ||
24212 | /** | ||
24213 | * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) | ||
24214 | */ | ||
24215 | private pattern mayInRelationeTypeParameters_reference_EOperation( | ||
24216 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24217 | source: DefinedElement, target:DefinedElement) | ||
24218 | { | ||
24219 | find interpretation(problem,interpretation); | ||
24220 | // The two endpoint of the link have to exist | ||
24221 | find mayExist(problem, interpretation, source); | ||
24222 | find mayExist(problem, interpretation, target); | ||
24223 | // Type consistency | ||
24224 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
24225 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
24226 | // The reference is containment, then a new reference cannot be create if: | ||
24227 | // 1. Multiple parents | ||
24228 | neg find mustContains4(problem,interpretation,_,target); | ||
24229 | // 2. Circle in the containment hierarchy | ||
24230 | neg find mustTransitiveContains(source,target); | ||
24231 | } or { | ||
24232 | find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); | ||
24233 | } | ||
24234 | /** | ||
24235 | * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) | ||
24236 | */ | ||
24237 | private pattern mustInRelationeParameters_reference_EOperation( | ||
24238 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24239 | source: DefinedElement, target:DefinedElement) | ||
24240 | { | ||
24241 | find interpretation(problem,interpretation); | ||
24242 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24243 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); | ||
24244 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24245 | BinaryElementRelationLink.param1(link,source); | ||
24246 | BinaryElementRelationLink.param2(link,target); | ||
24247 | } | ||
24248 | /** | ||
24249 | * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) | ||
24250 | */ | ||
24251 | private pattern mayInRelationeParameters_reference_EOperation( | ||
24252 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24253 | source: DefinedElement, target:DefinedElement) | ||
24254 | { | ||
24255 | find interpretation(problem,interpretation); | ||
24256 | // The two endpoint of the link have to exist | ||
24257 | find mayExist(problem, interpretation, source); | ||
24258 | find mayExist(problem, interpretation, target); | ||
24259 | // Type consistency | ||
24260 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
24261 | find mayInstanceOfEParameter_class(problem,interpretation,target); | ||
24262 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
24263 | // the upper bound of the opposite reference multiplicity should be considered. | ||
24264 | numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); | ||
24265 | check(numberOfExistingOppositeReferences < 1); | ||
24266 | // The reference is containment, then a new reference cannot be create if: | ||
24267 | // 1. Multiple parents | ||
24268 | neg find mustContains4(problem,interpretation,_,target); | ||
24269 | // 2. Circle in the containment hierarchy | ||
24270 | neg find mustTransitiveContains(source,target); | ||
24271 | } or { | ||
24272 | find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); | ||
24273 | } | ||
24274 | /** | ||
24275 | * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target) | ||
24276 | */ | ||
24277 | private pattern mustInRelationeExceptions_reference_EOperation( | ||
24278 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24279 | source: DefinedElement, target:DefinedElement) | ||
24280 | { | ||
24281 | find interpretation(problem,interpretation); | ||
24282 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24283 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
24284 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24285 | BinaryElementRelationLink.param1(link,source); | ||
24286 | BinaryElementRelationLink.param2(link,target); | ||
24287 | } | ||
24288 | /** | ||
24289 | * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) | ||
24290 | */ | ||
24291 | private pattern mayInRelationeExceptions_reference_EOperation( | ||
24292 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24293 | source: DefinedElement, target:DefinedElement) | ||
24294 | { | ||
24295 | find interpretation(problem,interpretation); | ||
24296 | // The two endpoint of the link have to exist | ||
24297 | find mayExist(problem, interpretation, source); | ||
24298 | find mayExist(problem, interpretation, target); | ||
24299 | // Type consistency | ||
24300 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
24301 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
24302 | } or { | ||
24303 | find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); | ||
24304 | } | ||
24305 | /** | ||
24306 | * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target) | ||
24307 | */ | ||
24308 | private pattern mustInRelationeGenericExceptions_reference_EOperation( | ||
24309 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24310 | source: DefinedElement, target:DefinedElement) | ||
24311 | { | ||
24312 | find interpretation(problem,interpretation); | ||
24313 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24314 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); | ||
24315 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24316 | BinaryElementRelationLink.param1(link,source); | ||
24317 | BinaryElementRelationLink.param2(link,target); | ||
24318 | } | ||
24319 | /** | ||
24320 | * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) | ||
24321 | */ | ||
24322 | private pattern mayInRelationeGenericExceptions_reference_EOperation( | ||
24323 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24324 | source: DefinedElement, target:DefinedElement) | ||
24325 | { | ||
24326 | find interpretation(problem,interpretation); | ||
24327 | // The two endpoint of the link have to exist | ||
24328 | find mayExist(problem, interpretation, source); | ||
24329 | find mayExist(problem, interpretation, target); | ||
24330 | // Type consistency | ||
24331 | find mayInstanceOfEOperation_class(problem,interpretation,source); | ||
24332 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24333 | // The reference is containment, then a new reference cannot be create if: | ||
24334 | // 1. Multiple parents | ||
24335 | neg find mustContains4(problem,interpretation,_,target); | ||
24336 | // 2. Circle in the containment hierarchy | ||
24337 | neg find mustTransitiveContains(source,target); | ||
24338 | } or { | ||
24339 | find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); | ||
24340 | } | ||
24341 | /** | ||
24342 | * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) | ||
24343 | */ | ||
24344 | private pattern mustInRelationeClassifiers_reference_EPackage( | ||
24345 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24346 | source: DefinedElement, target:DefinedElement) | ||
24347 | { | ||
24348 | find interpretation(problem,interpretation); | ||
24349 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24350 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); | ||
24351 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24352 | BinaryElementRelationLink.param1(link,source); | ||
24353 | BinaryElementRelationLink.param2(link,target); | ||
24354 | } | ||
24355 | /** | ||
24356 | * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) | ||
24357 | */ | ||
24358 | private pattern mayInRelationeClassifiers_reference_EPackage( | ||
24359 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24360 | source: DefinedElement, target:DefinedElement) | ||
24361 | { | ||
24362 | find interpretation(problem,interpretation); | ||
24363 | // The two endpoint of the link have to exist | ||
24364 | find mayExist(problem, interpretation, source); | ||
24365 | find mayExist(problem, interpretation, target); | ||
24366 | // Type consistency | ||
24367 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
24368 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
24369 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
24370 | // the upper bound of the opposite reference multiplicity should be considered. | ||
24371 | numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); | ||
24372 | check(numberOfExistingOppositeReferences < 1); | ||
24373 | // The reference is containment, then a new reference cannot be create if: | ||
24374 | // 1. Multiple parents | ||
24375 | neg find mustContains4(problem,interpretation,_,target); | ||
24376 | // 2. Circle in the containment hierarchy | ||
24377 | neg find mustTransitiveContains(source,target); | ||
24378 | } or { | ||
24379 | find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); | ||
24380 | } | ||
24381 | /** | ||
24382 | * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) | ||
24383 | */ | ||
24384 | private pattern mustInRelationeSubpackages_reference_EPackage( | ||
24385 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24386 | source: DefinedElement, target:DefinedElement) | ||
24387 | { | ||
24388 | find interpretation(problem,interpretation); | ||
24389 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24390 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); | ||
24391 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24392 | BinaryElementRelationLink.param1(link,source); | ||
24393 | BinaryElementRelationLink.param2(link,target); | ||
24394 | } | ||
24395 | /** | ||
24396 | * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) | ||
24397 | */ | ||
24398 | private pattern mayInRelationeSubpackages_reference_EPackage( | ||
24399 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24400 | source: DefinedElement, target:DefinedElement) | ||
24401 | { | ||
24402 | find interpretation(problem,interpretation); | ||
24403 | // The two endpoint of the link have to exist | ||
24404 | find mayExist(problem, interpretation, source); | ||
24405 | find mayExist(problem, interpretation, target); | ||
24406 | // Type consistency | ||
24407 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
24408 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
24409 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
24410 | // the upper bound of the opposite reference multiplicity should be considered. | ||
24411 | numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); | ||
24412 | check(numberOfExistingOppositeReferences < 1); | ||
24413 | // The reference is containment, then a new reference cannot be create if: | ||
24414 | // 1. Multiple parents | ||
24415 | neg find mustContains4(problem,interpretation,_,target); | ||
24416 | // 2. Circle in the containment hierarchy | ||
24417 | neg find mustTransitiveContains(source,target); | ||
24418 | } or { | ||
24419 | find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); | ||
24420 | } | ||
24421 | /** | ||
24422 | * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) | ||
24423 | */ | ||
24424 | private pattern mustInRelationeSuperPackage_reference_EPackage( | ||
24425 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24426 | source: DefinedElement, target:DefinedElement) | ||
24427 | { | ||
24428 | find interpretation(problem,interpretation); | ||
24429 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24430 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); | ||
24431 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24432 | BinaryElementRelationLink.param1(link,source); | ||
24433 | BinaryElementRelationLink.param2(link,target); | ||
24434 | } | ||
24435 | /** | ||
24436 | * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) | ||
24437 | */ | ||
24438 | private pattern mayInRelationeSuperPackage_reference_EPackage( | ||
24439 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24440 | source: DefinedElement, target:DefinedElement) | ||
24441 | { | ||
24442 | find interpretation(problem,interpretation); | ||
24443 | // The two endpoint of the link have to exist | ||
24444 | find mayExist(problem, interpretation, source); | ||
24445 | find mayExist(problem, interpretation, target); | ||
24446 | // Type consistency | ||
24447 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
24448 | find mayInstanceOfEPackage_class(problem,interpretation,target); | ||
24449 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24450 | // the upper bound of the multiplicity should be considered. | ||
24451 | numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); | ||
24452 | check(numberOfExistingReferences < 1); | ||
24453 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
24454 | // 1. Multiple parents | ||
24455 | neg find mustContains4(problem,interpretation,source,_); | ||
24456 | // 2. Circle in the containment hierarchy | ||
24457 | neg find mustTransitiveContains(source,target); | ||
24458 | } or { | ||
24459 | find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); | ||
24460 | } | ||
24461 | /** | ||
24462 | * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) | ||
24463 | */ | ||
24464 | private pattern mustInRelationeOperation_reference_EParameter( | ||
24465 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24466 | source: DefinedElement, target:DefinedElement) | ||
24467 | { | ||
24468 | find interpretation(problem,interpretation); | ||
24469 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24470 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); | ||
24471 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24472 | BinaryElementRelationLink.param1(link,source); | ||
24473 | BinaryElementRelationLink.param2(link,target); | ||
24474 | } | ||
24475 | /** | ||
24476 | * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) | ||
24477 | */ | ||
24478 | private pattern mayInRelationeOperation_reference_EParameter( | ||
24479 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24480 | source: DefinedElement, target:DefinedElement) | ||
24481 | { | ||
24482 | find interpretation(problem,interpretation); | ||
24483 | // The two endpoint of the link have to exist | ||
24484 | find mayExist(problem, interpretation, source); | ||
24485 | find mayExist(problem, interpretation, target); | ||
24486 | // Type consistency | ||
24487 | find mayInstanceOfEParameter_class(problem,interpretation,source); | ||
24488 | find mayInstanceOfEOperation_class(problem,interpretation,target); | ||
24489 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24490 | // the upper bound of the multiplicity should be considered. | ||
24491 | numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); | ||
24492 | check(numberOfExistingReferences < 1); | ||
24493 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
24494 | // 1. Multiple parents | ||
24495 | neg find mustContains4(problem,interpretation,source,_); | ||
24496 | // 2. Circle in the containment hierarchy | ||
24497 | neg find mustTransitiveContains(source,target); | ||
24498 | } or { | ||
24499 | find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); | ||
24500 | } | ||
24501 | /** | ||
24502 | * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) | ||
24503 | */ | ||
24504 | private pattern mustInRelationeOpposite_reference_EReference( | ||
24505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24506 | source: DefinedElement, target:DefinedElement) | ||
24507 | { | ||
24508 | find interpretation(problem,interpretation); | ||
24509 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24510 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
24511 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24512 | BinaryElementRelationLink.param1(link,source); | ||
24513 | BinaryElementRelationLink.param2(link,target); | ||
24514 | } | ||
24515 | /** | ||
24516 | * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target) | ||
24517 | */ | ||
24518 | private pattern mayInRelationeOpposite_reference_EReference( | ||
24519 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24520 | source: DefinedElement, target:DefinedElement) | ||
24521 | { | ||
24522 | find interpretation(problem,interpretation); | ||
24523 | // The two endpoint of the link have to exist | ||
24524 | find mayExist(problem, interpretation, source); | ||
24525 | find mayExist(problem, interpretation, target); | ||
24526 | // Type consistency | ||
24527 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
24528 | find mayInstanceOfEReference_class(problem,interpretation,target); | ||
24529 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24530 | // the upper bound of the multiplicity should be considered. | ||
24531 | numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); | ||
24532 | check(numberOfExistingReferences < 1); | ||
24533 | } or { | ||
24534 | find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); | ||
24535 | } | ||
24536 | /** | ||
24537 | * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target) | ||
24538 | */ | ||
24539 | private pattern mustInRelationeReferenceType_reference_EReference( | ||
24540 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24541 | source: DefinedElement, target:DefinedElement) | ||
24542 | { | ||
24543 | find interpretation(problem,interpretation); | ||
24544 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24545 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
24546 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24547 | BinaryElementRelationLink.param1(link,source); | ||
24548 | BinaryElementRelationLink.param2(link,target); | ||
24549 | } | ||
24550 | /** | ||
24551 | * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) | ||
24552 | */ | ||
24553 | private pattern mayInRelationeReferenceType_reference_EReference( | ||
24554 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24555 | source: DefinedElement, target:DefinedElement) | ||
24556 | { | ||
24557 | find interpretation(problem,interpretation); | ||
24558 | // The two endpoint of the link have to exist | ||
24559 | find mayExist(problem, interpretation, source); | ||
24560 | find mayExist(problem, interpretation, target); | ||
24561 | // Type consistency | ||
24562 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
24563 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
24564 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24565 | // the upper bound of the multiplicity should be considered. | ||
24566 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); | ||
24567 | check(numberOfExistingReferences < 1); | ||
24568 | } or { | ||
24569 | find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); | ||
24570 | } | ||
24571 | /** | ||
24572 | * Matcher for detecting tuples t where []eKeys reference EReference(source,target) | ||
24573 | */ | ||
24574 | private pattern mustInRelationeKeys_reference_EReference( | ||
24575 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24576 | source: DefinedElement, target:DefinedElement) | ||
24577 | { | ||
24578 | find interpretation(problem,interpretation); | ||
24579 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24580 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
24581 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24582 | BinaryElementRelationLink.param1(link,source); | ||
24583 | BinaryElementRelationLink.param2(link,target); | ||
24584 | } | ||
24585 | /** | ||
24586 | * Matcher for detecting tuples t where <>eKeys reference EReference(source,target) | ||
24587 | */ | ||
24588 | private pattern mayInRelationeKeys_reference_EReference( | ||
24589 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24590 | source: DefinedElement, target:DefinedElement) | ||
24591 | { | ||
24592 | find interpretation(problem,interpretation); | ||
24593 | // The two endpoint of the link have to exist | ||
24594 | find mayExist(problem, interpretation, source); | ||
24595 | find mayExist(problem, interpretation, target); | ||
24596 | // Type consistency | ||
24597 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
24598 | find mayInstanceOfEAttribute_class(problem,interpretation,target); | ||
24599 | } or { | ||
24600 | find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target); | ||
24601 | } | ||
24602 | /** | ||
24603 | * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) | ||
24604 | */ | ||
24605 | private pattern mustInRelationeContainingClass_reference_EStructuralFeature( | ||
24606 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24607 | source: DefinedElement, target:DefinedElement) | ||
24608 | { | ||
24609 | find interpretation(problem,interpretation); | ||
24610 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24611 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); | ||
24612 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24613 | BinaryElementRelationLink.param1(link,source); | ||
24614 | BinaryElementRelationLink.param2(link,target); | ||
24615 | } | ||
24616 | /** | ||
24617 | * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) | ||
24618 | */ | ||
24619 | private pattern mayInRelationeContainingClass_reference_EStructuralFeature( | ||
24620 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24621 | source: DefinedElement, target:DefinedElement) | ||
24622 | { | ||
24623 | find interpretation(problem,interpretation); | ||
24624 | // The two endpoint of the link have to exist | ||
24625 | find mayExist(problem, interpretation, source); | ||
24626 | find mayExist(problem, interpretation, target); | ||
24627 | // Type consistency | ||
24628 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
24629 | find mayInstanceOfEClass_class(problem,interpretation,target); | ||
24630 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24631 | // the upper bound of the multiplicity should be considered. | ||
24632 | numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); | ||
24633 | check(numberOfExistingReferences < 1); | ||
24634 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
24635 | // 1. Multiple parents | ||
24636 | neg find mustContains4(problem,interpretation,source,_); | ||
24637 | // 2. Circle in the containment hierarchy | ||
24638 | neg find mustTransitiveContains(source,target); | ||
24639 | } or { | ||
24640 | find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); | ||
24641 | } | ||
24642 | /** | ||
24643 | * Matcher for detecting tuples t where []eType reference ETypedElement(source,target) | ||
24644 | */ | ||
24645 | private pattern mustInRelationeType_reference_ETypedElement( | ||
24646 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24647 | source: DefinedElement, target:DefinedElement) | ||
24648 | { | ||
24649 | find interpretation(problem,interpretation); | ||
24650 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24651 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
24652 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24653 | BinaryElementRelationLink.param1(link,source); | ||
24654 | BinaryElementRelationLink.param2(link,target); | ||
24655 | } | ||
24656 | /** | ||
24657 | * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target) | ||
24658 | */ | ||
24659 | private pattern mayInRelationeType_reference_ETypedElement( | ||
24660 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24661 | source: DefinedElement, target:DefinedElement) | ||
24662 | { | ||
24663 | find interpretation(problem,interpretation); | ||
24664 | // The two endpoint of the link have to exist | ||
24665 | find mayExist(problem, interpretation, source); | ||
24666 | find mayExist(problem, interpretation, target); | ||
24667 | // Type consistency | ||
24668 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
24669 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
24670 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24671 | // the upper bound of the multiplicity should be considered. | ||
24672 | numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); | ||
24673 | check(numberOfExistingReferences < 1); | ||
24674 | } or { | ||
24675 | find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target); | ||
24676 | } | ||
24677 | /** | ||
24678 | * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target) | ||
24679 | */ | ||
24680 | private pattern mustInRelationeGenericType_reference_ETypedElement( | ||
24681 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24682 | source: DefinedElement, target:DefinedElement) | ||
24683 | { | ||
24684 | find interpretation(problem,interpretation); | ||
24685 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24686 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); | ||
24687 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24688 | BinaryElementRelationLink.param1(link,source); | ||
24689 | BinaryElementRelationLink.param2(link,target); | ||
24690 | } | ||
24691 | /** | ||
24692 | * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) | ||
24693 | */ | ||
24694 | private pattern mayInRelationeGenericType_reference_ETypedElement( | ||
24695 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24696 | source: DefinedElement, target:DefinedElement) | ||
24697 | { | ||
24698 | find interpretation(problem,interpretation); | ||
24699 | // The two endpoint of the link have to exist | ||
24700 | find mayExist(problem, interpretation, source); | ||
24701 | find mayExist(problem, interpretation, target); | ||
24702 | // Type consistency | ||
24703 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
24704 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24705 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24706 | // the upper bound of the multiplicity should be considered. | ||
24707 | numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); | ||
24708 | check(numberOfExistingReferences < 1); | ||
24709 | // The reference is containment, then a new reference cannot be create if: | ||
24710 | // 1. Multiple parents | ||
24711 | neg find mustContains4(problem,interpretation,_,target); | ||
24712 | // 2. Circle in the containment hierarchy | ||
24713 | neg find mustTransitiveContains(source,target); | ||
24714 | } or { | ||
24715 | find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); | ||
24716 | } | ||
24717 | /** | ||
24718 | * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target) | ||
24719 | */ | ||
24720 | private pattern mustInRelationeUpperBound_reference_EGenericType( | ||
24721 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24722 | source: DefinedElement, target:DefinedElement) | ||
24723 | { | ||
24724 | find interpretation(problem,interpretation); | ||
24725 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24726 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); | ||
24727 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24728 | BinaryElementRelationLink.param1(link,source); | ||
24729 | BinaryElementRelationLink.param2(link,target); | ||
24730 | } | ||
24731 | /** | ||
24732 | * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target) | ||
24733 | */ | ||
24734 | private pattern mayInRelationeUpperBound_reference_EGenericType( | ||
24735 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24736 | source: DefinedElement, target:DefinedElement) | ||
24737 | { | ||
24738 | find interpretation(problem,interpretation); | ||
24739 | // The two endpoint of the link have to exist | ||
24740 | find mayExist(problem, interpretation, source); | ||
24741 | find mayExist(problem, interpretation, target); | ||
24742 | // Type consistency | ||
24743 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24744 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24745 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24746 | // the upper bound of the multiplicity should be considered. | ||
24747 | numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); | ||
24748 | check(numberOfExistingReferences < 1); | ||
24749 | // The reference is containment, then a new reference cannot be create if: | ||
24750 | // 1. Multiple parents | ||
24751 | neg find mustContains4(problem,interpretation,_,target); | ||
24752 | // 2. Circle in the containment hierarchy | ||
24753 | neg find mustTransitiveContains(source,target); | ||
24754 | } or { | ||
24755 | find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); | ||
24756 | } | ||
24757 | /** | ||
24758 | * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) | ||
24759 | */ | ||
24760 | private pattern mustInRelationeTypeArguments_reference_EGenericType( | ||
24761 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24762 | source: DefinedElement, target:DefinedElement) | ||
24763 | { | ||
24764 | find interpretation(problem,interpretation); | ||
24765 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24766 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); | ||
24767 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24768 | BinaryElementRelationLink.param1(link,source); | ||
24769 | BinaryElementRelationLink.param2(link,target); | ||
24770 | } | ||
24771 | /** | ||
24772 | * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) | ||
24773 | */ | ||
24774 | private pattern mayInRelationeTypeArguments_reference_EGenericType( | ||
24775 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24776 | source: DefinedElement, target:DefinedElement) | ||
24777 | { | ||
24778 | find interpretation(problem,interpretation); | ||
24779 | // The two endpoint of the link have to exist | ||
24780 | find mayExist(problem, interpretation, source); | ||
24781 | find mayExist(problem, interpretation, target); | ||
24782 | // Type consistency | ||
24783 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24784 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24785 | // The reference is containment, then a new reference cannot be create if: | ||
24786 | // 1. Multiple parents | ||
24787 | neg find mustContains4(problem,interpretation,_,target); | ||
24788 | // 2. Circle in the containment hierarchy | ||
24789 | neg find mustTransitiveContains(source,target); | ||
24790 | } or { | ||
24791 | find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); | ||
24792 | } | ||
24793 | /** | ||
24794 | * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target) | ||
24795 | */ | ||
24796 | private pattern mustInRelationeRawType_reference_EGenericType( | ||
24797 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24798 | source: DefinedElement, target:DefinedElement) | ||
24799 | { | ||
24800 | find interpretation(problem,interpretation); | ||
24801 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24802 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
24803 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24804 | BinaryElementRelationLink.param1(link,source); | ||
24805 | BinaryElementRelationLink.param2(link,target); | ||
24806 | } | ||
24807 | /** | ||
24808 | * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target) | ||
24809 | */ | ||
24810 | private pattern mayInRelationeRawType_reference_EGenericType( | ||
24811 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24812 | source: DefinedElement, target:DefinedElement) | ||
24813 | { | ||
24814 | find interpretation(problem,interpretation); | ||
24815 | // The two endpoint of the link have to exist | ||
24816 | find mayExist(problem, interpretation, source); | ||
24817 | find mayExist(problem, interpretation, target); | ||
24818 | // Type consistency | ||
24819 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24820 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
24821 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24822 | // the upper bound of the multiplicity should be considered. | ||
24823 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); | ||
24824 | check(numberOfExistingReferences < 1); | ||
24825 | } or { | ||
24826 | find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target); | ||
24827 | } | ||
24828 | /** | ||
24829 | * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) | ||
24830 | */ | ||
24831 | private pattern mustInRelationeLowerBound_reference_EGenericType( | ||
24832 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24833 | source: DefinedElement, target:DefinedElement) | ||
24834 | { | ||
24835 | find interpretation(problem,interpretation); | ||
24836 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24837 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); | ||
24838 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24839 | BinaryElementRelationLink.param1(link,source); | ||
24840 | BinaryElementRelationLink.param2(link,target); | ||
24841 | } | ||
24842 | /** | ||
24843 | * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) | ||
24844 | */ | ||
24845 | private pattern mayInRelationeLowerBound_reference_EGenericType( | ||
24846 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24847 | source: DefinedElement, target:DefinedElement) | ||
24848 | { | ||
24849 | find interpretation(problem,interpretation); | ||
24850 | // The two endpoint of the link have to exist | ||
24851 | find mayExist(problem, interpretation, source); | ||
24852 | find mayExist(problem, interpretation, target); | ||
24853 | // Type consistency | ||
24854 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24855 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24856 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24857 | // the upper bound of the multiplicity should be considered. | ||
24858 | numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); | ||
24859 | check(numberOfExistingReferences < 1); | ||
24860 | // The reference is containment, then a new reference cannot be create if: | ||
24861 | // 1. Multiple parents | ||
24862 | neg find mustContains4(problem,interpretation,_,target); | ||
24863 | // 2. Circle in the containment hierarchy | ||
24864 | neg find mustTransitiveContains(source,target); | ||
24865 | } or { | ||
24866 | find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); | ||
24867 | } | ||
24868 | /** | ||
24869 | * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target) | ||
24870 | */ | ||
24871 | private pattern mustInRelationeTypeParameter_reference_EGenericType( | ||
24872 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24873 | source: DefinedElement, target:DefinedElement) | ||
24874 | { | ||
24875 | find interpretation(problem,interpretation); | ||
24876 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24877 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
24878 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24879 | BinaryElementRelationLink.param1(link,source); | ||
24880 | BinaryElementRelationLink.param2(link,target); | ||
24881 | } | ||
24882 | /** | ||
24883 | * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) | ||
24884 | */ | ||
24885 | private pattern mayInRelationeTypeParameter_reference_EGenericType( | ||
24886 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24887 | source: DefinedElement, target:DefinedElement) | ||
24888 | { | ||
24889 | find interpretation(problem,interpretation); | ||
24890 | // The two endpoint of the link have to exist | ||
24891 | find mayExist(problem, interpretation, source); | ||
24892 | find mayExist(problem, interpretation, target); | ||
24893 | // Type consistency | ||
24894 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24895 | find mayInstanceOfETypeParameter_class(problem,interpretation,target); | ||
24896 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24897 | // the upper bound of the multiplicity should be considered. | ||
24898 | numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_); | ||
24899 | check(numberOfExistingReferences < 1); | ||
24900 | } or { | ||
24901 | find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target); | ||
24902 | } | ||
24903 | /** | ||
24904 | * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) | ||
24905 | */ | ||
24906 | private pattern mustInRelationeClassifier_reference_EGenericType( | ||
24907 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24908 | source: DefinedElement, target:DefinedElement) | ||
24909 | { | ||
24910 | find interpretation(problem,interpretation); | ||
24911 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24912 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
24913 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24914 | BinaryElementRelationLink.param1(link,source); | ||
24915 | BinaryElementRelationLink.param2(link,target); | ||
24916 | } | ||
24917 | /** | ||
24918 | * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) | ||
24919 | */ | ||
24920 | private pattern mayInRelationeClassifier_reference_EGenericType( | ||
24921 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24922 | source: DefinedElement, target:DefinedElement) | ||
24923 | { | ||
24924 | find interpretation(problem,interpretation); | ||
24925 | // The two endpoint of the link have to exist | ||
24926 | find mayExist(problem, interpretation, source); | ||
24927 | find mayExist(problem, interpretation, target); | ||
24928 | // Type consistency | ||
24929 | find mayInstanceOfEGenericType_class(problem,interpretation,source); | ||
24930 | find mayInstanceOfEClassifier_class(problem,interpretation,target); | ||
24931 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
24932 | // the upper bound of the multiplicity should be considered. | ||
24933 | numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); | ||
24934 | check(numberOfExistingReferences < 1); | ||
24935 | } or { | ||
24936 | find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); | ||
24937 | } | ||
24938 | /** | ||
24939 | * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) | ||
24940 | */ | ||
24941 | private pattern mustInRelationeBounds_reference_ETypeParameter( | ||
24942 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24943 | source: DefinedElement, target:DefinedElement) | ||
24944 | { | ||
24945 | find interpretation(problem,interpretation); | ||
24946 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24947 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); | ||
24948 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24949 | BinaryElementRelationLink.param1(link,source); | ||
24950 | BinaryElementRelationLink.param2(link,target); | ||
24951 | } | ||
24952 | /** | ||
24953 | * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) | ||
24954 | */ | ||
24955 | private pattern mayInRelationeBounds_reference_ETypeParameter( | ||
24956 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24957 | source: DefinedElement, target:DefinedElement) | ||
24958 | { | ||
24959 | find interpretation(problem,interpretation); | ||
24960 | // The two endpoint of the link have to exist | ||
24961 | find mayExist(problem, interpretation, source); | ||
24962 | find mayExist(problem, interpretation, target); | ||
24963 | // Type consistency | ||
24964 | find mayInstanceOfETypeParameter_class(problem,interpretation,source); | ||
24965 | find mayInstanceOfEGenericType_class(problem,interpretation,target); | ||
24966 | // The reference is containment, then a new reference cannot be create if: | ||
24967 | // 1. Multiple parents | ||
24968 | neg find mustContains4(problem,interpretation,_,target); | ||
24969 | // 2. Circle in the containment hierarchy | ||
24970 | neg find mustTransitiveContains(source,target); | ||
24971 | } or { | ||
24972 | find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); | ||
24973 | } | ||
24974 | /** | ||
24975 | * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) | ||
24976 | */ | ||
24977 | private pattern mustInRelationiD_attribute_EAttribute( | ||
24978 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24979 | source: DefinedElement, target:DefinedElement) | ||
24980 | { | ||
24981 | find interpretation(problem,interpretation); | ||
24982 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
24983 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
24984 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
24985 | BinaryElementRelationLink.param1(link,source); | ||
24986 | BinaryElementRelationLink.param2(link,target); | ||
24987 | } | ||
24988 | /** | ||
24989 | * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) | ||
24990 | */ | ||
24991 | private pattern mayInRelationiD_attribute_EAttribute( | ||
24992 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
24993 | source: DefinedElement, target:DefinedElement) | ||
24994 | { | ||
24995 | find interpretation(problem,interpretation); | ||
24996 | // The two endpoint of the link have to exist | ||
24997 | find mayExist(problem, interpretation, source); | ||
24998 | find mayExist(problem, interpretation, target); | ||
24999 | // Type consistency | ||
25000 | find mayInstanceOfEAttribute_class(problem,interpretation,source); | ||
25001 | BooleanElement(target); | ||
25002 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25003 | // the upper bound of the multiplicity should be considered. | ||
25004 | numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); | ||
25005 | check(numberOfExistingReferences < 1); | ||
25006 | } or { | ||
25007 | find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); | ||
25008 | } | ||
25009 | /** | ||
25010 | * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) | ||
25011 | */ | ||
25012 | private pattern mustInRelationsource_attribute_EAnnotation( | ||
25013 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25014 | source: DefinedElement, target:DefinedElement) | ||
25015 | { | ||
25016 | find interpretation(problem,interpretation); | ||
25017 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25018 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
25019 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25020 | BinaryElementRelationLink.param1(link,source); | ||
25021 | BinaryElementRelationLink.param2(link,target); | ||
25022 | } | ||
25023 | /** | ||
25024 | * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) | ||
25025 | */ | ||
25026 | private pattern mayInRelationsource_attribute_EAnnotation( | ||
25027 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25028 | source: DefinedElement, target:DefinedElement) | ||
25029 | { | ||
25030 | find interpretation(problem,interpretation); | ||
25031 | // The two endpoint of the link have to exist | ||
25032 | find mayExist(problem, interpretation, source); | ||
25033 | find mayExist(problem, interpretation, target); | ||
25034 | // Type consistency | ||
25035 | find mayInstanceOfEAnnotation_class(problem,interpretation,source); | ||
25036 | StringElement(target); | ||
25037 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25038 | // the upper bound of the multiplicity should be considered. | ||
25039 | numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); | ||
25040 | check(numberOfExistingReferences < 1); | ||
25041 | } or { | ||
25042 | find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); | ||
25043 | } | ||
25044 | /** | ||
25045 | * Matcher for detecting tuples t where []abstract attribute EClass(source,target) | ||
25046 | */ | ||
25047 | private pattern mustInRelationabstract_attribute_EClass( | ||
25048 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25049 | source: DefinedElement, target:DefinedElement) | ||
25050 | { | ||
25051 | find interpretation(problem,interpretation); | ||
25052 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25053 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
25054 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25055 | BinaryElementRelationLink.param1(link,source); | ||
25056 | BinaryElementRelationLink.param2(link,target); | ||
25057 | } | ||
25058 | /** | ||
25059 | * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) | ||
25060 | */ | ||
25061 | private pattern mayInRelationabstract_attribute_EClass( | ||
25062 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25063 | source: DefinedElement, target:DefinedElement) | ||
25064 | { | ||
25065 | find interpretation(problem,interpretation); | ||
25066 | // The two endpoint of the link have to exist | ||
25067 | find mayExist(problem, interpretation, source); | ||
25068 | find mayExist(problem, interpretation, target); | ||
25069 | // Type consistency | ||
25070 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
25071 | BooleanElement(target); | ||
25072 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25073 | // the upper bound of the multiplicity should be considered. | ||
25074 | numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); | ||
25075 | check(numberOfExistingReferences < 1); | ||
25076 | } or { | ||
25077 | find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); | ||
25078 | } | ||
25079 | /** | ||
25080 | * Matcher for detecting tuples t where []interface attribute EClass(source,target) | ||
25081 | */ | ||
25082 | private pattern mustInRelationinterface_attribute_EClass( | ||
25083 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25084 | source: DefinedElement, target:DefinedElement) | ||
25085 | { | ||
25086 | find interpretation(problem,interpretation); | ||
25087 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25088 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
25089 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25090 | BinaryElementRelationLink.param1(link,source); | ||
25091 | BinaryElementRelationLink.param2(link,target); | ||
25092 | } | ||
25093 | /** | ||
25094 | * Matcher for detecting tuples t where <>interface attribute EClass(source,target) | ||
25095 | */ | ||
25096 | private pattern mayInRelationinterface_attribute_EClass( | ||
25097 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25098 | source: DefinedElement, target:DefinedElement) | ||
25099 | { | ||
25100 | find interpretation(problem,interpretation); | ||
25101 | // The two endpoint of the link have to exist | ||
25102 | find mayExist(problem, interpretation, source); | ||
25103 | find mayExist(problem, interpretation, target); | ||
25104 | // Type consistency | ||
25105 | find mayInstanceOfEClass_class(problem,interpretation,source); | ||
25106 | BooleanElement(target); | ||
25107 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25108 | // the upper bound of the multiplicity should be considered. | ||
25109 | numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); | ||
25110 | check(numberOfExistingReferences < 1); | ||
25111 | } or { | ||
25112 | find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); | ||
25113 | } | ||
25114 | /** | ||
25115 | * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) | ||
25116 | */ | ||
25117 | private pattern mustInRelationinstanceClassName_attribute_EClassifier( | ||
25118 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25119 | source: DefinedElement, target:DefinedElement) | ||
25120 | { | ||
25121 | find interpretation(problem,interpretation); | ||
25122 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25123 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
25124 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25125 | BinaryElementRelationLink.param1(link,source); | ||
25126 | BinaryElementRelationLink.param2(link,target); | ||
25127 | } | ||
25128 | /** | ||
25129 | * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) | ||
25130 | */ | ||
25131 | private pattern mayInRelationinstanceClassName_attribute_EClassifier( | ||
25132 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25133 | source: DefinedElement, target:DefinedElement) | ||
25134 | { | ||
25135 | find interpretation(problem,interpretation); | ||
25136 | // The two endpoint of the link have to exist | ||
25137 | find mayExist(problem, interpretation, source); | ||
25138 | find mayExist(problem, interpretation, target); | ||
25139 | // Type consistency | ||
25140 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
25141 | StringElement(target); | ||
25142 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25143 | // the upper bound of the multiplicity should be considered. | ||
25144 | numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); | ||
25145 | check(numberOfExistingReferences < 1); | ||
25146 | } or { | ||
25147 | find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); | ||
25148 | } | ||
25149 | /** | ||
25150 | * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) | ||
25151 | */ | ||
25152 | private pattern mustInRelationinstanceTypeName_attribute_EClassifier( | ||
25153 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25154 | source: DefinedElement, target:DefinedElement) | ||
25155 | { | ||
25156 | find interpretation(problem,interpretation); | ||
25157 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25158 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
25159 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25160 | BinaryElementRelationLink.param1(link,source); | ||
25161 | BinaryElementRelationLink.param2(link,target); | ||
25162 | } | ||
25163 | /** | ||
25164 | * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) | ||
25165 | */ | ||
25166 | private pattern mayInRelationinstanceTypeName_attribute_EClassifier( | ||
25167 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25168 | source: DefinedElement, target:DefinedElement) | ||
25169 | { | ||
25170 | find interpretation(problem,interpretation); | ||
25171 | // The two endpoint of the link have to exist | ||
25172 | find mayExist(problem, interpretation, source); | ||
25173 | find mayExist(problem, interpretation, target); | ||
25174 | // Type consistency | ||
25175 | find mayInstanceOfEClassifier_class(problem,interpretation,source); | ||
25176 | StringElement(target); | ||
25177 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25178 | // the upper bound of the multiplicity should be considered. | ||
25179 | numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_); | ||
25180 | check(numberOfExistingReferences < 1); | ||
25181 | } or { | ||
25182 | find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); | ||
25183 | } | ||
25184 | /** | ||
25185 | * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) | ||
25186 | */ | ||
25187 | private pattern mustInRelationserializable_attribute_EDataType( | ||
25188 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25189 | source: DefinedElement, target:DefinedElement) | ||
25190 | { | ||
25191 | find interpretation(problem,interpretation); | ||
25192 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25193 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
25194 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25195 | BinaryElementRelationLink.param1(link,source); | ||
25196 | BinaryElementRelationLink.param2(link,target); | ||
25197 | } | ||
25198 | /** | ||
25199 | * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) | ||
25200 | */ | ||
25201 | private pattern mayInRelationserializable_attribute_EDataType( | ||
25202 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25203 | source: DefinedElement, target:DefinedElement) | ||
25204 | { | ||
25205 | find interpretation(problem,interpretation); | ||
25206 | // The two endpoint of the link have to exist | ||
25207 | find mayExist(problem, interpretation, source); | ||
25208 | find mayExist(problem, interpretation, target); | ||
25209 | // Type consistency | ||
25210 | find mayInstanceOfEDataType_class(problem,interpretation,source); | ||
25211 | BooleanElement(target); | ||
25212 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25213 | // the upper bound of the multiplicity should be considered. | ||
25214 | numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); | ||
25215 | check(numberOfExistingReferences < 1); | ||
25216 | } or { | ||
25217 | find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); | ||
25218 | } | ||
25219 | /** | ||
25220 | * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) | ||
25221 | */ | ||
25222 | private pattern mustInRelationvalue_attribute_EEnumLiteral( | ||
25223 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25224 | source: DefinedElement, target:DefinedElement) | ||
25225 | { | ||
25226 | find interpretation(problem,interpretation); | ||
25227 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25228 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
25229 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25230 | BinaryElementRelationLink.param1(link,source); | ||
25231 | BinaryElementRelationLink.param2(link,target); | ||
25232 | } | ||
25233 | /** | ||
25234 | * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) | ||
25235 | */ | ||
25236 | private pattern mayInRelationvalue_attribute_EEnumLiteral( | ||
25237 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25238 | source: DefinedElement, target:DefinedElement) | ||
25239 | { | ||
25240 | find interpretation(problem,interpretation); | ||
25241 | // The two endpoint of the link have to exist | ||
25242 | find mayExist(problem, interpretation, source); | ||
25243 | find mayExist(problem, interpretation, target); | ||
25244 | // Type consistency | ||
25245 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
25246 | IntegerElement(target); | ||
25247 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25248 | // the upper bound of the multiplicity should be considered. | ||
25249 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
25250 | check(numberOfExistingReferences < 1); | ||
25251 | } or { | ||
25252 | find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
25253 | } | ||
25254 | /** | ||
25255 | * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) | ||
25256 | */ | ||
25257 | private pattern mustInRelationliteral_attribute_EEnumLiteral( | ||
25258 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25259 | source: DefinedElement, target:DefinedElement) | ||
25260 | { | ||
25261 | find interpretation(problem,interpretation); | ||
25262 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25263 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
25264 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25265 | BinaryElementRelationLink.param1(link,source); | ||
25266 | BinaryElementRelationLink.param2(link,target); | ||
25267 | } | ||
25268 | /** | ||
25269 | * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) | ||
25270 | */ | ||
25271 | private pattern mayInRelationliteral_attribute_EEnumLiteral( | ||
25272 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25273 | source: DefinedElement, target:DefinedElement) | ||
25274 | { | ||
25275 | find interpretation(problem,interpretation); | ||
25276 | // The two endpoint of the link have to exist | ||
25277 | find mayExist(problem, interpretation, source); | ||
25278 | find mayExist(problem, interpretation, target); | ||
25279 | // Type consistency | ||
25280 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); | ||
25281 | StringElement(target); | ||
25282 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25283 | // the upper bound of the multiplicity should be considered. | ||
25284 | numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); | ||
25285 | check(numberOfExistingReferences < 1); | ||
25286 | } or { | ||
25287 | find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); | ||
25288 | } | ||
25289 | /** | ||
25290 | * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) | ||
25291 | */ | ||
25292 | private pattern mustInRelationname_attribute_ENamedElement( | ||
25293 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25294 | source: DefinedElement, target:DefinedElement) | ||
25295 | { | ||
25296 | find interpretation(problem,interpretation); | ||
25297 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25298 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
25299 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25300 | BinaryElementRelationLink.param1(link,source); | ||
25301 | BinaryElementRelationLink.param2(link,target); | ||
25302 | } | ||
25303 | /** | ||
25304 | * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) | ||
25305 | */ | ||
25306 | private pattern mayInRelationname_attribute_ENamedElement( | ||
25307 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25308 | source: DefinedElement, target:DefinedElement) | ||
25309 | { | ||
25310 | find interpretation(problem,interpretation); | ||
25311 | // The two endpoint of the link have to exist | ||
25312 | find mayExist(problem, interpretation, source); | ||
25313 | find mayExist(problem, interpretation, target); | ||
25314 | // Type consistency | ||
25315 | find mayInstanceOfENamedElement_class(problem,interpretation,source); | ||
25316 | StringElement(target); | ||
25317 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25318 | // the upper bound of the multiplicity should be considered. | ||
25319 | numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); | ||
25320 | check(numberOfExistingReferences < 1); | ||
25321 | } or { | ||
25322 | find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); | ||
25323 | } | ||
25324 | /** | ||
25325 | * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) | ||
25326 | */ | ||
25327 | private pattern mustInRelationnsURI_attribute_EPackage( | ||
25328 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25329 | source: DefinedElement, target:DefinedElement) | ||
25330 | { | ||
25331 | find interpretation(problem,interpretation); | ||
25332 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25333 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
25334 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25335 | BinaryElementRelationLink.param1(link,source); | ||
25336 | BinaryElementRelationLink.param2(link,target); | ||
25337 | } | ||
25338 | /** | ||
25339 | * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) | ||
25340 | */ | ||
25341 | private pattern mayInRelationnsURI_attribute_EPackage( | ||
25342 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25343 | source: DefinedElement, target:DefinedElement) | ||
25344 | { | ||
25345 | find interpretation(problem,interpretation); | ||
25346 | // The two endpoint of the link have to exist | ||
25347 | find mayExist(problem, interpretation, source); | ||
25348 | find mayExist(problem, interpretation, target); | ||
25349 | // Type consistency | ||
25350 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
25351 | StringElement(target); | ||
25352 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25353 | // the upper bound of the multiplicity should be considered. | ||
25354 | numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); | ||
25355 | check(numberOfExistingReferences < 1); | ||
25356 | } or { | ||
25357 | find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); | ||
25358 | } | ||
25359 | /** | ||
25360 | * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) | ||
25361 | */ | ||
25362 | private pattern mustInRelationnsPrefix_attribute_EPackage( | ||
25363 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25364 | source: DefinedElement, target:DefinedElement) | ||
25365 | { | ||
25366 | find interpretation(problem,interpretation); | ||
25367 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25368 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
25369 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25370 | BinaryElementRelationLink.param1(link,source); | ||
25371 | BinaryElementRelationLink.param2(link,target); | ||
25372 | } | ||
25373 | /** | ||
25374 | * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) | ||
25375 | */ | ||
25376 | private pattern mayInRelationnsPrefix_attribute_EPackage( | ||
25377 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25378 | source: DefinedElement, target:DefinedElement) | ||
25379 | { | ||
25380 | find interpretation(problem,interpretation); | ||
25381 | // The two endpoint of the link have to exist | ||
25382 | find mayExist(problem, interpretation, source); | ||
25383 | find mayExist(problem, interpretation, target); | ||
25384 | // Type consistency | ||
25385 | find mayInstanceOfEPackage_class(problem,interpretation,source); | ||
25386 | StringElement(target); | ||
25387 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25388 | // the upper bound of the multiplicity should be considered. | ||
25389 | numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); | ||
25390 | check(numberOfExistingReferences < 1); | ||
25391 | } or { | ||
25392 | find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); | ||
25393 | } | ||
25394 | /** | ||
25395 | * Matcher for detecting tuples t where []containment attribute EReference(source,target) | ||
25396 | */ | ||
25397 | private pattern mustInRelationcontainment_attribute_EReference( | ||
25398 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25399 | source: DefinedElement, target:DefinedElement) | ||
25400 | { | ||
25401 | find interpretation(problem,interpretation); | ||
25402 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25403 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
25404 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25405 | BinaryElementRelationLink.param1(link,source); | ||
25406 | BinaryElementRelationLink.param2(link,target); | ||
25407 | } | ||
25408 | /** | ||
25409 | * Matcher for detecting tuples t where <>containment attribute EReference(source,target) | ||
25410 | */ | ||
25411 | private pattern mayInRelationcontainment_attribute_EReference( | ||
25412 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25413 | source: DefinedElement, target:DefinedElement) | ||
25414 | { | ||
25415 | find interpretation(problem,interpretation); | ||
25416 | // The two endpoint of the link have to exist | ||
25417 | find mayExist(problem, interpretation, source); | ||
25418 | find mayExist(problem, interpretation, target); | ||
25419 | // Type consistency | ||
25420 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
25421 | BooleanElement(target); | ||
25422 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25423 | // the upper bound of the multiplicity should be considered. | ||
25424 | numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); | ||
25425 | check(numberOfExistingReferences < 1); | ||
25426 | } or { | ||
25427 | find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); | ||
25428 | } | ||
25429 | /** | ||
25430 | * Matcher for detecting tuples t where []container attribute EReference(source,target) | ||
25431 | */ | ||
25432 | private pattern mustInRelationcontainer_attribute_EReference( | ||
25433 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25434 | source: DefinedElement, target:DefinedElement) | ||
25435 | { | ||
25436 | find interpretation(problem,interpretation); | ||
25437 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25438 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
25439 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25440 | BinaryElementRelationLink.param1(link,source); | ||
25441 | BinaryElementRelationLink.param2(link,target); | ||
25442 | } | ||
25443 | /** | ||
25444 | * Matcher for detecting tuples t where <>container attribute EReference(source,target) | ||
25445 | */ | ||
25446 | private pattern mayInRelationcontainer_attribute_EReference( | ||
25447 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25448 | source: DefinedElement, target:DefinedElement) | ||
25449 | { | ||
25450 | find interpretation(problem,interpretation); | ||
25451 | // The two endpoint of the link have to exist | ||
25452 | find mayExist(problem, interpretation, source); | ||
25453 | find mayExist(problem, interpretation, target); | ||
25454 | // Type consistency | ||
25455 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
25456 | BooleanElement(target); | ||
25457 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25458 | // the upper bound of the multiplicity should be considered. | ||
25459 | numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); | ||
25460 | check(numberOfExistingReferences < 1); | ||
25461 | } or { | ||
25462 | find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); | ||
25463 | } | ||
25464 | /** | ||
25465 | * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) | ||
25466 | */ | ||
25467 | private pattern mustInRelationresolveProxies_attribute_EReference( | ||
25468 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25469 | source: DefinedElement, target:DefinedElement) | ||
25470 | { | ||
25471 | find interpretation(problem,interpretation); | ||
25472 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25473 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
25474 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25475 | BinaryElementRelationLink.param1(link,source); | ||
25476 | BinaryElementRelationLink.param2(link,target); | ||
25477 | } | ||
25478 | /** | ||
25479 | * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) | ||
25480 | */ | ||
25481 | private pattern mayInRelationresolveProxies_attribute_EReference( | ||
25482 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25483 | source: DefinedElement, target:DefinedElement) | ||
25484 | { | ||
25485 | find interpretation(problem,interpretation); | ||
25486 | // The two endpoint of the link have to exist | ||
25487 | find mayExist(problem, interpretation, source); | ||
25488 | find mayExist(problem, interpretation, target); | ||
25489 | // Type consistency | ||
25490 | find mayInstanceOfEReference_class(problem,interpretation,source); | ||
25491 | BooleanElement(target); | ||
25492 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25493 | // the upper bound of the multiplicity should be considered. | ||
25494 | numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); | ||
25495 | check(numberOfExistingReferences < 1); | ||
25496 | } or { | ||
25497 | find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); | ||
25498 | } | ||
25499 | /** | ||
25500 | * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) | ||
25501 | */ | ||
25502 | private pattern mustInRelationchangeable_attribute_EStructuralFeature( | ||
25503 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25504 | source: DefinedElement, target:DefinedElement) | ||
25505 | { | ||
25506 | find interpretation(problem,interpretation); | ||
25507 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25508 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
25509 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25510 | BinaryElementRelationLink.param1(link,source); | ||
25511 | BinaryElementRelationLink.param2(link,target); | ||
25512 | } | ||
25513 | /** | ||
25514 | * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) | ||
25515 | */ | ||
25516 | private pattern mayInRelationchangeable_attribute_EStructuralFeature( | ||
25517 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25518 | source: DefinedElement, target:DefinedElement) | ||
25519 | { | ||
25520 | find interpretation(problem,interpretation); | ||
25521 | // The two endpoint of the link have to exist | ||
25522 | find mayExist(problem, interpretation, source); | ||
25523 | find mayExist(problem, interpretation, target); | ||
25524 | // Type consistency | ||
25525 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25526 | BooleanElement(target); | ||
25527 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25528 | // the upper bound of the multiplicity should be considered. | ||
25529 | numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25530 | check(numberOfExistingReferences < 1); | ||
25531 | } or { | ||
25532 | find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25533 | } | ||
25534 | /** | ||
25535 | * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) | ||
25536 | */ | ||
25537 | private pattern mustInRelationvolatile_attribute_EStructuralFeature( | ||
25538 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25539 | source: DefinedElement, target:DefinedElement) | ||
25540 | { | ||
25541 | find interpretation(problem,interpretation); | ||
25542 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25543 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
25544 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25545 | BinaryElementRelationLink.param1(link,source); | ||
25546 | BinaryElementRelationLink.param2(link,target); | ||
25547 | } | ||
25548 | /** | ||
25549 | * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) | ||
25550 | */ | ||
25551 | private pattern mayInRelationvolatile_attribute_EStructuralFeature( | ||
25552 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25553 | source: DefinedElement, target:DefinedElement) | ||
25554 | { | ||
25555 | find interpretation(problem,interpretation); | ||
25556 | // The two endpoint of the link have to exist | ||
25557 | find mayExist(problem, interpretation, source); | ||
25558 | find mayExist(problem, interpretation, target); | ||
25559 | // Type consistency | ||
25560 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25561 | BooleanElement(target); | ||
25562 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25563 | // the upper bound of the multiplicity should be considered. | ||
25564 | numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25565 | check(numberOfExistingReferences < 1); | ||
25566 | } or { | ||
25567 | find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25568 | } | ||
25569 | /** | ||
25570 | * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) | ||
25571 | */ | ||
25572 | private pattern mustInRelationtransient_attribute_EStructuralFeature( | ||
25573 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25574 | source: DefinedElement, target:DefinedElement) | ||
25575 | { | ||
25576 | find interpretation(problem,interpretation); | ||
25577 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25578 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
25579 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25580 | BinaryElementRelationLink.param1(link,source); | ||
25581 | BinaryElementRelationLink.param2(link,target); | ||
25582 | } | ||
25583 | /** | ||
25584 | * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) | ||
25585 | */ | ||
25586 | private pattern mayInRelationtransient_attribute_EStructuralFeature( | ||
25587 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25588 | source: DefinedElement, target:DefinedElement) | ||
25589 | { | ||
25590 | find interpretation(problem,interpretation); | ||
25591 | // The two endpoint of the link have to exist | ||
25592 | find mayExist(problem, interpretation, source); | ||
25593 | find mayExist(problem, interpretation, target); | ||
25594 | // Type consistency | ||
25595 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25596 | BooleanElement(target); | ||
25597 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25598 | // the upper bound of the multiplicity should be considered. | ||
25599 | numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25600 | check(numberOfExistingReferences < 1); | ||
25601 | } or { | ||
25602 | find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25603 | } | ||
25604 | /** | ||
25605 | * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) | ||
25606 | */ | ||
25607 | private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
25608 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25609 | source: DefinedElement, target:DefinedElement) | ||
25610 | { | ||
25611 | find interpretation(problem,interpretation); | ||
25612 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25613 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
25614 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25615 | BinaryElementRelationLink.param1(link,source); | ||
25616 | BinaryElementRelationLink.param2(link,target); | ||
25617 | } | ||
25618 | /** | ||
25619 | * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) | ||
25620 | */ | ||
25621 | private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( | ||
25622 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25623 | source: DefinedElement, target:DefinedElement) | ||
25624 | { | ||
25625 | find interpretation(problem,interpretation); | ||
25626 | // The two endpoint of the link have to exist | ||
25627 | find mayExist(problem, interpretation, source); | ||
25628 | find mayExist(problem, interpretation, target); | ||
25629 | // Type consistency | ||
25630 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25631 | StringElement(target); | ||
25632 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25633 | // the upper bound of the multiplicity should be considered. | ||
25634 | numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25635 | check(numberOfExistingReferences < 1); | ||
25636 | } or { | ||
25637 | find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25638 | } | ||
25639 | /** | ||
25640 | * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) | ||
25641 | */ | ||
25642 | private pattern mustInRelationunsettable_attribute_EStructuralFeature( | ||
25643 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25644 | source: DefinedElement, target:DefinedElement) | ||
25645 | { | ||
25646 | find interpretation(problem,interpretation); | ||
25647 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25648 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
25649 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25650 | BinaryElementRelationLink.param1(link,source); | ||
25651 | BinaryElementRelationLink.param2(link,target); | ||
25652 | } | ||
25653 | /** | ||
25654 | * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) | ||
25655 | */ | ||
25656 | private pattern mayInRelationunsettable_attribute_EStructuralFeature( | ||
25657 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25658 | source: DefinedElement, target:DefinedElement) | ||
25659 | { | ||
25660 | find interpretation(problem,interpretation); | ||
25661 | // The two endpoint of the link have to exist | ||
25662 | find mayExist(problem, interpretation, source); | ||
25663 | find mayExist(problem, interpretation, target); | ||
25664 | // Type consistency | ||
25665 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25666 | BooleanElement(target); | ||
25667 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25668 | // the upper bound of the multiplicity should be considered. | ||
25669 | numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25670 | check(numberOfExistingReferences < 1); | ||
25671 | } or { | ||
25672 | find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25673 | } | ||
25674 | /** | ||
25675 | * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) | ||
25676 | */ | ||
25677 | private pattern mustInRelationderived_attribute_EStructuralFeature( | ||
25678 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25679 | source: DefinedElement, target:DefinedElement) | ||
25680 | { | ||
25681 | find interpretation(problem,interpretation); | ||
25682 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25683 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
25684 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25685 | BinaryElementRelationLink.param1(link,source); | ||
25686 | BinaryElementRelationLink.param2(link,target); | ||
25687 | } | ||
25688 | /** | ||
25689 | * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) | ||
25690 | */ | ||
25691 | private pattern mayInRelationderived_attribute_EStructuralFeature( | ||
25692 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25693 | source: DefinedElement, target:DefinedElement) | ||
25694 | { | ||
25695 | find interpretation(problem,interpretation); | ||
25696 | // The two endpoint of the link have to exist | ||
25697 | find mayExist(problem, interpretation, source); | ||
25698 | find mayExist(problem, interpretation, target); | ||
25699 | // Type consistency | ||
25700 | find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); | ||
25701 | BooleanElement(target); | ||
25702 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25703 | // the upper bound of the multiplicity should be considered. | ||
25704 | numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); | ||
25705 | check(numberOfExistingReferences < 1); | ||
25706 | } or { | ||
25707 | find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); | ||
25708 | } | ||
25709 | /** | ||
25710 | * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) | ||
25711 | */ | ||
25712 | private pattern mustInRelationordered_attribute_ETypedElement( | ||
25713 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25714 | source: DefinedElement, target:DefinedElement) | ||
25715 | { | ||
25716 | find interpretation(problem,interpretation); | ||
25717 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25718 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
25719 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25720 | BinaryElementRelationLink.param1(link,source); | ||
25721 | BinaryElementRelationLink.param2(link,target); | ||
25722 | } | ||
25723 | /** | ||
25724 | * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) | ||
25725 | */ | ||
25726 | private pattern mayInRelationordered_attribute_ETypedElement( | ||
25727 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25728 | source: DefinedElement, target:DefinedElement) | ||
25729 | { | ||
25730 | find interpretation(problem,interpretation); | ||
25731 | // The two endpoint of the link have to exist | ||
25732 | find mayExist(problem, interpretation, source); | ||
25733 | find mayExist(problem, interpretation, target); | ||
25734 | // Type consistency | ||
25735 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25736 | BooleanElement(target); | ||
25737 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25738 | // the upper bound of the multiplicity should be considered. | ||
25739 | numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); | ||
25740 | check(numberOfExistingReferences < 1); | ||
25741 | } or { | ||
25742 | find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); | ||
25743 | } | ||
25744 | /** | ||
25745 | * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) | ||
25746 | */ | ||
25747 | private pattern mustInRelationunique_attribute_ETypedElement( | ||
25748 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25749 | source: DefinedElement, target:DefinedElement) | ||
25750 | { | ||
25751 | find interpretation(problem,interpretation); | ||
25752 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25753 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
25754 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25755 | BinaryElementRelationLink.param1(link,source); | ||
25756 | BinaryElementRelationLink.param2(link,target); | ||
25757 | } | ||
25758 | /** | ||
25759 | * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) | ||
25760 | */ | ||
25761 | private pattern mayInRelationunique_attribute_ETypedElement( | ||
25762 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25763 | source: DefinedElement, target:DefinedElement) | ||
25764 | { | ||
25765 | find interpretation(problem,interpretation); | ||
25766 | // The two endpoint of the link have to exist | ||
25767 | find mayExist(problem, interpretation, source); | ||
25768 | find mayExist(problem, interpretation, target); | ||
25769 | // Type consistency | ||
25770 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25771 | BooleanElement(target); | ||
25772 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25773 | // the upper bound of the multiplicity should be considered. | ||
25774 | numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); | ||
25775 | check(numberOfExistingReferences < 1); | ||
25776 | } or { | ||
25777 | find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); | ||
25778 | } | ||
25779 | /** | ||
25780 | * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) | ||
25781 | */ | ||
25782 | private pattern mustInRelationlowerBound_attribute_ETypedElement( | ||
25783 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25784 | source: DefinedElement, target:DefinedElement) | ||
25785 | { | ||
25786 | find interpretation(problem,interpretation); | ||
25787 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25788 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
25789 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25790 | BinaryElementRelationLink.param1(link,source); | ||
25791 | BinaryElementRelationLink.param2(link,target); | ||
25792 | } | ||
25793 | /** | ||
25794 | * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) | ||
25795 | */ | ||
25796 | private pattern mayInRelationlowerBound_attribute_ETypedElement( | ||
25797 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25798 | source: DefinedElement, target:DefinedElement) | ||
25799 | { | ||
25800 | find interpretation(problem,interpretation); | ||
25801 | // The two endpoint of the link have to exist | ||
25802 | find mayExist(problem, interpretation, source); | ||
25803 | find mayExist(problem, interpretation, target); | ||
25804 | // Type consistency | ||
25805 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25806 | IntegerElement(target); | ||
25807 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25808 | // the upper bound of the multiplicity should be considered. | ||
25809 | numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
25810 | check(numberOfExistingReferences < 1); | ||
25811 | } or { | ||
25812 | find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
25813 | } | ||
25814 | /** | ||
25815 | * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) | ||
25816 | */ | ||
25817 | private pattern mustInRelationupperBound_attribute_ETypedElement( | ||
25818 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25819 | source: DefinedElement, target:DefinedElement) | ||
25820 | { | ||
25821 | find interpretation(problem,interpretation); | ||
25822 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25823 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
25824 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25825 | BinaryElementRelationLink.param1(link,source); | ||
25826 | BinaryElementRelationLink.param2(link,target); | ||
25827 | } | ||
25828 | /** | ||
25829 | * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) | ||
25830 | */ | ||
25831 | private pattern mayInRelationupperBound_attribute_ETypedElement( | ||
25832 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25833 | source: DefinedElement, target:DefinedElement) | ||
25834 | { | ||
25835 | find interpretation(problem,interpretation); | ||
25836 | // The two endpoint of the link have to exist | ||
25837 | find mayExist(problem, interpretation, source); | ||
25838 | find mayExist(problem, interpretation, target); | ||
25839 | // Type consistency | ||
25840 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25841 | IntegerElement(target); | ||
25842 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25843 | // the upper bound of the multiplicity should be considered. | ||
25844 | numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); | ||
25845 | check(numberOfExistingReferences < 1); | ||
25846 | } or { | ||
25847 | find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); | ||
25848 | } | ||
25849 | /** | ||
25850 | * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) | ||
25851 | */ | ||
25852 | private pattern mustInRelationmany_attribute_ETypedElement( | ||
25853 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25854 | source: DefinedElement, target:DefinedElement) | ||
25855 | { | ||
25856 | find interpretation(problem,interpretation); | ||
25857 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25858 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
25859 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25860 | BinaryElementRelationLink.param1(link,source); | ||
25861 | BinaryElementRelationLink.param2(link,target); | ||
25862 | } | ||
25863 | /** | ||
25864 | * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) | ||
25865 | */ | ||
25866 | private pattern mayInRelationmany_attribute_ETypedElement( | ||
25867 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25868 | source: DefinedElement, target:DefinedElement) | ||
25869 | { | ||
25870 | find interpretation(problem,interpretation); | ||
25871 | // The two endpoint of the link have to exist | ||
25872 | find mayExist(problem, interpretation, source); | ||
25873 | find mayExist(problem, interpretation, target); | ||
25874 | // Type consistency | ||
25875 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25876 | BooleanElement(target); | ||
25877 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25878 | // the upper bound of the multiplicity should be considered. | ||
25879 | numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); | ||
25880 | check(numberOfExistingReferences < 1); | ||
25881 | } or { | ||
25882 | find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); | ||
25883 | } | ||
25884 | /** | ||
25885 | * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) | ||
25886 | */ | ||
25887 | private pattern mustInRelationrequired_attribute_ETypedElement( | ||
25888 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25889 | source: DefinedElement, target:DefinedElement) | ||
25890 | { | ||
25891 | find interpretation(problem,interpretation); | ||
25892 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25893 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
25894 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25895 | BinaryElementRelationLink.param1(link,source); | ||
25896 | BinaryElementRelationLink.param2(link,target); | ||
25897 | } | ||
25898 | /** | ||
25899 | * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) | ||
25900 | */ | ||
25901 | private pattern mayInRelationrequired_attribute_ETypedElement( | ||
25902 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25903 | source: DefinedElement, target:DefinedElement) | ||
25904 | { | ||
25905 | find interpretation(problem,interpretation); | ||
25906 | // The two endpoint of the link have to exist | ||
25907 | find mayExist(problem, interpretation, source); | ||
25908 | find mayExist(problem, interpretation, target); | ||
25909 | // Type consistency | ||
25910 | find mayInstanceOfETypedElement_class(problem,interpretation,source); | ||
25911 | BooleanElement(target); | ||
25912 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25913 | // the upper bound of the multiplicity should be considered. | ||
25914 | numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); | ||
25915 | check(numberOfExistingReferences < 1); | ||
25916 | } or { | ||
25917 | find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); | ||
25918 | } | ||
25919 | /** | ||
25920 | * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) | ||
25921 | */ | ||
25922 | private pattern mustInRelationkey_attribute_EStringToStringMapEntry( | ||
25923 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25924 | source: DefinedElement, target:DefinedElement) | ||
25925 | { | ||
25926 | find interpretation(problem,interpretation); | ||
25927 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25928 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
25929 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25930 | BinaryElementRelationLink.param1(link,source); | ||
25931 | BinaryElementRelationLink.param2(link,target); | ||
25932 | } | ||
25933 | /** | ||
25934 | * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) | ||
25935 | */ | ||
25936 | private pattern mayInRelationkey_attribute_EStringToStringMapEntry( | ||
25937 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25938 | source: DefinedElement, target:DefinedElement) | ||
25939 | { | ||
25940 | find interpretation(problem,interpretation); | ||
25941 | // The two endpoint of the link have to exist | ||
25942 | find mayExist(problem, interpretation, source); | ||
25943 | find mayExist(problem, interpretation, target); | ||
25944 | // Type consistency | ||
25945 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
25946 | StringElement(target); | ||
25947 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25948 | // the upper bound of the multiplicity should be considered. | ||
25949 | numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
25950 | check(numberOfExistingReferences < 1); | ||
25951 | } or { | ||
25952 | find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
25953 | } | ||
25954 | /** | ||
25955 | * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) | ||
25956 | */ | ||
25957 | private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( | ||
25958 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25959 | source: DefinedElement, target:DefinedElement) | ||
25960 | { | ||
25961 | find interpretation(problem,interpretation); | ||
25962 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
25963 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
25964 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
25965 | BinaryElementRelationLink.param1(link,source); | ||
25966 | BinaryElementRelationLink.param2(link,target); | ||
25967 | } | ||
25968 | /** | ||
25969 | * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) | ||
25970 | */ | ||
25971 | private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( | ||
25972 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
25973 | source: DefinedElement, target:DefinedElement) | ||
25974 | { | ||
25975 | find interpretation(problem,interpretation); | ||
25976 | // The two endpoint of the link have to exist | ||
25977 | find mayExist(problem, interpretation, source); | ||
25978 | find mayExist(problem, interpretation, target); | ||
25979 | // Type consistency | ||
25980 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); | ||
25981 | StringElement(target); | ||
25982 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
25983 | // the upper bound of the multiplicity should be considered. | ||
25984 | numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); | ||
25985 | check(numberOfExistingReferences < 1); | ||
25986 | } or { | ||
25987 | find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); | ||
25988 | } | ||
25989 | |||
25990 | ////////// | ||
25991 | // 1.3 Relation Definition Indexers | ||
25992 | ////////// | ||
25993 | |||
25994 | ////////// | ||
25995 | // 1.4 Containment Indexer | ||
25996 | ////////// | ||
25997 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
25998 | find mustContains4(_,_,source,target); | ||
25999 | } | ||
26000 | |||
26001 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
26002 | source: DefinedElement, target: DefinedElement) | ||
26003 | { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or | ||
26004 | |||
26005 | { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or | ||
26006 | |||
26007 | { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or | ||
26008 | |||
26009 | { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or | ||
26010 | |||
26011 | { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or | ||
26012 | |||
26013 | { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or | ||
26014 | |||
26015 | { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or | ||
26016 | |||
26017 | { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or | ||
26018 | |||
26019 | { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
26020 | |||
26021 | { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or | ||
26022 | |||
26023 | { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or | ||
26024 | |||
26025 | { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or | ||
26026 | |||
26027 | { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or | ||
26028 | |||
26029 | { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or | ||
26030 | |||
26031 | { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
26032 | |||
26033 | { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or | ||
26034 | |||
26035 | { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or | ||
26036 | |||
26037 | { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } | ||
26038 | |||
26039 | private pattern mustTransitiveContains(source,target) { | ||
26040 | find mustContains2+(source,target); | ||
26041 | } | ||
26042 | |||
26043 | ////////// | ||
26044 | // 2. Invalidation Indexers | ||
26045 | ////////// | ||
26046 | // 2.1 Invalidated by WF Queries | ||
26047 | ////////// | ||
26048 | |||
26049 | ////////// | ||
26050 | // 3. Unfinishedness Indexers | ||
26051 | ////////// | ||
26052 | // 3.1 Unfinishedness Measured by Multiplicity | ||
26053 | ////////// | ||
26054 | pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
26055 | find interpretation(problem,interpretation); | ||
26056 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26057 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
26058 | find mustInstanceOfEAttribute_class(problem,interpretation,object); | ||
26059 | numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); | ||
26060 | check(numberOfExistingReferences < 1); | ||
26061 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
26062 | } | ||
26063 | pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
26064 | find interpretation(problem,interpretation); | ||
26065 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26066 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
26067 | find mustInstanceOfEReference_class(problem,interpretation,object); | ||
26068 | numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); | ||
26069 | check(numberOfExistingReferences < 1); | ||
26070 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
26071 | } | ||
26072 | pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
26073 | find interpretation(problem,interpretation); | ||
26074 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26075 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
26076 | find mustInstanceOfEGenericType_class(problem,interpretation,object); | ||
26077 | numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); | ||
26078 | check(numberOfExistingReferences < 1); | ||
26079 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
26080 | } | ||
26081 | |||
26082 | ////////// | ||
26083 | // 3.2 Unfinishedness Measured by WF Queries | ||
26084 | ////////// | ||
26085 | |||
26086 | ////////// | ||
26087 | // 4. Refinement Indexers | ||
26088 | ////////// | ||
26089 | // 4.1 Object constructors | ||
26090 | ////////// | ||
26091 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
26092 | { | ||
26093 | find interpretation(problem,interpretation); | ||
26094 | find mustInstanceOfEParameter_class(problem,interpretation,root); | ||
26095 | find mustExist(problem, interpretation, root); | ||
26096 | }or{ | ||
26097 | find interpretation(problem,interpretation); | ||
26098 | find mustInstanceOfEEnum_class(problem,interpretation,root); | ||
26099 | find mustExist(problem, interpretation, root); | ||
26100 | }or{ | ||
26101 | find interpretation(problem,interpretation); | ||
26102 | find mustInstanceOfEReference_class(problem,interpretation,root); | ||
26103 | find mustExist(problem, interpretation, root); | ||
26104 | }or{ | ||
26105 | find interpretation(problem,interpretation); | ||
26106 | find mustInstanceOfEAttribute_class(problem,interpretation,root); | ||
26107 | find mustExist(problem, interpretation, root); | ||
26108 | }or{ | ||
26109 | find interpretation(problem,interpretation); | ||
26110 | find mustInstanceOfEOperation_class(problem,interpretation,root); | ||
26111 | find mustExist(problem, interpretation, root); | ||
26112 | }or{ | ||
26113 | find interpretation(problem,interpretation); | ||
26114 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,root); | ||
26115 | find mustExist(problem, interpretation, root); | ||
26116 | }or{ | ||
26117 | find interpretation(problem,interpretation); | ||
26118 | find mustInstanceOfENamedElement_class(problem,interpretation,root); | ||
26119 | find mustExist(problem, interpretation, root); | ||
26120 | }or{ | ||
26121 | find interpretation(problem,interpretation); | ||
26122 | find mustInstanceOfETypeParameter_class(problem,interpretation,root); | ||
26123 | find mustExist(problem, interpretation, root); | ||
26124 | }or{ | ||
26125 | find interpretation(problem,interpretation); | ||
26126 | find mustInstanceOfEClass_class(problem,interpretation,root); | ||
26127 | find mustExist(problem, interpretation, root); | ||
26128 | }or{ | ||
26129 | find interpretation(problem,interpretation); | ||
26130 | find mustInstanceOfEGenericType_class(problem,interpretation,root); | ||
26131 | find mustExist(problem, interpretation, root); | ||
26132 | }or{ | ||
26133 | find interpretation(problem,interpretation); | ||
26134 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,root); | ||
26135 | find mustExist(problem, interpretation, root); | ||
26136 | }or{ | ||
26137 | find interpretation(problem,interpretation); | ||
26138 | find mustInstanceOfEModelElement_class(problem,interpretation,root); | ||
26139 | find mustExist(problem, interpretation, root); | ||
26140 | }or{ | ||
26141 | find interpretation(problem,interpretation); | ||
26142 | find mustInstanceOfETypedElement_class(problem,interpretation,root); | ||
26143 | find mustExist(problem, interpretation, root); | ||
26144 | }or{ | ||
26145 | find interpretation(problem,interpretation); | ||
26146 | find mustInstanceOfEPackage_class(problem,interpretation,root); | ||
26147 | find mustExist(problem, interpretation, root); | ||
26148 | }or{ | ||
26149 | find interpretation(problem,interpretation); | ||
26150 | find mustInstanceOfEDataType_class(problem,interpretation,root); | ||
26151 | find mustExist(problem, interpretation, root); | ||
26152 | }or{ | ||
26153 | find interpretation(problem,interpretation); | ||
26154 | find mustInstanceOfEAnnotation_class(problem,interpretation,root); | ||
26155 | find mustExist(problem, interpretation, root); | ||
26156 | }or{ | ||
26157 | find interpretation(problem,interpretation); | ||
26158 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root); | ||
26159 | find mustExist(problem, interpretation, root); | ||
26160 | }or{ | ||
26161 | find interpretation(problem,interpretation); | ||
26162 | find mustInstanceOfEClassifier_class(problem,interpretation,root); | ||
26163 | find mustExist(problem, interpretation, root); | ||
26164 | }or{ | ||
26165 | find interpretation(problem,interpretation); | ||
26166 | find mustInstanceOfEObject_class(problem,interpretation,root); | ||
26167 | find mustExist(problem, interpretation, root); | ||
26168 | }or{ | ||
26169 | find interpretation(problem,interpretation); | ||
26170 | find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); | ||
26171 | find mustExist(problem, interpretation, root); | ||
26172 | }or{ | ||
26173 | find interpretation(problem,interpretation); | ||
26174 | find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); | ||
26175 | find mustExist(problem, interpretation, root); | ||
26176 | }or{ | ||
26177 | find interpretation(problem,interpretation); | ||
26178 | find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); | ||
26179 | find mustExist(problem, interpretation, root); | ||
26180 | }or{ | ||
26181 | find interpretation(problem,interpretation); | ||
26182 | find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); | ||
26183 | find mustExist(problem, interpretation, root); | ||
26184 | }or{ | ||
26185 | find interpretation(problem,interpretation); | ||
26186 | find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); | ||
26187 | find mustExist(problem, interpretation, root); | ||
26188 | }or{ | ||
26189 | find interpretation(problem,interpretation); | ||
26190 | find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); | ||
26191 | find mustExist(problem, interpretation, root); | ||
26192 | } | ||
26193 | pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( | ||
26194 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26195 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26196 | container:DefinedElement) | ||
26197 | { | ||
26198 | find interpretation(problem,interpretation); | ||
26199 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26200 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
26201 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26202 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); | ||
26203 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26204 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); | ||
26205 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
26206 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
26207 | find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); | ||
26208 | find mustExist(problem, interpretation, container); | ||
26209 | neg find mustExist(problem, interpretation, newObject); | ||
26210 | } | ||
26211 | pattern createObject_EPackage_class_UndefinedPart( | ||
26212 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26213 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26214 | { | ||
26215 | find interpretation(problem,interpretation); | ||
26216 | neg find hasElementInContainment(problem,interpretation); | ||
26217 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26218 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); | ||
26219 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); | ||
26220 | find mayExist(problem, interpretation, newObject); | ||
26221 | neg find mustExist(problem, interpretation, newObject); | ||
26222 | } | ||
26223 | pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( | ||
26224 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26225 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26226 | container:DefinedElement) | ||
26227 | { | ||
26228 | find interpretation(problem,interpretation); | ||
26229 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26230 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
26231 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26232 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); | ||
26233 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26234 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); | ||
26235 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
26236 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
26237 | find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
26238 | find mustExist(problem, interpretation, container); | ||
26239 | neg find mustExist(problem, interpretation, newObject); | ||
26240 | } | ||
26241 | pattern createObject_EParameter_class( | ||
26242 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26243 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26244 | { | ||
26245 | find interpretation(problem,interpretation); | ||
26246 | neg find hasElementInContainment(problem,interpretation); | ||
26247 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26248 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); | ||
26249 | find mayInstanceOfEParameter_class(problem,interpretation,newObject); | ||
26250 | find mayExist(problem, interpretation, newObject); | ||
26251 | neg find mustExist(problem, interpretation, newObject); | ||
26252 | } | ||
26253 | pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
26254 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26255 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26256 | container:DefinedElement) | ||
26257 | { | ||
26258 | find interpretation(problem,interpretation); | ||
26259 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26260 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
26261 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26262 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
26263 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26264 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
26265 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
26266 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
26267 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
26268 | find mustExist(problem, interpretation, container); | ||
26269 | neg find mustExist(problem, interpretation, newObject); | ||
26270 | } | ||
26271 | pattern createObject_EEnum_class( | ||
26272 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26273 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26274 | { | ||
26275 | find interpretation(problem,interpretation); | ||
26276 | neg find hasElementInContainment(problem,interpretation); | ||
26277 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26278 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); | ||
26279 | find mayInstanceOfEEnum_class(problem,interpretation,newObject); | ||
26280 | find mayExist(problem, interpretation, newObject); | ||
26281 | neg find mustExist(problem, interpretation, newObject); | ||
26282 | } | ||
26283 | pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( | ||
26284 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26285 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26286 | container:DefinedElement) | ||
26287 | { | ||
26288 | find interpretation(problem,interpretation); | ||
26289 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26290 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
26291 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26292 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); | ||
26293 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26294 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); | ||
26295 | find mustInstanceOfEModelElement_class(problem,interpretation,container); | ||
26296 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
26297 | find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); | ||
26298 | find mustExist(problem, interpretation, container); | ||
26299 | neg find mustExist(problem, interpretation, newObject); | ||
26300 | } | ||
26301 | pattern createObject_EAnnotation_class( | ||
26302 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26303 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26304 | { | ||
26305 | find interpretation(problem,interpretation); | ||
26306 | neg find hasElementInContainment(problem,interpretation); | ||
26307 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26308 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); | ||
26309 | find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); | ||
26310 | find mayExist(problem, interpretation, newObject); | ||
26311 | neg find mustExist(problem, interpretation, newObject); | ||
26312 | } | ||
26313 | pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( | ||
26314 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26315 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26316 | container:DefinedElement) | ||
26317 | { | ||
26318 | find interpretation(problem,interpretation); | ||
26319 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26320 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26321 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26322 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass"); | ||
26323 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
26324 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26325 | find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject); | ||
26326 | find mustExist(problem, interpretation, container); | ||
26327 | neg find mustExist(problem, interpretation, newObject); | ||
26328 | } | ||
26329 | pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation( | ||
26330 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26331 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26332 | container:DefinedElement) | ||
26333 | { | ||
26334 | find interpretation(problem,interpretation); | ||
26335 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26336 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26337 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26338 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); | ||
26339 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
26340 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26341 | find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); | ||
26342 | find mustExist(problem, interpretation, container); | ||
26343 | neg find mustExist(problem, interpretation, newObject); | ||
26344 | } | ||
26345 | pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( | ||
26346 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26347 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26348 | container:DefinedElement) | ||
26349 | { | ||
26350 | find interpretation(problem,interpretation); | ||
26351 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26352 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26353 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26354 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); | ||
26355 | find mustInstanceOfETypedElement_class(problem,interpretation,container); | ||
26356 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26357 | find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); | ||
26358 | find mustExist(problem, interpretation, container); | ||
26359 | neg find mustExist(problem, interpretation, newObject); | ||
26360 | } | ||
26361 | pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( | ||
26362 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26363 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26364 | container:DefinedElement) | ||
26365 | { | ||
26366 | find interpretation(problem,interpretation); | ||
26367 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26368 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26369 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26370 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); | ||
26371 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
26372 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26373 | find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
26374 | find mustExist(problem, interpretation, container); | ||
26375 | neg find mustExist(problem, interpretation, newObject); | ||
26376 | } | ||
26377 | pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( | ||
26378 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26379 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26380 | container:DefinedElement) | ||
26381 | { | ||
26382 | find interpretation(problem,interpretation); | ||
26383 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26384 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26385 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26386 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); | ||
26387 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
26388 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26389 | find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); | ||
26390 | find mustExist(problem, interpretation, container); | ||
26391 | neg find mustExist(problem, interpretation, newObject); | ||
26392 | } | ||
26393 | pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( | ||
26394 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26395 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26396 | container:DefinedElement) | ||
26397 | { | ||
26398 | find interpretation(problem,interpretation); | ||
26399 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26400 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26401 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26402 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); | ||
26403 | find mustInstanceOfEGenericType_class(problem,interpretation,container); | ||
26404 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26405 | find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); | ||
26406 | find mustExist(problem, interpretation, container); | ||
26407 | neg find mustExist(problem, interpretation, newObject); | ||
26408 | } | ||
26409 | pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( | ||
26410 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26411 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26412 | container:DefinedElement) | ||
26413 | { | ||
26414 | find interpretation(problem,interpretation); | ||
26415 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26416 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26417 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26418 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); | ||
26419 | find mustInstanceOfETypeParameter_class(problem,interpretation,container); | ||
26420 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26421 | find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); | ||
26422 | find mustExist(problem, interpretation, container); | ||
26423 | neg find mustExist(problem, interpretation, newObject); | ||
26424 | } | ||
26425 | pattern createObject_EGenericType_class( | ||
26426 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26427 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26428 | { | ||
26429 | find interpretation(problem,interpretation); | ||
26430 | neg find hasElementInContainment(problem,interpretation); | ||
26431 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26432 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); | ||
26433 | find mayInstanceOfEGenericType_class(problem,interpretation,newObject); | ||
26434 | find mayExist(problem, interpretation, newObject); | ||
26435 | neg find mustExist(problem, interpretation, newObject); | ||
26436 | } | ||
26437 | pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
26438 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26439 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26440 | container:DefinedElement) | ||
26441 | { | ||
26442 | find interpretation(problem,interpretation); | ||
26443 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26444 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
26445 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26446 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
26447 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26448 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
26449 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
26450 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
26451 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
26452 | find mustExist(problem, interpretation, container); | ||
26453 | neg find mustExist(problem, interpretation, newObject); | ||
26454 | } | ||
26455 | pattern createObject_EReference_class( | ||
26456 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26457 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26458 | { | ||
26459 | find interpretation(problem,interpretation); | ||
26460 | neg find hasElementInContainment(problem,interpretation); | ||
26461 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26462 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); | ||
26463 | find mayInstanceOfEReference_class(problem,interpretation,newObject); | ||
26464 | find mayExist(problem, interpretation, newObject); | ||
26465 | neg find mustExist(problem, interpretation, newObject); | ||
26466 | } | ||
26467 | pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( | ||
26468 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26469 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26470 | container:DefinedElement) | ||
26471 | { | ||
26472 | find interpretation(problem,interpretation); | ||
26473 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26474 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
26475 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26476 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); | ||
26477 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26478 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); | ||
26479 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
26480 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
26481 | find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); | ||
26482 | find mustExist(problem, interpretation, container); | ||
26483 | neg find mustExist(problem, interpretation, newObject); | ||
26484 | } | ||
26485 | pattern createObject_EAttribute_class( | ||
26486 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26487 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26488 | { | ||
26489 | find interpretation(problem,interpretation); | ||
26490 | neg find hasElementInContainment(problem,interpretation); | ||
26491 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26492 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); | ||
26493 | find mayInstanceOfEAttribute_class(problem,interpretation,newObject); | ||
26494 | find mayExist(problem, interpretation, newObject); | ||
26495 | neg find mustExist(problem, interpretation, newObject); | ||
26496 | } | ||
26497 | pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
26498 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26499 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26500 | container:DefinedElement) | ||
26501 | { | ||
26502 | find interpretation(problem,interpretation); | ||
26503 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26504 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
26505 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26506 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
26507 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26508 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
26509 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
26510 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
26511 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
26512 | find mustExist(problem, interpretation, container); | ||
26513 | neg find mustExist(problem, interpretation, newObject); | ||
26514 | } | ||
26515 | pattern createObject_EDataType_class( | ||
26516 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26517 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26518 | { | ||
26519 | find interpretation(problem,interpretation); | ||
26520 | neg find hasElementInContainment(problem,interpretation); | ||
26521 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26522 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); | ||
26523 | find mayInstanceOfEDataType_class(problem,interpretation,newObject); | ||
26524 | find mayExist(problem, interpretation, newObject); | ||
26525 | neg find mustExist(problem, interpretation, newObject); | ||
26526 | } | ||
26527 | pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( | ||
26528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26529 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26530 | container:DefinedElement) | ||
26531 | { | ||
26532 | find interpretation(problem,interpretation); | ||
26533 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26534 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
26535 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26536 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); | ||
26537 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26538 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); | ||
26539 | find mustInstanceOfEClass_class(problem,interpretation,container); | ||
26540 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
26541 | find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); | ||
26542 | find mustExist(problem, interpretation, container); | ||
26543 | neg find mustExist(problem, interpretation, newObject); | ||
26544 | } | ||
26545 | pattern createObject_EOperation_class( | ||
26546 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26547 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26548 | { | ||
26549 | find interpretation(problem,interpretation); | ||
26550 | neg find hasElementInContainment(problem,interpretation); | ||
26551 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26552 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); | ||
26553 | find mayInstanceOfEOperation_class(problem,interpretation,newObject); | ||
26554 | find mayExist(problem, interpretation, newObject); | ||
26555 | neg find mustExist(problem, interpretation, newObject); | ||
26556 | } | ||
26557 | pattern createObject_EObject_class_by_contents_reference_EAnnotation( | ||
26558 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26559 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26560 | container:DefinedElement) | ||
26561 | { | ||
26562 | find interpretation(problem,interpretation); | ||
26563 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26564 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
26565 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26566 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); | ||
26567 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
26568 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
26569 | find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); | ||
26570 | find mustExist(problem, interpretation, container); | ||
26571 | neg find mustExist(problem, interpretation, newObject); | ||
26572 | } | ||
26573 | pattern createObject_EObject_class( | ||
26574 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26575 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26576 | { | ||
26577 | find interpretation(problem,interpretation); | ||
26578 | neg find hasElementInContainment(problem,interpretation); | ||
26579 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26580 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); | ||
26581 | find mayInstanceOfEObject_class(problem,interpretation,newObject); | ||
26582 | find mayExist(problem, interpretation, newObject); | ||
26583 | neg find mustExist(problem, interpretation, newObject); | ||
26584 | } | ||
26585 | pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( | ||
26586 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26587 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26588 | container:DefinedElement) | ||
26589 | { | ||
26590 | find interpretation(problem,interpretation); | ||
26591 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26592 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
26593 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26594 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation"); | ||
26595 | find mustInstanceOfEAnnotation_class(problem,interpretation,container); | ||
26596 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
26597 | find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject); | ||
26598 | find mustExist(problem, interpretation, container); | ||
26599 | neg find mustExist(problem, interpretation, newObject); | ||
26600 | } | ||
26601 | pattern createObject_EStringToStringMapEntry_class( | ||
26602 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26603 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26604 | { | ||
26605 | find interpretation(problem,interpretation); | ||
26606 | neg find hasElementInContainment(problem,interpretation); | ||
26607 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26608 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); | ||
26609 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); | ||
26610 | find mayExist(problem, interpretation, newObject); | ||
26611 | neg find mustExist(problem, interpretation, newObject); | ||
26612 | } | ||
26613 | pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( | ||
26614 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26615 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26616 | container:DefinedElement) | ||
26617 | { | ||
26618 | find interpretation(problem,interpretation); | ||
26619 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26620 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
26621 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26622 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); | ||
26623 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26624 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); | ||
26625 | find mustInstanceOfEEnum_class(problem,interpretation,container); | ||
26626 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
26627 | find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); | ||
26628 | find mustExist(problem, interpretation, container); | ||
26629 | neg find mustExist(problem, interpretation, newObject); | ||
26630 | } | ||
26631 | pattern createObject_EEnumLiteral_class( | ||
26632 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26633 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26634 | { | ||
26635 | find interpretation(problem,interpretation); | ||
26636 | neg find hasElementInContainment(problem,interpretation); | ||
26637 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26638 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); | ||
26639 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); | ||
26640 | find mayExist(problem, interpretation, newObject); | ||
26641 | neg find mustExist(problem, interpretation, newObject); | ||
26642 | } | ||
26643 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( | ||
26644 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26645 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26646 | container:DefinedElement) | ||
26647 | { | ||
26648 | find interpretation(problem,interpretation); | ||
26649 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26650 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
26651 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26652 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier"); | ||
26653 | find mustInstanceOfEClassifier_class(problem,interpretation,container); | ||
26654 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
26655 | find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject); | ||
26656 | find mustExist(problem, interpretation, container); | ||
26657 | neg find mustExist(problem, interpretation, newObject); | ||
26658 | } | ||
26659 | pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation( | ||
26660 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26661 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26662 | container:DefinedElement) | ||
26663 | { | ||
26664 | find interpretation(problem,interpretation); | ||
26665 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26666 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
26667 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26668 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation"); | ||
26669 | find mustInstanceOfEOperation_class(problem,interpretation,container); | ||
26670 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
26671 | find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject); | ||
26672 | find mustExist(problem, interpretation, container); | ||
26673 | neg find mustExist(problem, interpretation, newObject); | ||
26674 | } | ||
26675 | pattern createObject_ETypeParameter_class( | ||
26676 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26677 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26678 | { | ||
26679 | find interpretation(problem,interpretation); | ||
26680 | neg find hasElementInContainment(problem,interpretation); | ||
26681 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26682 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); | ||
26683 | find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); | ||
26684 | find mayExist(problem, interpretation, newObject); | ||
26685 | neg find mustExist(problem, interpretation, newObject); | ||
26686 | } | ||
26687 | pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( | ||
26688 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26689 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
26690 | container:DefinedElement) | ||
26691 | { | ||
26692 | find interpretation(problem,interpretation); | ||
26693 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26694 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
26695 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
26696 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); | ||
26697 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
26698 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); | ||
26699 | find mustInstanceOfEPackage_class(problem,interpretation,container); | ||
26700 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
26701 | find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); | ||
26702 | find mustExist(problem, interpretation, container); | ||
26703 | neg find mustExist(problem, interpretation, newObject); | ||
26704 | } | ||
26705 | pattern createObject_EClass_class( | ||
26706 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26707 | typeInterpretation:PartialComplexTypeInterpretation) | ||
26708 | { | ||
26709 | find interpretation(problem,interpretation); | ||
26710 | neg find hasElementInContainment(problem,interpretation); | ||
26711 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26712 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); | ||
26713 | find mayInstanceOfEClass_class(problem,interpretation,newObject); | ||
26714 | find mayExist(problem, interpretation, newObject); | ||
26715 | neg find mustExist(problem, interpretation, newObject); | ||
26716 | } | ||
26717 | |||
26718 | ////////// | ||
26719 | // 4.2 Type refinement | ||
26720 | ////////// | ||
26721 | pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26722 | find interpretation(problem,interpretation); | ||
26723 | PartialInterpretation.newElements(interpretation,element); | ||
26724 | find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
26725 | neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); | ||
26726 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26727 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26728 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26729 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26730 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26731 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26732 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26733 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26734 | } | ||
26735 | pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26736 | find interpretation(problem,interpretation); | ||
26737 | PartialInterpretation.newElements(interpretation,element); | ||
26738 | find mayInstanceOfEParameter_class(problem,interpretation,element); | ||
26739 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26740 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
26741 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26742 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
26743 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
26744 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26745 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26746 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26747 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26748 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26749 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26750 | } | ||
26751 | pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26752 | find interpretation(problem,interpretation); | ||
26753 | PartialInterpretation.newElements(interpretation,element); | ||
26754 | find mayInstanceOfEEnum_class(problem,interpretation,element); | ||
26755 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26756 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26757 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
26758 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26759 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26760 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26761 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26762 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26763 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26764 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
26765 | } | ||
26766 | pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26767 | find interpretation(problem,interpretation); | ||
26768 | PartialInterpretation.newElements(interpretation,element); | ||
26769 | find mayInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26770 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26771 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26772 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26773 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26774 | neg find mustInstanceOfENamedElement_class(problem,interpretation,element); | ||
26775 | } | ||
26776 | pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26777 | find interpretation(problem,interpretation); | ||
26778 | PartialInterpretation.newElements(interpretation,element); | ||
26779 | find mayInstanceOfEGenericType_class(problem,interpretation,element); | ||
26780 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
26781 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26782 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26783 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26784 | } | ||
26785 | pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26786 | find interpretation(problem,interpretation); | ||
26787 | PartialInterpretation.newElements(interpretation,element); | ||
26788 | find mayInstanceOfEReference_class(problem,interpretation,element); | ||
26789 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26790 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
26791 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
26792 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26793 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
26794 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26795 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26796 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26797 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26798 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26799 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26800 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
26801 | } | ||
26802 | pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26803 | find interpretation(problem,interpretation); | ||
26804 | PartialInterpretation.newElements(interpretation,element); | ||
26805 | find mayInstanceOfEAttribute_class(problem,interpretation,element); | ||
26806 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26807 | neg find mustInstanceOfEAttribute_class(problem,interpretation,element); | ||
26808 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
26809 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26810 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
26811 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26812 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26813 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26814 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26815 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26816 | neg find mustInstanceOfEReference_class(problem,interpretation,element); | ||
26817 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26818 | } | ||
26819 | pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26820 | find interpretation(problem,interpretation); | ||
26821 | PartialInterpretation.newElements(interpretation,element); | ||
26822 | find mayInstanceOfEDataType_class(problem,interpretation,element); | ||
26823 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26824 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
26825 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26826 | neg find mustInstanceOfEEnum_class(problem,interpretation,element); | ||
26827 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26828 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26829 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26830 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26831 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26832 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26833 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
26834 | } | ||
26835 | pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26836 | find interpretation(problem,interpretation); | ||
26837 | PartialInterpretation.newElements(interpretation,element); | ||
26838 | find mayInstanceOfEOperation_class(problem,interpretation,element); | ||
26839 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26840 | neg find mustInstanceOfEOperation_class(problem,interpretation,element); | ||
26841 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26842 | neg find mustInstanceOfEParameter_class(problem,interpretation,element); | ||
26843 | neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); | ||
26844 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26845 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26846 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26847 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26848 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26849 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26850 | } | ||
26851 | pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26852 | find interpretation(problem,interpretation); | ||
26853 | PartialInterpretation.newElements(interpretation,element); | ||
26854 | find mayInstanceOfEObject_class(problem,interpretation,element); | ||
26855 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
26856 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26857 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26858 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26859 | } | ||
26860 | pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26861 | find interpretation(problem,interpretation); | ||
26862 | PartialInterpretation.newElements(interpretation,element); | ||
26863 | find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26864 | neg find mustInstanceOfEModelElement_class(problem,interpretation,element); | ||
26865 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26866 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26867 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26868 | } | ||
26869 | pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26870 | find interpretation(problem,interpretation); | ||
26871 | PartialInterpretation.newElements(interpretation,element); | ||
26872 | find mayInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26873 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26874 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26875 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26876 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26877 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26878 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26879 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26880 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26881 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26882 | } | ||
26883 | pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26884 | find interpretation(problem,interpretation); | ||
26885 | PartialInterpretation.newElements(interpretation,element); | ||
26886 | find mayInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26887 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26888 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26889 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26890 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26891 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26892 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26893 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26894 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26895 | neg find mustInstanceOfEClassifier_class(problem,interpretation,element); | ||
26896 | } | ||
26897 | pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
26898 | find interpretation(problem,interpretation); | ||
26899 | PartialInterpretation.newElements(interpretation,element); | ||
26900 | find mayInstanceOfEClass_class(problem,interpretation,element); | ||
26901 | neg find mustInstanceOfEPackage_class(problem,interpretation,element); | ||
26902 | neg find mustInstanceOfEDataType_class(problem,interpretation,element); | ||
26903 | neg find mustInstanceOfEObject_class(problem,interpretation,element); | ||
26904 | neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); | ||
26905 | neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); | ||
26906 | neg find mustInstanceOfEGenericType_class(problem,interpretation,element); | ||
26907 | neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); | ||
26908 | neg find mustInstanceOfETypedElement_class(problem,interpretation,element); | ||
26909 | neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); | ||
26910 | neg find mustInstanceOfEClass_class(problem,interpretation,element); | ||
26911 | } | ||
26912 | |||
26913 | ////////// | ||
26914 | // 4.3 Relation refinement | ||
26915 | ////////// | ||
26916 | pattern refineRelation_eAttributeType_reference_EAttribute( | ||
26917 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26918 | relationIterpretation:PartialRelationInterpretation, | ||
26919 | from: DefinedElement, to: DefinedElement) | ||
26920 | { | ||
26921 | find interpretation(problem,interpretation); | ||
26922 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26923 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); | ||
26924 | find mustExist(problem, interpretation, from); | ||
26925 | find mustExist(problem, interpretation, to); | ||
26926 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
26927 | find mustInstanceOfEDataType_class(problem,interpretation,to); | ||
26928 | find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
26929 | neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to); | ||
26930 | } | ||
26931 | pattern refineRelation_references_reference_EAnnotation( | ||
26932 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26933 | relationIterpretation:PartialRelationInterpretation, | ||
26934 | from: DefinedElement, to: DefinedElement) | ||
26935 | { | ||
26936 | find interpretation(problem,interpretation); | ||
26937 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26938 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation"); | ||
26939 | find mustExist(problem, interpretation, from); | ||
26940 | find mustExist(problem, interpretation, to); | ||
26941 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
26942 | find mustInstanceOfEObject_class(problem,interpretation,to); | ||
26943 | find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
26944 | neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to); | ||
26945 | } | ||
26946 | pattern refineRelation_eSuperTypes_reference_EClass( | ||
26947 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26948 | relationIterpretation:PartialRelationInterpretation, | ||
26949 | from: DefinedElement, to: DefinedElement) | ||
26950 | { | ||
26951 | find interpretation(problem,interpretation); | ||
26952 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26953 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass"); | ||
26954 | find mustExist(problem, interpretation, from); | ||
26955 | find mustExist(problem, interpretation, to); | ||
26956 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
26957 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
26958 | find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
26959 | neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
26960 | } | ||
26961 | pattern refineRelation_eAllAttributes_reference_EClass( | ||
26962 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26963 | relationIterpretation:PartialRelationInterpretation, | ||
26964 | from: DefinedElement, to: DefinedElement) | ||
26965 | { | ||
26966 | find interpretation(problem,interpretation); | ||
26967 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26968 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass"); | ||
26969 | find mustExist(problem, interpretation, from); | ||
26970 | find mustExist(problem, interpretation, to); | ||
26971 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
26972 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
26973 | find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
26974 | neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to); | ||
26975 | } | ||
26976 | pattern refineRelation_eAllReferences_reference_EClass( | ||
26977 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26978 | relationIterpretation:PartialRelationInterpretation, | ||
26979 | from: DefinedElement, to: DefinedElement) | ||
26980 | { | ||
26981 | find interpretation(problem,interpretation); | ||
26982 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26983 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass"); | ||
26984 | find mustExist(problem, interpretation, from); | ||
26985 | find mustExist(problem, interpretation, to); | ||
26986 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
26987 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
26988 | find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
26989 | neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to); | ||
26990 | } | ||
26991 | pattern refineRelation_eReferences_reference_EClass( | ||
26992 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
26993 | relationIterpretation:PartialRelationInterpretation, | ||
26994 | from: DefinedElement, to: DefinedElement) | ||
26995 | { | ||
26996 | find interpretation(problem,interpretation); | ||
26997 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
26998 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass"); | ||
26999 | find mustExist(problem, interpretation, from); | ||
27000 | find mustExist(problem, interpretation, to); | ||
27001 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27002 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
27003 | find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
27004 | neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to); | ||
27005 | } | ||
27006 | pattern refineRelation_eAttributes_reference_EClass( | ||
27007 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27008 | relationIterpretation:PartialRelationInterpretation, | ||
27009 | from: DefinedElement, to: DefinedElement) | ||
27010 | { | ||
27011 | find interpretation(problem,interpretation); | ||
27012 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27013 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass"); | ||
27014 | find mustExist(problem, interpretation, from); | ||
27015 | find mustExist(problem, interpretation, to); | ||
27016 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27017 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
27018 | find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
27019 | neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to); | ||
27020 | } | ||
27021 | pattern refineRelation_eAllContainments_reference_EClass( | ||
27022 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27023 | relationIterpretation:PartialRelationInterpretation, | ||
27024 | from: DefinedElement, to: DefinedElement) | ||
27025 | { | ||
27026 | find interpretation(problem,interpretation); | ||
27027 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27028 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass"); | ||
27029 | find mustExist(problem, interpretation, from); | ||
27030 | find mustExist(problem, interpretation, to); | ||
27031 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27032 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
27033 | find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
27034 | neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to); | ||
27035 | } | ||
27036 | pattern refineRelation_eAllOperations_reference_EClass( | ||
27037 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27038 | relationIterpretation:PartialRelationInterpretation, | ||
27039 | from: DefinedElement, to: DefinedElement) | ||
27040 | { | ||
27041 | find interpretation(problem,interpretation); | ||
27042 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27043 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass"); | ||
27044 | find mustExist(problem, interpretation, from); | ||
27045 | find mustExist(problem, interpretation, to); | ||
27046 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27047 | find mustInstanceOfEOperation_class(problem,interpretation,to); | ||
27048 | find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
27049 | neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to); | ||
27050 | } | ||
27051 | pattern refineRelation_eAllStructuralFeatures_reference_EClass( | ||
27052 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27053 | relationIterpretation:PartialRelationInterpretation, | ||
27054 | from: DefinedElement, to: DefinedElement) | ||
27055 | { | ||
27056 | find interpretation(problem,interpretation); | ||
27057 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27058 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); | ||
27059 | find mustExist(problem, interpretation, from); | ||
27060 | find mustExist(problem, interpretation, to); | ||
27061 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27062 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,to); | ||
27063 | find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
27064 | neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to); | ||
27065 | } | ||
27066 | pattern refineRelation_eAllSuperTypes_reference_EClass( | ||
27067 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27068 | relationIterpretation:PartialRelationInterpretation, | ||
27069 | from: DefinedElement, to: DefinedElement) | ||
27070 | { | ||
27071 | find interpretation(problem,interpretation); | ||
27072 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27073 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); | ||
27074 | find mustExist(problem, interpretation, from); | ||
27075 | find mustExist(problem, interpretation, to); | ||
27076 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27077 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
27078 | find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
27079 | neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
27080 | } | ||
27081 | pattern refineRelation_eIDAttribute_reference_EClass( | ||
27082 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27083 | relationIterpretation:PartialRelationInterpretation, | ||
27084 | from: DefinedElement, to: DefinedElement) | ||
27085 | { | ||
27086 | find interpretation(problem,interpretation); | ||
27087 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27088 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); | ||
27089 | find mustExist(problem, interpretation, from); | ||
27090 | find mustExist(problem, interpretation, to); | ||
27091 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27092 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
27093 | find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
27094 | neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to); | ||
27095 | } | ||
27096 | pattern refineRelation_eAllGenericSuperTypes_reference_EClass( | ||
27097 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27098 | relationIterpretation:PartialRelationInterpretation, | ||
27099 | from: DefinedElement, to: DefinedElement) | ||
27100 | { | ||
27101 | find interpretation(problem,interpretation); | ||
27102 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27103 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass"); | ||
27104 | find mustExist(problem, interpretation, from); | ||
27105 | find mustExist(problem, interpretation, to); | ||
27106 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27107 | find mustInstanceOfEGenericType_class(problem,interpretation,to); | ||
27108 | find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
27109 | neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to); | ||
27110 | } | ||
27111 | pattern refineRelation_eExceptions_reference_EOperation( | ||
27112 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27113 | relationIterpretation:PartialRelationInterpretation, | ||
27114 | from: DefinedElement, to: DefinedElement) | ||
27115 | { | ||
27116 | find interpretation(problem,interpretation); | ||
27117 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27118 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); | ||
27119 | find mustExist(problem, interpretation, from); | ||
27120 | find mustExist(problem, interpretation, to); | ||
27121 | find mustInstanceOfEOperation_class(problem,interpretation,from); | ||
27122 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
27123 | find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
27124 | neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to); | ||
27125 | } | ||
27126 | pattern refineRelation_eOpposite_reference_EReference( | ||
27127 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27128 | relationIterpretation:PartialRelationInterpretation, | ||
27129 | from: DefinedElement, to: DefinedElement) | ||
27130 | { | ||
27131 | find interpretation(problem,interpretation); | ||
27132 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27133 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); | ||
27134 | find mustExist(problem, interpretation, from); | ||
27135 | find mustExist(problem, interpretation, to); | ||
27136 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27137 | find mustInstanceOfEReference_class(problem,interpretation,to); | ||
27138 | find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
27139 | neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to); | ||
27140 | } | ||
27141 | pattern refineRelation_eReferenceType_reference_EReference( | ||
27142 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27143 | relationIterpretation:PartialRelationInterpretation, | ||
27144 | from: DefinedElement, to: DefinedElement) | ||
27145 | { | ||
27146 | find interpretation(problem,interpretation); | ||
27147 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27148 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); | ||
27149 | find mustExist(problem, interpretation, from); | ||
27150 | find mustExist(problem, interpretation, to); | ||
27151 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27152 | find mustInstanceOfEClass_class(problem,interpretation,to); | ||
27153 | find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
27154 | neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to); | ||
27155 | } | ||
27156 | pattern refineRelation_eKeys_reference_EReference( | ||
27157 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27158 | relationIterpretation:PartialRelationInterpretation, | ||
27159 | from: DefinedElement, to: DefinedElement) | ||
27160 | { | ||
27161 | find interpretation(problem,interpretation); | ||
27162 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27163 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); | ||
27164 | find mustExist(problem, interpretation, from); | ||
27165 | find mustExist(problem, interpretation, to); | ||
27166 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27167 | find mustInstanceOfEAttribute_class(problem,interpretation,to); | ||
27168 | find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
27169 | neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to); | ||
27170 | } | ||
27171 | pattern refineRelation_eType_reference_ETypedElement( | ||
27172 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27173 | relationIterpretation:PartialRelationInterpretation, | ||
27174 | from: DefinedElement, to: DefinedElement) | ||
27175 | { | ||
27176 | find interpretation(problem,interpretation); | ||
27177 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27178 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); | ||
27179 | find mustExist(problem, interpretation, from); | ||
27180 | find mustExist(problem, interpretation, to); | ||
27181 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27182 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
27183 | find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
27184 | neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to); | ||
27185 | } | ||
27186 | pattern refineRelation_eRawType_reference_EGenericType( | ||
27187 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27188 | relationIterpretation:PartialRelationInterpretation, | ||
27189 | from: DefinedElement, to: DefinedElement) | ||
27190 | { | ||
27191 | find interpretation(problem,interpretation); | ||
27192 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27193 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); | ||
27194 | find mustExist(problem, interpretation, from); | ||
27195 | find mustExist(problem, interpretation, to); | ||
27196 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
27197 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
27198 | find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
27199 | neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to); | ||
27200 | } | ||
27201 | pattern refineRelation_eTypeParameter_reference_EGenericType( | ||
27202 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27203 | relationIterpretation:PartialRelationInterpretation, | ||
27204 | from: DefinedElement, to: DefinedElement) | ||
27205 | { | ||
27206 | find interpretation(problem,interpretation); | ||
27207 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27208 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); | ||
27209 | find mustExist(problem, interpretation, from); | ||
27210 | find mustExist(problem, interpretation, to); | ||
27211 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
27212 | find mustInstanceOfETypeParameter_class(problem,interpretation,to); | ||
27213 | find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
27214 | neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to); | ||
27215 | } | ||
27216 | pattern refineRelation_eClassifier_reference_EGenericType( | ||
27217 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27218 | relationIterpretation:PartialRelationInterpretation, | ||
27219 | from: DefinedElement, to: DefinedElement) | ||
27220 | { | ||
27221 | find interpretation(problem,interpretation); | ||
27222 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27223 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); | ||
27224 | find mustExist(problem, interpretation, from); | ||
27225 | find mustExist(problem, interpretation, to); | ||
27226 | find mustInstanceOfEGenericType_class(problem,interpretation,from); | ||
27227 | find mustInstanceOfEClassifier_class(problem,interpretation,to); | ||
27228 | find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
27229 | neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to); | ||
27230 | } | ||
27231 | pattern refineRelation_iD_attribute_EAttribute( | ||
27232 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27233 | relationIterpretation:PartialRelationInterpretation, | ||
27234 | from: DefinedElement, to: DefinedElement) | ||
27235 | { | ||
27236 | find interpretation(problem,interpretation); | ||
27237 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27238 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); | ||
27239 | find mustExist(problem, interpretation, from); | ||
27240 | find mustExist(problem, interpretation, to); | ||
27241 | find mustInstanceOfEAttribute_class(problem,interpretation,from); | ||
27242 | BooleanElement(to); | ||
27243 | find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
27244 | neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to); | ||
27245 | } | ||
27246 | pattern refineRelation_source_attribute_EAnnotation( | ||
27247 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27248 | relationIterpretation:PartialRelationInterpretation, | ||
27249 | from: DefinedElement, to: DefinedElement) | ||
27250 | { | ||
27251 | find interpretation(problem,interpretation); | ||
27252 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27253 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); | ||
27254 | find mustExist(problem, interpretation, from); | ||
27255 | find mustExist(problem, interpretation, to); | ||
27256 | find mustInstanceOfEAnnotation_class(problem,interpretation,from); | ||
27257 | StringElement(to); | ||
27258 | find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
27259 | neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to); | ||
27260 | } | ||
27261 | pattern refineRelation_abstract_attribute_EClass( | ||
27262 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27263 | relationIterpretation:PartialRelationInterpretation, | ||
27264 | from: DefinedElement, to: DefinedElement) | ||
27265 | { | ||
27266 | find interpretation(problem,interpretation); | ||
27267 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27268 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); | ||
27269 | find mustExist(problem, interpretation, from); | ||
27270 | find mustExist(problem, interpretation, to); | ||
27271 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27272 | BooleanElement(to); | ||
27273 | find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
27274 | neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to); | ||
27275 | } | ||
27276 | pattern refineRelation_interface_attribute_EClass( | ||
27277 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27278 | relationIterpretation:PartialRelationInterpretation, | ||
27279 | from: DefinedElement, to: DefinedElement) | ||
27280 | { | ||
27281 | find interpretation(problem,interpretation); | ||
27282 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27283 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); | ||
27284 | find mustExist(problem, interpretation, from); | ||
27285 | find mustExist(problem, interpretation, to); | ||
27286 | find mustInstanceOfEClass_class(problem,interpretation,from); | ||
27287 | BooleanElement(to); | ||
27288 | find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
27289 | neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to); | ||
27290 | } | ||
27291 | pattern refineRelation_instanceClassName_attribute_EClassifier( | ||
27292 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27293 | relationIterpretation:PartialRelationInterpretation, | ||
27294 | from: DefinedElement, to: DefinedElement) | ||
27295 | { | ||
27296 | find interpretation(problem,interpretation); | ||
27297 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27298 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); | ||
27299 | find mustExist(problem, interpretation, from); | ||
27300 | find mustExist(problem, interpretation, to); | ||
27301 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
27302 | StringElement(to); | ||
27303 | find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
27304 | neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to); | ||
27305 | } | ||
27306 | pattern refineRelation_instanceTypeName_attribute_EClassifier( | ||
27307 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27308 | relationIterpretation:PartialRelationInterpretation, | ||
27309 | from: DefinedElement, to: DefinedElement) | ||
27310 | { | ||
27311 | find interpretation(problem,interpretation); | ||
27312 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27313 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); | ||
27314 | find mustExist(problem, interpretation, from); | ||
27315 | find mustExist(problem, interpretation, to); | ||
27316 | find mustInstanceOfEClassifier_class(problem,interpretation,from); | ||
27317 | StringElement(to); | ||
27318 | find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
27319 | neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to); | ||
27320 | } | ||
27321 | pattern refineRelation_serializable_attribute_EDataType( | ||
27322 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27323 | relationIterpretation:PartialRelationInterpretation, | ||
27324 | from: DefinedElement, to: DefinedElement) | ||
27325 | { | ||
27326 | find interpretation(problem,interpretation); | ||
27327 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27328 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); | ||
27329 | find mustExist(problem, interpretation, from); | ||
27330 | find mustExist(problem, interpretation, to); | ||
27331 | find mustInstanceOfEDataType_class(problem,interpretation,from); | ||
27332 | BooleanElement(to); | ||
27333 | find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
27334 | neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to); | ||
27335 | } | ||
27336 | pattern refineRelation_value_attribute_EEnumLiteral( | ||
27337 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27338 | relationIterpretation:PartialRelationInterpretation, | ||
27339 | from: DefinedElement, to: DefinedElement) | ||
27340 | { | ||
27341 | find interpretation(problem,interpretation); | ||
27342 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27343 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); | ||
27344 | find mustExist(problem, interpretation, from); | ||
27345 | find mustExist(problem, interpretation, to); | ||
27346 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
27347 | IntegerElement(to); | ||
27348 | find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
27349 | neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
27350 | } | ||
27351 | pattern refineRelation_literal_attribute_EEnumLiteral( | ||
27352 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27353 | relationIterpretation:PartialRelationInterpretation, | ||
27354 | from: DefinedElement, to: DefinedElement) | ||
27355 | { | ||
27356 | find interpretation(problem,interpretation); | ||
27357 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27358 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); | ||
27359 | find mustExist(problem, interpretation, from); | ||
27360 | find mustExist(problem, interpretation, to); | ||
27361 | find mustInstanceOfEEnumLiteral_class(problem,interpretation,from); | ||
27362 | StringElement(to); | ||
27363 | find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
27364 | neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to); | ||
27365 | } | ||
27366 | pattern refineRelation_name_attribute_ENamedElement( | ||
27367 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27368 | relationIterpretation:PartialRelationInterpretation, | ||
27369 | from: DefinedElement, to: DefinedElement) | ||
27370 | { | ||
27371 | find interpretation(problem,interpretation); | ||
27372 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27373 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); | ||
27374 | find mustExist(problem, interpretation, from); | ||
27375 | find mustExist(problem, interpretation, to); | ||
27376 | find mustInstanceOfENamedElement_class(problem,interpretation,from); | ||
27377 | StringElement(to); | ||
27378 | find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
27379 | neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to); | ||
27380 | } | ||
27381 | pattern refineRelation_nsURI_attribute_EPackage( | ||
27382 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27383 | relationIterpretation:PartialRelationInterpretation, | ||
27384 | from: DefinedElement, to: DefinedElement) | ||
27385 | { | ||
27386 | find interpretation(problem,interpretation); | ||
27387 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27388 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); | ||
27389 | find mustExist(problem, interpretation, from); | ||
27390 | find mustExist(problem, interpretation, to); | ||
27391 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
27392 | StringElement(to); | ||
27393 | find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
27394 | neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to); | ||
27395 | } | ||
27396 | pattern refineRelation_nsPrefix_attribute_EPackage( | ||
27397 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27398 | relationIterpretation:PartialRelationInterpretation, | ||
27399 | from: DefinedElement, to: DefinedElement) | ||
27400 | { | ||
27401 | find interpretation(problem,interpretation); | ||
27402 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27403 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); | ||
27404 | find mustExist(problem, interpretation, from); | ||
27405 | find mustExist(problem, interpretation, to); | ||
27406 | find mustInstanceOfEPackage_class(problem,interpretation,from); | ||
27407 | StringElement(to); | ||
27408 | find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
27409 | neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to); | ||
27410 | } | ||
27411 | pattern refineRelation_containment_attribute_EReference( | ||
27412 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27413 | relationIterpretation:PartialRelationInterpretation, | ||
27414 | from: DefinedElement, to: DefinedElement) | ||
27415 | { | ||
27416 | find interpretation(problem,interpretation); | ||
27417 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27418 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); | ||
27419 | find mustExist(problem, interpretation, from); | ||
27420 | find mustExist(problem, interpretation, to); | ||
27421 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27422 | BooleanElement(to); | ||
27423 | find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
27424 | neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to); | ||
27425 | } | ||
27426 | pattern refineRelation_container_attribute_EReference( | ||
27427 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27428 | relationIterpretation:PartialRelationInterpretation, | ||
27429 | from: DefinedElement, to: DefinedElement) | ||
27430 | { | ||
27431 | find interpretation(problem,interpretation); | ||
27432 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27433 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); | ||
27434 | find mustExist(problem, interpretation, from); | ||
27435 | find mustExist(problem, interpretation, to); | ||
27436 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27437 | BooleanElement(to); | ||
27438 | find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
27439 | neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to); | ||
27440 | } | ||
27441 | pattern refineRelation_resolveProxies_attribute_EReference( | ||
27442 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27443 | relationIterpretation:PartialRelationInterpretation, | ||
27444 | from: DefinedElement, to: DefinedElement) | ||
27445 | { | ||
27446 | find interpretation(problem,interpretation); | ||
27447 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27448 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); | ||
27449 | find mustExist(problem, interpretation, from); | ||
27450 | find mustExist(problem, interpretation, to); | ||
27451 | find mustInstanceOfEReference_class(problem,interpretation,from); | ||
27452 | BooleanElement(to); | ||
27453 | find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
27454 | neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to); | ||
27455 | } | ||
27456 | pattern refineRelation_changeable_attribute_EStructuralFeature( | ||
27457 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27458 | relationIterpretation:PartialRelationInterpretation, | ||
27459 | from: DefinedElement, to: DefinedElement) | ||
27460 | { | ||
27461 | find interpretation(problem,interpretation); | ||
27462 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27463 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); | ||
27464 | find mustExist(problem, interpretation, from); | ||
27465 | find mustExist(problem, interpretation, to); | ||
27466 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27467 | BooleanElement(to); | ||
27468 | find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27469 | neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27470 | } | ||
27471 | pattern refineRelation_volatile_attribute_EStructuralFeature( | ||
27472 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27473 | relationIterpretation:PartialRelationInterpretation, | ||
27474 | from: DefinedElement, to: DefinedElement) | ||
27475 | { | ||
27476 | find interpretation(problem,interpretation); | ||
27477 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27478 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); | ||
27479 | find mustExist(problem, interpretation, from); | ||
27480 | find mustExist(problem, interpretation, to); | ||
27481 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27482 | BooleanElement(to); | ||
27483 | find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27484 | neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27485 | } | ||
27486 | pattern refineRelation_transient_attribute_EStructuralFeature( | ||
27487 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27488 | relationIterpretation:PartialRelationInterpretation, | ||
27489 | from: DefinedElement, to: DefinedElement) | ||
27490 | { | ||
27491 | find interpretation(problem,interpretation); | ||
27492 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27493 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); | ||
27494 | find mustExist(problem, interpretation, from); | ||
27495 | find mustExist(problem, interpretation, to); | ||
27496 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27497 | BooleanElement(to); | ||
27498 | find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27499 | neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27500 | } | ||
27501 | pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature( | ||
27502 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27503 | relationIterpretation:PartialRelationInterpretation, | ||
27504 | from: DefinedElement, to: DefinedElement) | ||
27505 | { | ||
27506 | find interpretation(problem,interpretation); | ||
27507 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27508 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); | ||
27509 | find mustExist(problem, interpretation, from); | ||
27510 | find mustExist(problem, interpretation, to); | ||
27511 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27512 | StringElement(to); | ||
27513 | find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27514 | neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27515 | } | ||
27516 | pattern refineRelation_unsettable_attribute_EStructuralFeature( | ||
27517 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27518 | relationIterpretation:PartialRelationInterpretation, | ||
27519 | from: DefinedElement, to: DefinedElement) | ||
27520 | { | ||
27521 | find interpretation(problem,interpretation); | ||
27522 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27523 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); | ||
27524 | find mustExist(problem, interpretation, from); | ||
27525 | find mustExist(problem, interpretation, to); | ||
27526 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27527 | BooleanElement(to); | ||
27528 | find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27529 | neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27530 | } | ||
27531 | pattern refineRelation_derived_attribute_EStructuralFeature( | ||
27532 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27533 | relationIterpretation:PartialRelationInterpretation, | ||
27534 | from: DefinedElement, to: DefinedElement) | ||
27535 | { | ||
27536 | find interpretation(problem,interpretation); | ||
27537 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27538 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); | ||
27539 | find mustExist(problem, interpretation, from); | ||
27540 | find mustExist(problem, interpretation, to); | ||
27541 | find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); | ||
27542 | BooleanElement(to); | ||
27543 | find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27544 | neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); | ||
27545 | } | ||
27546 | pattern refineRelation_ordered_attribute_ETypedElement( | ||
27547 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27548 | relationIterpretation:PartialRelationInterpretation, | ||
27549 | from: DefinedElement, to: DefinedElement) | ||
27550 | { | ||
27551 | find interpretation(problem,interpretation); | ||
27552 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27553 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); | ||
27554 | find mustExist(problem, interpretation, from); | ||
27555 | find mustExist(problem, interpretation, to); | ||
27556 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27557 | BooleanElement(to); | ||
27558 | find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
27559 | neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); | ||
27560 | } | ||
27561 | pattern refineRelation_unique_attribute_ETypedElement( | ||
27562 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27563 | relationIterpretation:PartialRelationInterpretation, | ||
27564 | from: DefinedElement, to: DefinedElement) | ||
27565 | { | ||
27566 | find interpretation(problem,interpretation); | ||
27567 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27568 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); | ||
27569 | find mustExist(problem, interpretation, from); | ||
27570 | find mustExist(problem, interpretation, to); | ||
27571 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27572 | BooleanElement(to); | ||
27573 | find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
27574 | neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); | ||
27575 | } | ||
27576 | pattern refineRelation_lowerBound_attribute_ETypedElement( | ||
27577 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27578 | relationIterpretation:PartialRelationInterpretation, | ||
27579 | from: DefinedElement, to: DefinedElement) | ||
27580 | { | ||
27581 | find interpretation(problem,interpretation); | ||
27582 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27583 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); | ||
27584 | find mustExist(problem, interpretation, from); | ||
27585 | find mustExist(problem, interpretation, to); | ||
27586 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27587 | IntegerElement(to); | ||
27588 | find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
27589 | neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
27590 | } | ||
27591 | pattern refineRelation_upperBound_attribute_ETypedElement( | ||
27592 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27593 | relationIterpretation:PartialRelationInterpretation, | ||
27594 | from: DefinedElement, to: DefinedElement) | ||
27595 | { | ||
27596 | find interpretation(problem,interpretation); | ||
27597 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27598 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); | ||
27599 | find mustExist(problem, interpretation, from); | ||
27600 | find mustExist(problem, interpretation, to); | ||
27601 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27602 | IntegerElement(to); | ||
27603 | find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
27604 | neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); | ||
27605 | } | ||
27606 | pattern refineRelation_many_attribute_ETypedElement( | ||
27607 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27608 | relationIterpretation:PartialRelationInterpretation, | ||
27609 | from: DefinedElement, to: DefinedElement) | ||
27610 | { | ||
27611 | find interpretation(problem,interpretation); | ||
27612 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27613 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); | ||
27614 | find mustExist(problem, interpretation, from); | ||
27615 | find mustExist(problem, interpretation, to); | ||
27616 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27617 | BooleanElement(to); | ||
27618 | find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
27619 | neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); | ||
27620 | } | ||
27621 | pattern refineRelation_required_attribute_ETypedElement( | ||
27622 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27623 | relationIterpretation:PartialRelationInterpretation, | ||
27624 | from: DefinedElement, to: DefinedElement) | ||
27625 | { | ||
27626 | find interpretation(problem,interpretation); | ||
27627 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27628 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); | ||
27629 | find mustExist(problem, interpretation, from); | ||
27630 | find mustExist(problem, interpretation, to); | ||
27631 | find mustInstanceOfETypedElement_class(problem,interpretation,from); | ||
27632 | BooleanElement(to); | ||
27633 | find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
27634 | neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); | ||
27635 | } | ||
27636 | pattern refineRelation_key_attribute_EStringToStringMapEntry( | ||
27637 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27638 | relationIterpretation:PartialRelationInterpretation, | ||
27639 | from: DefinedElement, to: DefinedElement) | ||
27640 | { | ||
27641 | find interpretation(problem,interpretation); | ||
27642 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27643 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); | ||
27644 | find mustExist(problem, interpretation, from); | ||
27645 | find mustExist(problem, interpretation, to); | ||
27646 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
27647 | StringElement(to); | ||
27648 | find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
27649 | neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
27650 | } | ||
27651 | pattern refineRelation_value_attribute_EStringToStringMapEntry( | ||
27652 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27653 | relationIterpretation:PartialRelationInterpretation, | ||
27654 | from: DefinedElement, to: DefinedElement) | ||
27655 | { | ||
27656 | find interpretation(problem,interpretation); | ||
27657 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27658 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); | ||
27659 | find mustExist(problem, interpretation, from); | ||
27660 | find mustExist(problem, interpretation, to); | ||
27661 | find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); | ||
27662 | StringElement(to); | ||
27663 | find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
27664 | neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); | ||
27665 | } | ||
diff --git a/Tests/Ecore-Plugin/outputs/debug/generation.logicproblem b/Tests/Ecore-Plugin/outputs/debug/generation.logicproblem new file mode 100644 index 00000000..90807b8d --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/debug/generation.logicproblem | |||
@@ -0,0 +1,2059 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partial2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/partial2logicannotation"> | ||
3 | <types xsi:type="language_1:TypeDeclaration" name="EAttribute class" supertypes="//@types.14"/> | ||
4 | <types xsi:type="language_1:TypeDeclaration" name="EAnnotation class" supertypes="//@types.7 //@types.20"/> | ||
5 | <types xsi:type="language_1:TypeDeclaration" name="EClass class" supertypes="//@types.3"/> | ||
6 | <types xsi:type="language_1:TypeDeclaration" name="EClassifier class" subtypes="//@types.2 //@types.4" supertypes="//@types.8 //@types.22" isAbstract="true"/> | ||
7 | <types xsi:type="language_1:TypeDeclaration" name="EDataType class" subtypes="//@types.5" supertypes="//@types.3"/> | ||
8 | <types xsi:type="language_1:TypeDeclaration" name="EEnum class" supertypes="//@types.4"/> | ||
9 | <types xsi:type="language_1:TypeDeclaration" name="EEnumLiteral class" supertypes="//@types.8 //@types.22"/> | ||
10 | <types xsi:type="language_1:TypeDeclaration" name="EModelElement class" subtypes="//@types.1 //@types.8 //@types.19 //@types.20" isAbstract="true"/> | ||
11 | <types xsi:type="language_1:TypeDeclaration" name="ENamedElement class" subtypes="//@types.3 //@types.6 //@types.11 //@types.15 //@types.18 //@types.21 //@types.22" supertypes="//@types.7" isAbstract="true"/> | ||
12 | <types xsi:type="language_1:TypeDeclaration" name="EObject class"/> | ||
13 | <types xsi:type="language_1:TypeDeclaration" name="EOperation class" supertypes="//@types.15"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="EPackage class" subtypes="//@types.23 //@types.24" supertypes="//@types.8" isAbstract="true"/> | ||
15 | <types xsi:type="language_1:TypeDeclaration" name="EParameter class" supertypes="//@types.15"/> | ||
16 | <types xsi:type="language_1:TypeDeclaration" name="EReference class" supertypes="//@types.14"/> | ||
17 | <types xsi:type="language_1:TypeDeclaration" name="EStructuralFeature class" subtypes="//@types.0 //@types.13" supertypes="//@types.15" isAbstract="true"/> | ||
18 | <types xsi:type="language_1:TypeDeclaration" name="ETypedElement class" subtypes="//@types.10 //@types.12 //@types.14" supertypes="//@types.8 //@types.22" isAbstract="true"/> | ||
19 | <types xsi:type="language_1:TypeDeclaration" name="EStringToStringMapEntry class"/> | ||
20 | <types xsi:type="language_1:TypeDeclaration" name="EGenericType class"/> | ||
21 | <types xsi:type="language_1:TypeDeclaration" name="ETypeParameter class" supertypes="//@types.8 //@types.22"/> | ||
22 | <types xsi:type="language_1:TypeDefinition" name="EModelElement class DefinedPart" subtypes="//@types.21" supertypes="//@types.7" isAbstract="true" elements="//@elements.0"/> | ||
23 | <types xsi:type="language_1:TypeDeclaration" name="EModelElement class UndefinedPart" subtypes="//@types.1 //@types.22" supertypes="//@types.7" isAbstract="true"/> | ||
24 | <types xsi:type="language_1:TypeDefinition" name="ENamedElement class DefinedPart" subtypes="//@types.23" supertypes="//@types.8 //@types.19" isAbstract="true" elements="//@elements.0"/> | ||
25 | <types xsi:type="language_1:TypeDeclaration" name="ENamedElement class UndefinedPart" subtypes="//@types.3 //@types.6 //@types.24 //@types.15 //@types.18" supertypes="//@types.8 //@types.20" isAbstract="true"/> | ||
26 | <types xsi:type="language_1:TypeDefinition" name="EPackage class DefinedPart" supertypes="//@types.11 //@types.21" elements="//@elements.0"/> | ||
27 | <types xsi:type="language_1:TypeDeclaration" name="EPackage class UndefinedPart" supertypes="//@types.11 //@types.22"/> | ||
28 | <assertions name="lowerMultiplicity eAttributeType EAttribute" annotations="//@annotations.0"> | ||
29 | <value xsi:type="language_1:Forall"> | ||
30 | <quantifiedVariables name="src"> | ||
31 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
32 | </quantifiedVariables> | ||
33 | <expression xsi:type="language_1:Exists"> | ||
34 | <quantifiedVariables name="trg 1"> | ||
35 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
36 | </quantifiedVariables> | ||
37 | <expression xsi:type="language_1:And"> | ||
38 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
39 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
40 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> | ||
41 | </operands> | ||
42 | </expression> | ||
43 | </expression> | ||
44 | </value> | ||
45 | </assertions> | ||
46 | <assertions name="upperMultiplicity eAttributeType EAttribute" annotations="//@annotations.1"> | ||
47 | <value xsi:type="language_1:Forall"> | ||
48 | <quantifiedVariables name="src"> | ||
49 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
50 | </quantifiedVariables> | ||
51 | <quantifiedVariables name="trg 1"> | ||
52 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
53 | </quantifiedVariables> | ||
54 | <quantifiedVariables name="trg 2"> | ||
55 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
56 | </quantifiedVariables> | ||
57 | <expression xsi:type="language_1:Impl"> | ||
58 | <leftOperand xsi:type="language_1:And"> | ||
59 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
60 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
61 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
62 | </operands> | ||
63 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
64 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
65 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
66 | </operands> | ||
67 | </leftOperand> | ||
68 | <rightOperand xsi:type="language_1:Not"> | ||
69 | <operand xsi:type="language_1:Distinct"> | ||
70 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
71 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
72 | </operand> | ||
73 | </rightOperand> | ||
74 | </expression> | ||
75 | </value> | ||
76 | </assertions> | ||
77 | <assertions name="upperMultiplicity eModelElement EAnnotation" annotations="//@annotations.2"> | ||
78 | <value xsi:type="language_1:Forall"> | ||
79 | <quantifiedVariables name="src"> | ||
80 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
81 | </quantifiedVariables> | ||
82 | <quantifiedVariables name="trg 1"> | ||
83 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
84 | </quantifiedVariables> | ||
85 | <quantifiedVariables name="trg 2"> | ||
86 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
87 | </quantifiedVariables> | ||
88 | <expression xsi:type="language_1:Impl"> | ||
89 | <leftOperand xsi:type="language_1:And"> | ||
90 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
91 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
92 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
93 | </operands> | ||
94 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
95 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
96 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
97 | </operands> | ||
98 | </leftOperand> | ||
99 | <rightOperand xsi:type="language_1:Not"> | ||
100 | <operand xsi:type="language_1:Distinct"> | ||
101 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
102 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
103 | </operand> | ||
104 | </rightOperand> | ||
105 | </expression> | ||
106 | </value> | ||
107 | </assertions> | ||
108 | <assertions name="upperMultiplicity eIDAttribute EClass" annotations="//@annotations.3"> | ||
109 | <value xsi:type="language_1:Forall"> | ||
110 | <quantifiedVariables name="src"> | ||
111 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
112 | </quantifiedVariables> | ||
113 | <quantifiedVariables name="trg 1"> | ||
114 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
115 | </quantifiedVariables> | ||
116 | <quantifiedVariables name="trg 2"> | ||
117 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
118 | </quantifiedVariables> | ||
119 | <expression xsi:type="language_1:Impl"> | ||
120 | <leftOperand xsi:type="language_1:And"> | ||
121 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
122 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
123 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
124 | </operands> | ||
125 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
126 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
127 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
128 | </operands> | ||
129 | </leftOperand> | ||
130 | <rightOperand xsi:type="language_1:Not"> | ||
131 | <operand xsi:type="language_1:Distinct"> | ||
132 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
133 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
134 | </operand> | ||
135 | </rightOperand> | ||
136 | </expression> | ||
137 | </value> | ||
138 | </assertions> | ||
139 | <assertions name="upperMultiplicity ePackage EClassifier" annotations="//@annotations.4"> | ||
140 | <value xsi:type="language_1:Forall"> | ||
141 | <quantifiedVariables name="src"> | ||
142 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
143 | </quantifiedVariables> | ||
144 | <quantifiedVariables name="trg 1"> | ||
145 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
146 | </quantifiedVariables> | ||
147 | <quantifiedVariables name="trg 2"> | ||
148 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
149 | </quantifiedVariables> | ||
150 | <expression xsi:type="language_1:Impl"> | ||
151 | <leftOperand xsi:type="language_1:And"> | ||
152 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
153 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
154 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
155 | </operands> | ||
156 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
157 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
158 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
159 | </operands> | ||
160 | </leftOperand> | ||
161 | <rightOperand xsi:type="language_1:Not"> | ||
162 | <operand xsi:type="language_1:Distinct"> | ||
163 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
164 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
165 | </operand> | ||
166 | </rightOperand> | ||
167 | </expression> | ||
168 | </value> | ||
169 | </assertions> | ||
170 | <assertions name="upperMultiplicity eEnum EEnumLiteral" annotations="//@annotations.5"> | ||
171 | <value xsi:type="language_1:Forall"> | ||
172 | <quantifiedVariables name="src"> | ||
173 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
174 | </quantifiedVariables> | ||
175 | <quantifiedVariables name="trg 1"> | ||
176 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
177 | </quantifiedVariables> | ||
178 | <quantifiedVariables name="trg 2"> | ||
179 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
180 | </quantifiedVariables> | ||
181 | <expression xsi:type="language_1:Impl"> | ||
182 | <leftOperand xsi:type="language_1:And"> | ||
183 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
184 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
185 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
186 | </operands> | ||
187 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
188 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
189 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
190 | </operands> | ||
191 | </leftOperand> | ||
192 | <rightOperand xsi:type="language_1:Not"> | ||
193 | <operand xsi:type="language_1:Distinct"> | ||
194 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
195 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
196 | </operand> | ||
197 | </rightOperand> | ||
198 | </expression> | ||
199 | </value> | ||
200 | </assertions> | ||
201 | <assertions name="upperMultiplicity eContainingClass EOperation" annotations="//@annotations.6"> | ||
202 | <value xsi:type="language_1:Forall"> | ||
203 | <quantifiedVariables name="src"> | ||
204 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
205 | </quantifiedVariables> | ||
206 | <quantifiedVariables name="trg 1"> | ||
207 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
208 | </quantifiedVariables> | ||
209 | <quantifiedVariables name="trg 2"> | ||
210 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
211 | </quantifiedVariables> | ||
212 | <expression xsi:type="language_1:Impl"> | ||
213 | <leftOperand xsi:type="language_1:And"> | ||
214 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
215 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
216 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
217 | </operands> | ||
218 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
219 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
220 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
221 | </operands> | ||
222 | </leftOperand> | ||
223 | <rightOperand xsi:type="language_1:Not"> | ||
224 | <operand xsi:type="language_1:Distinct"> | ||
225 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
226 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
227 | </operand> | ||
228 | </rightOperand> | ||
229 | </expression> | ||
230 | </value> | ||
231 | </assertions> | ||
232 | <assertions name="upperMultiplicity eSuperPackage EPackage" annotations="//@annotations.7"> | ||
233 | <value xsi:type="language_1:Forall"> | ||
234 | <quantifiedVariables name="src"> | ||
235 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
236 | </quantifiedVariables> | ||
237 | <quantifiedVariables name="trg 1"> | ||
238 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
239 | </quantifiedVariables> | ||
240 | <quantifiedVariables name="trg 2"> | ||
241 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
242 | </quantifiedVariables> | ||
243 | <expression xsi:type="language_1:Impl"> | ||
244 | <leftOperand xsi:type="language_1:And"> | ||
245 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> | ||
246 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
247 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
248 | </operands> | ||
249 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> | ||
250 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
251 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
252 | </operands> | ||
253 | </leftOperand> | ||
254 | <rightOperand xsi:type="language_1:Not"> | ||
255 | <operand xsi:type="language_1:Distinct"> | ||
256 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
257 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
258 | </operand> | ||
259 | </rightOperand> | ||
260 | </expression> | ||
261 | </value> | ||
262 | </assertions> | ||
263 | <assertions name="upperMultiplicity eOperation EParameter" annotations="//@annotations.8"> | ||
264 | <value xsi:type="language_1:Forall"> | ||
265 | <quantifiedVariables name="src"> | ||
266 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> | ||
267 | </quantifiedVariables> | ||
268 | <quantifiedVariables name="trg 1"> | ||
269 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
270 | </quantifiedVariables> | ||
271 | <quantifiedVariables name="trg 2"> | ||
272 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
273 | </quantifiedVariables> | ||
274 | <expression xsi:type="language_1:Impl"> | ||
275 | <leftOperand xsi:type="language_1:And"> | ||
276 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> | ||
277 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
278 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
279 | </operands> | ||
280 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> | ||
281 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
282 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
283 | </operands> | ||
284 | </leftOperand> | ||
285 | <rightOperand xsi:type="language_1:Not"> | ||
286 | <operand xsi:type="language_1:Distinct"> | ||
287 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
288 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
289 | </operand> | ||
290 | </rightOperand> | ||
291 | </expression> | ||
292 | </value> | ||
293 | </assertions> | ||
294 | <assertions name="upperMultiplicity eOpposite EReference" annotations="//@annotations.9"> | ||
295 | <value xsi:type="language_1:Forall"> | ||
296 | <quantifiedVariables name="src"> | ||
297 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
298 | </quantifiedVariables> | ||
299 | <quantifiedVariables name="trg 1"> | ||
300 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
301 | </quantifiedVariables> | ||
302 | <quantifiedVariables name="trg 2"> | ||
303 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
304 | </quantifiedVariables> | ||
305 | <expression xsi:type="language_1:Impl"> | ||
306 | <leftOperand xsi:type="language_1:And"> | ||
307 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33"> | ||
308 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
309 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
310 | </operands> | ||
311 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33"> | ||
312 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
313 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
314 | </operands> | ||
315 | </leftOperand> | ||
316 | <rightOperand xsi:type="language_1:Not"> | ||
317 | <operand xsi:type="language_1:Distinct"> | ||
318 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
319 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
320 | </operand> | ||
321 | </rightOperand> | ||
322 | </expression> | ||
323 | </value> | ||
324 | </assertions> | ||
325 | <assertions name="lowerMultiplicity eReferenceType EReference" annotations="//@annotations.10"> | ||
326 | <value xsi:type="language_1:Forall"> | ||
327 | <quantifiedVariables name="src"> | ||
328 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
329 | </quantifiedVariables> | ||
330 | <expression xsi:type="language_1:Exists"> | ||
331 | <quantifiedVariables name="trg 1"> | ||
332 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
333 | </quantifiedVariables> | ||
334 | <expression xsi:type="language_1:And"> | ||
335 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34"> | ||
336 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
337 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@expression/@quantifiedVariables.0"/> | ||
338 | </operands> | ||
339 | </expression> | ||
340 | </expression> | ||
341 | </value> | ||
342 | </assertions> | ||
343 | <assertions name="upperMultiplicity eReferenceType EReference" annotations="//@annotations.11"> | ||
344 | <value xsi:type="language_1:Forall"> | ||
345 | <quantifiedVariables name="src"> | ||
346 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
347 | </quantifiedVariables> | ||
348 | <quantifiedVariables name="trg 1"> | ||
349 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
350 | </quantifiedVariables> | ||
351 | <quantifiedVariables name="trg 2"> | ||
352 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
353 | </quantifiedVariables> | ||
354 | <expression xsi:type="language_1:Impl"> | ||
355 | <leftOperand xsi:type="language_1:And"> | ||
356 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34"> | ||
357 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
358 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
359 | </operands> | ||
360 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34"> | ||
361 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
362 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/> | ||
363 | </operands> | ||
364 | </leftOperand> | ||
365 | <rightOperand xsi:type="language_1:Not"> | ||
366 | <operand xsi:type="language_1:Distinct"> | ||
367 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
368 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/> | ||
369 | </operand> | ||
370 | </rightOperand> | ||
371 | </expression> | ||
372 | </value> | ||
373 | </assertions> | ||
374 | <assertions name="upperMultiplicity eContainingClass EStructuralFeature" annotations="//@annotations.12"> | ||
375 | <value xsi:type="language_1:Forall"> | ||
376 | <quantifiedVariables name="src"> | ||
377 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
378 | </quantifiedVariables> | ||
379 | <quantifiedVariables name="trg 1"> | ||
380 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
381 | </quantifiedVariables> | ||
382 | <quantifiedVariables name="trg 2"> | ||
383 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
384 | </quantifiedVariables> | ||
385 | <expression xsi:type="language_1:Impl"> | ||
386 | <leftOperand xsi:type="language_1:And"> | ||
387 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36"> | ||
388 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
389 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
390 | </operands> | ||
391 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36"> | ||
392 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
393 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
394 | </operands> | ||
395 | </leftOperand> | ||
396 | <rightOperand xsi:type="language_1:Not"> | ||
397 | <operand xsi:type="language_1:Distinct"> | ||
398 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
399 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
400 | </operand> | ||
401 | </rightOperand> | ||
402 | </expression> | ||
403 | </value> | ||
404 | </assertions> | ||
405 | <assertions name="upperMultiplicity eType ETypedElement" annotations="//@annotations.13"> | ||
406 | <value xsi:type="language_1:Forall"> | ||
407 | <quantifiedVariables name="src"> | ||
408 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
409 | </quantifiedVariables> | ||
410 | <quantifiedVariables name="trg 1"> | ||
411 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
412 | </quantifiedVariables> | ||
413 | <quantifiedVariables name="trg 2"> | ||
414 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
415 | </quantifiedVariables> | ||
416 | <expression xsi:type="language_1:Impl"> | ||
417 | <leftOperand xsi:type="language_1:And"> | ||
418 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37"> | ||
419 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
420 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
421 | </operands> | ||
422 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37"> | ||
423 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
424 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/> | ||
425 | </operands> | ||
426 | </leftOperand> | ||
427 | <rightOperand xsi:type="language_1:Not"> | ||
428 | <operand xsi:type="language_1:Distinct"> | ||
429 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
430 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/> | ||
431 | </operand> | ||
432 | </rightOperand> | ||
433 | </expression> | ||
434 | </value> | ||
435 | </assertions> | ||
436 | <assertions name="upperMultiplicity eGenericType ETypedElement" annotations="//@annotations.14"> | ||
437 | <value xsi:type="language_1:Forall"> | ||
438 | <quantifiedVariables name="src"> | ||
439 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
440 | </quantifiedVariables> | ||
441 | <quantifiedVariables name="trg 1"> | ||
442 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
443 | </quantifiedVariables> | ||
444 | <quantifiedVariables name="trg 2"> | ||
445 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
446 | </quantifiedVariables> | ||
447 | <expression xsi:type="language_1:Impl"> | ||
448 | <leftOperand xsi:type="language_1:And"> | ||
449 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.38"> | ||
450 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
451 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
452 | </operands> | ||
453 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.38"> | ||
454 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
455 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
456 | </operands> | ||
457 | </leftOperand> | ||
458 | <rightOperand xsi:type="language_1:Not"> | ||
459 | <operand xsi:type="language_1:Distinct"> | ||
460 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
461 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
462 | </operand> | ||
463 | </rightOperand> | ||
464 | </expression> | ||
465 | </value> | ||
466 | </assertions> | ||
467 | <assertions name="upperMultiplicity eUpperBound EGenericType" annotations="//@annotations.15"> | ||
468 | <value xsi:type="language_1:Forall"> | ||
469 | <quantifiedVariables name="src"> | ||
470 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
471 | </quantifiedVariables> | ||
472 | <quantifiedVariables name="trg 1"> | ||
473 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
474 | </quantifiedVariables> | ||
475 | <quantifiedVariables name="trg 2"> | ||
476 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
477 | </quantifiedVariables> | ||
478 | <expression xsi:type="language_1:Impl"> | ||
479 | <leftOperand xsi:type="language_1:And"> | ||
480 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.39"> | ||
481 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
482 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
483 | </operands> | ||
484 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.39"> | ||
485 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
486 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/> | ||
487 | </operands> | ||
488 | </leftOperand> | ||
489 | <rightOperand xsi:type="language_1:Not"> | ||
490 | <operand xsi:type="language_1:Distinct"> | ||
491 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
492 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/> | ||
493 | </operand> | ||
494 | </rightOperand> | ||
495 | </expression> | ||
496 | </value> | ||
497 | </assertions> | ||
498 | <assertions name="lowerMultiplicity eRawType EGenericType" annotations="//@annotations.16"> | ||
499 | <value xsi:type="language_1:Forall"> | ||
500 | <quantifiedVariables name="src"> | ||
501 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
502 | </quantifiedVariables> | ||
503 | <expression xsi:type="language_1:Exists"> | ||
504 | <quantifiedVariables name="trg 1"> | ||
505 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
506 | </quantifiedVariables> | ||
507 | <expression xsi:type="language_1:And"> | ||
508 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41"> | ||
509 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
510 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@expression/@quantifiedVariables.0"/> | ||
511 | </operands> | ||
512 | </expression> | ||
513 | </expression> | ||
514 | </value> | ||
515 | </assertions> | ||
516 | <assertions name="upperMultiplicity eRawType EGenericType" annotations="//@annotations.17"> | ||
517 | <value xsi:type="language_1:Forall"> | ||
518 | <quantifiedVariables name="src"> | ||
519 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
520 | </quantifiedVariables> | ||
521 | <quantifiedVariables name="trg 1"> | ||
522 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
523 | </quantifiedVariables> | ||
524 | <quantifiedVariables name="trg 2"> | ||
525 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
526 | </quantifiedVariables> | ||
527 | <expression xsi:type="language_1:Impl"> | ||
528 | <leftOperand xsi:type="language_1:And"> | ||
529 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41"> | ||
530 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
531 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
532 | </operands> | ||
533 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41"> | ||
534 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
535 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/> | ||
536 | </operands> | ||
537 | </leftOperand> | ||
538 | <rightOperand xsi:type="language_1:Not"> | ||
539 | <operand xsi:type="language_1:Distinct"> | ||
540 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
541 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/> | ||
542 | </operand> | ||
543 | </rightOperand> | ||
544 | </expression> | ||
545 | </value> | ||
546 | </assertions> | ||
547 | <assertions name="upperMultiplicity eLowerBound EGenericType" annotations="//@annotations.18"> | ||
548 | <value xsi:type="language_1:Forall"> | ||
549 | <quantifiedVariables name="src"> | ||
550 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
551 | </quantifiedVariables> | ||
552 | <quantifiedVariables name="trg 1"> | ||
553 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
554 | </quantifiedVariables> | ||
555 | <quantifiedVariables name="trg 2"> | ||
556 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
557 | </quantifiedVariables> | ||
558 | <expression xsi:type="language_1:Impl"> | ||
559 | <leftOperand xsi:type="language_1:And"> | ||
560 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.42"> | ||
561 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
562 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
563 | </operands> | ||
564 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.42"> | ||
565 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
566 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/> | ||
567 | </operands> | ||
568 | </leftOperand> | ||
569 | <rightOperand xsi:type="language_1:Not"> | ||
570 | <operand xsi:type="language_1:Distinct"> | ||
571 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
572 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/> | ||
573 | </operand> | ||
574 | </rightOperand> | ||
575 | </expression> | ||
576 | </value> | ||
577 | </assertions> | ||
578 | <assertions name="upperMultiplicity eTypeParameter EGenericType" annotations="//@annotations.19"> | ||
579 | <value xsi:type="language_1:Forall"> | ||
580 | <quantifiedVariables name="src"> | ||
581 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
582 | </quantifiedVariables> | ||
583 | <quantifiedVariables name="trg 1"> | ||
584 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
585 | </quantifiedVariables> | ||
586 | <quantifiedVariables name="trg 2"> | ||
587 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
588 | </quantifiedVariables> | ||
589 | <expression xsi:type="language_1:Impl"> | ||
590 | <leftOperand xsi:type="language_1:And"> | ||
591 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.43"> | ||
592 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
593 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
594 | </operands> | ||
595 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.43"> | ||
596 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
597 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.2"/> | ||
598 | </operands> | ||
599 | </leftOperand> | ||
600 | <rightOperand xsi:type="language_1:Not"> | ||
601 | <operand xsi:type="language_1:Distinct"> | ||
602 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
603 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.2"/> | ||
604 | </operand> | ||
605 | </rightOperand> | ||
606 | </expression> | ||
607 | </value> | ||
608 | </assertions> | ||
609 | <assertions name="upperMultiplicity eClassifier EGenericType" annotations="//@annotations.20"> | ||
610 | <value xsi:type="language_1:Forall"> | ||
611 | <quantifiedVariables name="src"> | ||
612 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
613 | </quantifiedVariables> | ||
614 | <quantifiedVariables name="trg 1"> | ||
615 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
616 | </quantifiedVariables> | ||
617 | <quantifiedVariables name="trg 2"> | ||
618 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
619 | </quantifiedVariables> | ||
620 | <expression xsi:type="language_1:Impl"> | ||
621 | <leftOperand xsi:type="language_1:And"> | ||
622 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.44"> | ||
623 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
624 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
625 | </operands> | ||
626 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.44"> | ||
627 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
628 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.2"/> | ||
629 | </operands> | ||
630 | </leftOperand> | ||
631 | <rightOperand xsi:type="language_1:Not"> | ||
632 | <operand xsi:type="language_1:Distinct"> | ||
633 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
634 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.2"/> | ||
635 | </operand> | ||
636 | </rightOperand> | ||
637 | </expression> | ||
638 | </value> | ||
639 | </assertions> | ||
640 | <assertions name="oppositeReference eModelElement EAnnotation" annotations="//@annotations.21"> | ||
641 | <value xsi:type="language_1:Forall"> | ||
642 | <quantifiedVariables name="src"> | ||
643 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
644 | </quantifiedVariables> | ||
645 | <quantifiedVariables name="trg"> | ||
646 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
647 | </quantifiedVariables> | ||
648 | <expression xsi:type="language_1:Iff"> | ||
649 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
650 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
651 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
652 | </leftOperand> | ||
653 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
654 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
655 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
656 | </rightOperand> | ||
657 | </expression> | ||
658 | </value> | ||
659 | </assertions> | ||
660 | <assertions name="oppositeReference eOperations EClass" annotations="//@annotations.22"> | ||
661 | <value xsi:type="language_1:Forall"> | ||
662 | <quantifiedVariables name="src"> | ||
663 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
664 | </quantifiedVariables> | ||
665 | <quantifiedVariables name="trg"> | ||
666 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
667 | </quantifiedVariables> | ||
668 | <expression xsi:type="language_1:Iff"> | ||
669 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
670 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
671 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/> | ||
672 | </leftOperand> | ||
673 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
674 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/> | ||
675 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
676 | </rightOperand> | ||
677 | </expression> | ||
678 | </value> | ||
679 | </assertions> | ||
680 | <assertions name="oppositeReference eStructuralFeatures EClass" annotations="//@annotations.23"> | ||
681 | <value xsi:type="language_1:Forall"> | ||
682 | <quantifiedVariables name="src"> | ||
683 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
684 | </quantifiedVariables> | ||
685 | <quantifiedVariables name="trg"> | ||
686 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
687 | </quantifiedVariables> | ||
688 | <expression xsi:type="language_1:Iff"> | ||
689 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16"> | ||
690 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> | ||
691 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.1"/> | ||
692 | </leftOperand> | ||
693 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36"> | ||
694 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.1"/> | ||
695 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> | ||
696 | </rightOperand> | ||
697 | </expression> | ||
698 | </value> | ||
699 | </assertions> | ||
700 | <assertions name="oppositeReference ePackage EClassifier" annotations="//@annotations.24"> | ||
701 | <value xsi:type="language_1:Forall"> | ||
702 | <quantifiedVariables name="src"> | ||
703 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
704 | </quantifiedVariables> | ||
705 | <quantifiedVariables name="trg"> | ||
706 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
707 | </quantifiedVariables> | ||
708 | <expression xsi:type="language_1:Iff"> | ||
709 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
710 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> | ||
711 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.1"/> | ||
712 | </leftOperand> | ||
713 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29"> | ||
714 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.1"/> | ||
715 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> | ||
716 | </rightOperand> | ||
717 | </expression> | ||
718 | </value> | ||
719 | </assertions> | ||
720 | <assertions name="oppositeReference eLiterals EEnum" annotations="//@annotations.25"> | ||
721 | <value xsi:type="language_1:Forall"> | ||
722 | <quantifiedVariables name="src"> | ||
723 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
724 | </quantifiedVariables> | ||
725 | <quantifiedVariables name="trg"> | ||
726 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
727 | </quantifiedVariables> | ||
728 | <expression xsi:type="language_1:Iff"> | ||
729 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
730 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> | ||
731 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/> | ||
732 | </leftOperand> | ||
733 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
734 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/> | ||
735 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> | ||
736 | </rightOperand> | ||
737 | </expression> | ||
738 | </value> | ||
739 | </assertions> | ||
740 | <assertions name="oppositeReference eParameters EOperation" annotations="//@annotations.26"> | ||
741 | <value xsi:type="language_1:Forall"> | ||
742 | <quantifiedVariables name="src"> | ||
743 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
744 | </quantifiedVariables> | ||
745 | <quantifiedVariables name="trg"> | ||
746 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> | ||
747 | </quantifiedVariables> | ||
748 | <expression xsi:type="language_1:Iff"> | ||
749 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> | ||
750 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> | ||
751 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/> | ||
752 | </leftOperand> | ||
753 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> | ||
754 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/> | ||
755 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> | ||
756 | </rightOperand> | ||
757 | </expression> | ||
758 | </value> | ||
759 | </assertions> | ||
760 | <assertions name="oppositeReference eSubpackages EPackage" annotations="//@annotations.27"> | ||
761 | <value xsi:type="language_1:Forall"> | ||
762 | <quantifiedVariables name="src"> | ||
763 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
764 | </quantifiedVariables> | ||
765 | <quantifiedVariables name="trg"> | ||
766 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
767 | </quantifiedVariables> | ||
768 | <expression xsi:type="language_1:Iff"> | ||
769 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30"> | ||
770 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/> | ||
771 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.1"/> | ||
772 | </leftOperand> | ||
773 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> | ||
774 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.1"/> | ||
775 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/> | ||
776 | </rightOperand> | ||
777 | </expression> | ||
778 | </value> | ||
779 | </assertions> | ||
780 | <assertions name="upperMultiplicity iD EAttribute" annotations="//@annotations.28"> | ||
781 | <value xsi:type="language_1:Forall"> | ||
782 | <quantifiedVariables name="src"> | ||
783 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
784 | </quantifiedVariables> | ||
785 | <quantifiedVariables name="trg 1"> | ||
786 | <range xsi:type="language_1:BoolTypeReference"/> | ||
787 | </quantifiedVariables> | ||
788 | <quantifiedVariables name="trg 2"> | ||
789 | <range xsi:type="language_1:BoolTypeReference"/> | ||
790 | </quantifiedVariables> | ||
791 | <expression xsi:type="language_1:Impl"> | ||
792 | <leftOperand xsi:type="language_1:And"> | ||
793 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.46"> | ||
794 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/> | ||
795 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.1"/> | ||
796 | </operands> | ||
797 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.46"> | ||
798 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/> | ||
799 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.2"/> | ||
800 | </operands> | ||
801 | </leftOperand> | ||
802 | <rightOperand xsi:type="language_1:Not"> | ||
803 | <operand xsi:type="language_1:Distinct"> | ||
804 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.1"/> | ||
805 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.2"/> | ||
806 | </operand> | ||
807 | </rightOperand> | ||
808 | </expression> | ||
809 | </value> | ||
810 | </assertions> | ||
811 | <assertions name="upperMultiplicity source EAnnotation" annotations="//@annotations.29"> | ||
812 | <value xsi:type="language_1:Forall"> | ||
813 | <quantifiedVariables name="src"> | ||
814 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
815 | </quantifiedVariables> | ||
816 | <quantifiedVariables name="trg 1"> | ||
817 | <range xsi:type="language_1:StringTypeReference"/> | ||
818 | </quantifiedVariables> | ||
819 | <quantifiedVariables name="trg 2"> | ||
820 | <range xsi:type="language_1:StringTypeReference"/> | ||
821 | </quantifiedVariables> | ||
822 | <expression xsi:type="language_1:Impl"> | ||
823 | <leftOperand xsi:type="language_1:And"> | ||
824 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.47"> | ||
825 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/> | ||
826 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.1"/> | ||
827 | </operands> | ||
828 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.47"> | ||
829 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/> | ||
830 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.2"/> | ||
831 | </operands> | ||
832 | </leftOperand> | ||
833 | <rightOperand xsi:type="language_1:Not"> | ||
834 | <operand xsi:type="language_1:Distinct"> | ||
835 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.1"/> | ||
836 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.2"/> | ||
837 | </operand> | ||
838 | </rightOperand> | ||
839 | </expression> | ||
840 | </value> | ||
841 | </assertions> | ||
842 | <assertions name="upperMultiplicity abstract EClass" annotations="//@annotations.30"> | ||
843 | <value xsi:type="language_1:Forall"> | ||
844 | <quantifiedVariables name="src"> | ||
845 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
846 | </quantifiedVariables> | ||
847 | <quantifiedVariables name="trg 1"> | ||
848 | <range xsi:type="language_1:BoolTypeReference"/> | ||
849 | </quantifiedVariables> | ||
850 | <quantifiedVariables name="trg 2"> | ||
851 | <range xsi:type="language_1:BoolTypeReference"/> | ||
852 | </quantifiedVariables> | ||
853 | <expression xsi:type="language_1:Impl"> | ||
854 | <leftOperand xsi:type="language_1:And"> | ||
855 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.48"> | ||
856 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/> | ||
857 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.1"/> | ||
858 | </operands> | ||
859 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.48"> | ||
860 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/> | ||
861 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.2"/> | ||
862 | </operands> | ||
863 | </leftOperand> | ||
864 | <rightOperand xsi:type="language_1:Not"> | ||
865 | <operand xsi:type="language_1:Distinct"> | ||
866 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.1"/> | ||
867 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.2"/> | ||
868 | </operand> | ||
869 | </rightOperand> | ||
870 | </expression> | ||
871 | </value> | ||
872 | </assertions> | ||
873 | <assertions name="upperMultiplicity interface EClass" annotations="//@annotations.31"> | ||
874 | <value xsi:type="language_1:Forall"> | ||
875 | <quantifiedVariables name="src"> | ||
876 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
877 | </quantifiedVariables> | ||
878 | <quantifiedVariables name="trg 1"> | ||
879 | <range xsi:type="language_1:BoolTypeReference"/> | ||
880 | </quantifiedVariables> | ||
881 | <quantifiedVariables name="trg 2"> | ||
882 | <range xsi:type="language_1:BoolTypeReference"/> | ||
883 | </quantifiedVariables> | ||
884 | <expression xsi:type="language_1:Impl"> | ||
885 | <leftOperand xsi:type="language_1:And"> | ||
886 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.49"> | ||
887 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/> | ||
888 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.1"/> | ||
889 | </operands> | ||
890 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.49"> | ||
891 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/> | ||
892 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.2"/> | ||
893 | </operands> | ||
894 | </leftOperand> | ||
895 | <rightOperand xsi:type="language_1:Not"> | ||
896 | <operand xsi:type="language_1:Distinct"> | ||
897 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.1"/> | ||
898 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.2"/> | ||
899 | </operand> | ||
900 | </rightOperand> | ||
901 | </expression> | ||
902 | </value> | ||
903 | </assertions> | ||
904 | <assertions name="upperMultiplicity instanceClassName EClassifier" annotations="//@annotations.32"> | ||
905 | <value xsi:type="language_1:Forall"> | ||
906 | <quantifiedVariables name="src"> | ||
907 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
908 | </quantifiedVariables> | ||
909 | <quantifiedVariables name="trg 1"> | ||
910 | <range xsi:type="language_1:StringTypeReference"/> | ||
911 | </quantifiedVariables> | ||
912 | <quantifiedVariables name="trg 2"> | ||
913 | <range xsi:type="language_1:StringTypeReference"/> | ||
914 | </quantifiedVariables> | ||
915 | <expression xsi:type="language_1:Impl"> | ||
916 | <leftOperand xsi:type="language_1:And"> | ||
917 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.50"> | ||
918 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/> | ||
919 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.1"/> | ||
920 | </operands> | ||
921 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.50"> | ||
922 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/> | ||
923 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.2"/> | ||
924 | </operands> | ||
925 | </leftOperand> | ||
926 | <rightOperand xsi:type="language_1:Not"> | ||
927 | <operand xsi:type="language_1:Distinct"> | ||
928 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.1"/> | ||
929 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.2"/> | ||
930 | </operand> | ||
931 | </rightOperand> | ||
932 | </expression> | ||
933 | </value> | ||
934 | </assertions> | ||
935 | <assertions name="upperMultiplicity instanceTypeName EClassifier" annotations="//@annotations.33"> | ||
936 | <value xsi:type="language_1:Forall"> | ||
937 | <quantifiedVariables name="src"> | ||
938 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
939 | </quantifiedVariables> | ||
940 | <quantifiedVariables name="trg 1"> | ||
941 | <range xsi:type="language_1:StringTypeReference"/> | ||
942 | </quantifiedVariables> | ||
943 | <quantifiedVariables name="trg 2"> | ||
944 | <range xsi:type="language_1:StringTypeReference"/> | ||
945 | </quantifiedVariables> | ||
946 | <expression xsi:type="language_1:Impl"> | ||
947 | <leftOperand xsi:type="language_1:And"> | ||
948 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.51"> | ||
949 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/> | ||
950 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.1"/> | ||
951 | </operands> | ||
952 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.51"> | ||
953 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/> | ||
954 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.2"/> | ||
955 | </operands> | ||
956 | </leftOperand> | ||
957 | <rightOperand xsi:type="language_1:Not"> | ||
958 | <operand xsi:type="language_1:Distinct"> | ||
959 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.1"/> | ||
960 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.2"/> | ||
961 | </operand> | ||
962 | </rightOperand> | ||
963 | </expression> | ||
964 | </value> | ||
965 | </assertions> | ||
966 | <assertions name="upperMultiplicity serializable EDataType" annotations="//@annotations.34"> | ||
967 | <value xsi:type="language_1:Forall"> | ||
968 | <quantifiedVariables name="src"> | ||
969 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
970 | </quantifiedVariables> | ||
971 | <quantifiedVariables name="trg 1"> | ||
972 | <range xsi:type="language_1:BoolTypeReference"/> | ||
973 | </quantifiedVariables> | ||
974 | <quantifiedVariables name="trg 2"> | ||
975 | <range xsi:type="language_1:BoolTypeReference"/> | ||
976 | </quantifiedVariables> | ||
977 | <expression xsi:type="language_1:Impl"> | ||
978 | <leftOperand xsi:type="language_1:And"> | ||
979 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.52"> | ||
980 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.0"/> | ||
981 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.1"/> | ||
982 | </operands> | ||
983 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.52"> | ||
984 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.0"/> | ||
985 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.2"/> | ||
986 | </operands> | ||
987 | </leftOperand> | ||
988 | <rightOperand xsi:type="language_1:Not"> | ||
989 | <operand xsi:type="language_1:Distinct"> | ||
990 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.1"/> | ||
991 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.2"/> | ||
992 | </operand> | ||
993 | </rightOperand> | ||
994 | </expression> | ||
995 | </value> | ||
996 | </assertions> | ||
997 | <assertions name="upperMultiplicity value EEnumLiteral" annotations="//@annotations.35"> | ||
998 | <value xsi:type="language_1:Forall"> | ||
999 | <quantifiedVariables name="src"> | ||
1000 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1001 | </quantifiedVariables> | ||
1002 | <quantifiedVariables name="trg 1"> | ||
1003 | <range xsi:type="language_1:IntTypeReference"/> | ||
1004 | </quantifiedVariables> | ||
1005 | <quantifiedVariables name="trg 2"> | ||
1006 | <range xsi:type="language_1:IntTypeReference"/> | ||
1007 | </quantifiedVariables> | ||
1008 | <expression xsi:type="language_1:Impl"> | ||
1009 | <leftOperand xsi:type="language_1:And"> | ||
1010 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.53"> | ||
1011 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.0"/> | ||
1012 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.1"/> | ||
1013 | </operands> | ||
1014 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.53"> | ||
1015 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.0"/> | ||
1016 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.2"/> | ||
1017 | </operands> | ||
1018 | </leftOperand> | ||
1019 | <rightOperand xsi:type="language_1:Not"> | ||
1020 | <operand xsi:type="language_1:Distinct"> | ||
1021 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.1"/> | ||
1022 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.2"/> | ||
1023 | </operand> | ||
1024 | </rightOperand> | ||
1025 | </expression> | ||
1026 | </value> | ||
1027 | </assertions> | ||
1028 | <assertions name="upperMultiplicity literal EEnumLiteral" annotations="//@annotations.36"> | ||
1029 | <value xsi:type="language_1:Forall"> | ||
1030 | <quantifiedVariables name="src"> | ||
1031 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1032 | </quantifiedVariables> | ||
1033 | <quantifiedVariables name="trg 1"> | ||
1034 | <range xsi:type="language_1:StringTypeReference"/> | ||
1035 | </quantifiedVariables> | ||
1036 | <quantifiedVariables name="trg 2"> | ||
1037 | <range xsi:type="language_1:StringTypeReference"/> | ||
1038 | </quantifiedVariables> | ||
1039 | <expression xsi:type="language_1:Impl"> | ||
1040 | <leftOperand xsi:type="language_1:And"> | ||
1041 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.54"> | ||
1042 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.0"/> | ||
1043 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.1"/> | ||
1044 | </operands> | ||
1045 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.54"> | ||
1046 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.0"/> | ||
1047 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.2"/> | ||
1048 | </operands> | ||
1049 | </leftOperand> | ||
1050 | <rightOperand xsi:type="language_1:Not"> | ||
1051 | <operand xsi:type="language_1:Distinct"> | ||
1052 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.1"/> | ||
1053 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.2"/> | ||
1054 | </operand> | ||
1055 | </rightOperand> | ||
1056 | </expression> | ||
1057 | </value> | ||
1058 | </assertions> | ||
1059 | <assertions name="upperMultiplicity name ENamedElement" annotations="//@annotations.37"> | ||
1060 | <value xsi:type="language_1:Forall"> | ||
1061 | <quantifiedVariables name="src"> | ||
1062 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
1063 | </quantifiedVariables> | ||
1064 | <quantifiedVariables name="trg 1"> | ||
1065 | <range xsi:type="language_1:StringTypeReference"/> | ||
1066 | </quantifiedVariables> | ||
1067 | <quantifiedVariables name="trg 2"> | ||
1068 | <range xsi:type="language_1:StringTypeReference"/> | ||
1069 | </quantifiedVariables> | ||
1070 | <expression xsi:type="language_1:Impl"> | ||
1071 | <leftOperand xsi:type="language_1:And"> | ||
1072 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55"> | ||
1073 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.0"/> | ||
1074 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.1"/> | ||
1075 | </operands> | ||
1076 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55"> | ||
1077 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.0"/> | ||
1078 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.2"/> | ||
1079 | </operands> | ||
1080 | </leftOperand> | ||
1081 | <rightOperand xsi:type="language_1:Not"> | ||
1082 | <operand xsi:type="language_1:Distinct"> | ||
1083 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.1"/> | ||
1084 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.2"/> | ||
1085 | </operand> | ||
1086 | </rightOperand> | ||
1087 | </expression> | ||
1088 | </value> | ||
1089 | </assertions> | ||
1090 | <assertions name="upperMultiplicity nsURI EPackage" annotations="//@annotations.38"> | ||
1091 | <value xsi:type="language_1:Forall"> | ||
1092 | <quantifiedVariables name="src"> | ||
1093 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1094 | </quantifiedVariables> | ||
1095 | <quantifiedVariables name="trg 1"> | ||
1096 | <range xsi:type="language_1:StringTypeReference"/> | ||
1097 | </quantifiedVariables> | ||
1098 | <quantifiedVariables name="trg 2"> | ||
1099 | <range xsi:type="language_1:StringTypeReference"/> | ||
1100 | </quantifiedVariables> | ||
1101 | <expression xsi:type="language_1:Impl"> | ||
1102 | <leftOperand xsi:type="language_1:And"> | ||
1103 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56"> | ||
1104 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.0"/> | ||
1105 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.1"/> | ||
1106 | </operands> | ||
1107 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56"> | ||
1108 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.0"/> | ||
1109 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.2"/> | ||
1110 | </operands> | ||
1111 | </leftOperand> | ||
1112 | <rightOperand xsi:type="language_1:Not"> | ||
1113 | <operand xsi:type="language_1:Distinct"> | ||
1114 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.1"/> | ||
1115 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.2"/> | ||
1116 | </operand> | ||
1117 | </rightOperand> | ||
1118 | </expression> | ||
1119 | </value> | ||
1120 | </assertions> | ||
1121 | <assertions name="upperMultiplicity nsPrefix EPackage" annotations="//@annotations.39"> | ||
1122 | <value xsi:type="language_1:Forall"> | ||
1123 | <quantifiedVariables name="src"> | ||
1124 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1125 | </quantifiedVariables> | ||
1126 | <quantifiedVariables name="trg 1"> | ||
1127 | <range xsi:type="language_1:StringTypeReference"/> | ||
1128 | </quantifiedVariables> | ||
1129 | <quantifiedVariables name="trg 2"> | ||
1130 | <range xsi:type="language_1:StringTypeReference"/> | ||
1131 | </quantifiedVariables> | ||
1132 | <expression xsi:type="language_1:Impl"> | ||
1133 | <leftOperand xsi:type="language_1:And"> | ||
1134 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57"> | ||
1135 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.0"/> | ||
1136 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.1"/> | ||
1137 | </operands> | ||
1138 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57"> | ||
1139 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.0"/> | ||
1140 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.2"/> | ||
1141 | </operands> | ||
1142 | </leftOperand> | ||
1143 | <rightOperand xsi:type="language_1:Not"> | ||
1144 | <operand xsi:type="language_1:Distinct"> | ||
1145 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.1"/> | ||
1146 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.2"/> | ||
1147 | </operand> | ||
1148 | </rightOperand> | ||
1149 | </expression> | ||
1150 | </value> | ||
1151 | </assertions> | ||
1152 | <assertions name="upperMultiplicity containment EReference" annotations="//@annotations.40"> | ||
1153 | <value xsi:type="language_1:Forall"> | ||
1154 | <quantifiedVariables name="src"> | ||
1155 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1156 | </quantifiedVariables> | ||
1157 | <quantifiedVariables name="trg 1"> | ||
1158 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1159 | </quantifiedVariables> | ||
1160 | <quantifiedVariables name="trg 2"> | ||
1161 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1162 | </quantifiedVariables> | ||
1163 | <expression xsi:type="language_1:Impl"> | ||
1164 | <leftOperand xsi:type="language_1:And"> | ||
1165 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.58"> | ||
1166 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.0"/> | ||
1167 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.1"/> | ||
1168 | </operands> | ||
1169 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.58"> | ||
1170 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.0"/> | ||
1171 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.2"/> | ||
1172 | </operands> | ||
1173 | </leftOperand> | ||
1174 | <rightOperand xsi:type="language_1:Not"> | ||
1175 | <operand xsi:type="language_1:Distinct"> | ||
1176 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.1"/> | ||
1177 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.2"/> | ||
1178 | </operand> | ||
1179 | </rightOperand> | ||
1180 | </expression> | ||
1181 | </value> | ||
1182 | </assertions> | ||
1183 | <assertions name="upperMultiplicity container EReference" annotations="//@annotations.41"> | ||
1184 | <value xsi:type="language_1:Forall"> | ||
1185 | <quantifiedVariables name="src"> | ||
1186 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1187 | </quantifiedVariables> | ||
1188 | <quantifiedVariables name="trg 1"> | ||
1189 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1190 | </quantifiedVariables> | ||
1191 | <quantifiedVariables name="trg 2"> | ||
1192 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1193 | </quantifiedVariables> | ||
1194 | <expression xsi:type="language_1:Impl"> | ||
1195 | <leftOperand xsi:type="language_1:And"> | ||
1196 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.59"> | ||
1197 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.0"/> | ||
1198 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.1"/> | ||
1199 | </operands> | ||
1200 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.59"> | ||
1201 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.0"/> | ||
1202 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.2"/> | ||
1203 | </operands> | ||
1204 | </leftOperand> | ||
1205 | <rightOperand xsi:type="language_1:Not"> | ||
1206 | <operand xsi:type="language_1:Distinct"> | ||
1207 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.1"/> | ||
1208 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.2"/> | ||
1209 | </operand> | ||
1210 | </rightOperand> | ||
1211 | </expression> | ||
1212 | </value> | ||
1213 | </assertions> | ||
1214 | <assertions name="upperMultiplicity resolveProxies EReference" annotations="//@annotations.42"> | ||
1215 | <value xsi:type="language_1:Forall"> | ||
1216 | <quantifiedVariables name="src"> | ||
1217 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1218 | </quantifiedVariables> | ||
1219 | <quantifiedVariables name="trg 1"> | ||
1220 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1221 | </quantifiedVariables> | ||
1222 | <quantifiedVariables name="trg 2"> | ||
1223 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1224 | </quantifiedVariables> | ||
1225 | <expression xsi:type="language_1:Impl"> | ||
1226 | <leftOperand xsi:type="language_1:And"> | ||
1227 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.60"> | ||
1228 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.0"/> | ||
1229 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.1"/> | ||
1230 | </operands> | ||
1231 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.60"> | ||
1232 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.0"/> | ||
1233 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.2"/> | ||
1234 | </operands> | ||
1235 | </leftOperand> | ||
1236 | <rightOperand xsi:type="language_1:Not"> | ||
1237 | <operand xsi:type="language_1:Distinct"> | ||
1238 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.1"/> | ||
1239 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.2"/> | ||
1240 | </operand> | ||
1241 | </rightOperand> | ||
1242 | </expression> | ||
1243 | </value> | ||
1244 | </assertions> | ||
1245 | <assertions name="upperMultiplicity changeable EStructuralFeature" annotations="//@annotations.43"> | ||
1246 | <value xsi:type="language_1:Forall"> | ||
1247 | <quantifiedVariables name="src"> | ||
1248 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1249 | </quantifiedVariables> | ||
1250 | <quantifiedVariables name="trg 1"> | ||
1251 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1252 | </quantifiedVariables> | ||
1253 | <quantifiedVariables name="trg 2"> | ||
1254 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1255 | </quantifiedVariables> | ||
1256 | <expression xsi:type="language_1:Impl"> | ||
1257 | <leftOperand xsi:type="language_1:And"> | ||
1258 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.61"> | ||
1259 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.0"/> | ||
1260 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.1"/> | ||
1261 | </operands> | ||
1262 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.61"> | ||
1263 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.0"/> | ||
1264 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.2"/> | ||
1265 | </operands> | ||
1266 | </leftOperand> | ||
1267 | <rightOperand xsi:type="language_1:Not"> | ||
1268 | <operand xsi:type="language_1:Distinct"> | ||
1269 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.1"/> | ||
1270 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.2"/> | ||
1271 | </operand> | ||
1272 | </rightOperand> | ||
1273 | </expression> | ||
1274 | </value> | ||
1275 | </assertions> | ||
1276 | <assertions name="upperMultiplicity volatile EStructuralFeature" annotations="//@annotations.44"> | ||
1277 | <value xsi:type="language_1:Forall"> | ||
1278 | <quantifiedVariables name="src"> | ||
1279 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1280 | </quantifiedVariables> | ||
1281 | <quantifiedVariables name="trg 1"> | ||
1282 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1283 | </quantifiedVariables> | ||
1284 | <quantifiedVariables name="trg 2"> | ||
1285 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1286 | </quantifiedVariables> | ||
1287 | <expression xsi:type="language_1:Impl"> | ||
1288 | <leftOperand xsi:type="language_1:And"> | ||
1289 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.62"> | ||
1290 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.0"/> | ||
1291 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.1"/> | ||
1292 | </operands> | ||
1293 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.62"> | ||
1294 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.0"/> | ||
1295 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.2"/> | ||
1296 | </operands> | ||
1297 | </leftOperand> | ||
1298 | <rightOperand xsi:type="language_1:Not"> | ||
1299 | <operand xsi:type="language_1:Distinct"> | ||
1300 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.1"/> | ||
1301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.2"/> | ||
1302 | </operand> | ||
1303 | </rightOperand> | ||
1304 | </expression> | ||
1305 | </value> | ||
1306 | </assertions> | ||
1307 | <assertions name="upperMultiplicity transient EStructuralFeature" annotations="//@annotations.45"> | ||
1308 | <value xsi:type="language_1:Forall"> | ||
1309 | <quantifiedVariables name="src"> | ||
1310 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1311 | </quantifiedVariables> | ||
1312 | <quantifiedVariables name="trg 1"> | ||
1313 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1314 | </quantifiedVariables> | ||
1315 | <quantifiedVariables name="trg 2"> | ||
1316 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1317 | </quantifiedVariables> | ||
1318 | <expression xsi:type="language_1:Impl"> | ||
1319 | <leftOperand xsi:type="language_1:And"> | ||
1320 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.63"> | ||
1321 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.0"/> | ||
1322 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.1"/> | ||
1323 | </operands> | ||
1324 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.63"> | ||
1325 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.0"/> | ||
1326 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.2"/> | ||
1327 | </operands> | ||
1328 | </leftOperand> | ||
1329 | <rightOperand xsi:type="language_1:Not"> | ||
1330 | <operand xsi:type="language_1:Distinct"> | ||
1331 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.1"/> | ||
1332 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.2"/> | ||
1333 | </operand> | ||
1334 | </rightOperand> | ||
1335 | </expression> | ||
1336 | </value> | ||
1337 | </assertions> | ||
1338 | <assertions name="upperMultiplicity defaultValueLiteral EStructuralFeature" annotations="//@annotations.46"> | ||
1339 | <value xsi:type="language_1:Forall"> | ||
1340 | <quantifiedVariables name="src"> | ||
1341 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1342 | </quantifiedVariables> | ||
1343 | <quantifiedVariables name="trg 1"> | ||
1344 | <range xsi:type="language_1:StringTypeReference"/> | ||
1345 | </quantifiedVariables> | ||
1346 | <quantifiedVariables name="trg 2"> | ||
1347 | <range xsi:type="language_1:StringTypeReference"/> | ||
1348 | </quantifiedVariables> | ||
1349 | <expression xsi:type="language_1:Impl"> | ||
1350 | <leftOperand xsi:type="language_1:And"> | ||
1351 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.64"> | ||
1352 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.0"/> | ||
1353 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.1"/> | ||
1354 | </operands> | ||
1355 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.64"> | ||
1356 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.0"/> | ||
1357 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.2"/> | ||
1358 | </operands> | ||
1359 | </leftOperand> | ||
1360 | <rightOperand xsi:type="language_1:Not"> | ||
1361 | <operand xsi:type="language_1:Distinct"> | ||
1362 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.1"/> | ||
1363 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.2"/> | ||
1364 | </operand> | ||
1365 | </rightOperand> | ||
1366 | </expression> | ||
1367 | </value> | ||
1368 | </assertions> | ||
1369 | <assertions name="upperMultiplicity unsettable EStructuralFeature" annotations="//@annotations.47"> | ||
1370 | <value xsi:type="language_1:Forall"> | ||
1371 | <quantifiedVariables name="src"> | ||
1372 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1373 | </quantifiedVariables> | ||
1374 | <quantifiedVariables name="trg 1"> | ||
1375 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1376 | </quantifiedVariables> | ||
1377 | <quantifiedVariables name="trg 2"> | ||
1378 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1379 | </quantifiedVariables> | ||
1380 | <expression xsi:type="language_1:Impl"> | ||
1381 | <leftOperand xsi:type="language_1:And"> | ||
1382 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.65"> | ||
1383 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.0"/> | ||
1384 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.1"/> | ||
1385 | </operands> | ||
1386 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.65"> | ||
1387 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.0"/> | ||
1388 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.2"/> | ||
1389 | </operands> | ||
1390 | </leftOperand> | ||
1391 | <rightOperand xsi:type="language_1:Not"> | ||
1392 | <operand xsi:type="language_1:Distinct"> | ||
1393 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.1"/> | ||
1394 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.2"/> | ||
1395 | </operand> | ||
1396 | </rightOperand> | ||
1397 | </expression> | ||
1398 | </value> | ||
1399 | </assertions> | ||
1400 | <assertions name="upperMultiplicity derived EStructuralFeature" annotations="//@annotations.48"> | ||
1401 | <value xsi:type="language_1:Forall"> | ||
1402 | <quantifiedVariables name="src"> | ||
1403 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1404 | </quantifiedVariables> | ||
1405 | <quantifiedVariables name="trg 1"> | ||
1406 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1407 | </quantifiedVariables> | ||
1408 | <quantifiedVariables name="trg 2"> | ||
1409 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1410 | </quantifiedVariables> | ||
1411 | <expression xsi:type="language_1:Impl"> | ||
1412 | <leftOperand xsi:type="language_1:And"> | ||
1413 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.66"> | ||
1414 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.0"/> | ||
1415 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.1"/> | ||
1416 | </operands> | ||
1417 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.66"> | ||
1418 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.0"/> | ||
1419 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.2"/> | ||
1420 | </operands> | ||
1421 | </leftOperand> | ||
1422 | <rightOperand xsi:type="language_1:Not"> | ||
1423 | <operand xsi:type="language_1:Distinct"> | ||
1424 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.1"/> | ||
1425 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.2"/> | ||
1426 | </operand> | ||
1427 | </rightOperand> | ||
1428 | </expression> | ||
1429 | </value> | ||
1430 | </assertions> | ||
1431 | <assertions name="upperMultiplicity ordered ETypedElement" annotations="//@annotations.49"> | ||
1432 | <value xsi:type="language_1:Forall"> | ||
1433 | <quantifiedVariables name="src"> | ||
1434 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1435 | </quantifiedVariables> | ||
1436 | <quantifiedVariables name="trg 1"> | ||
1437 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1438 | </quantifiedVariables> | ||
1439 | <quantifiedVariables name="trg 2"> | ||
1440 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1441 | </quantifiedVariables> | ||
1442 | <expression xsi:type="language_1:Impl"> | ||
1443 | <leftOperand xsi:type="language_1:And"> | ||
1444 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.67"> | ||
1445 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.0"/> | ||
1446 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.1"/> | ||
1447 | </operands> | ||
1448 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.67"> | ||
1449 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.0"/> | ||
1450 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.2"/> | ||
1451 | </operands> | ||
1452 | </leftOperand> | ||
1453 | <rightOperand xsi:type="language_1:Not"> | ||
1454 | <operand xsi:type="language_1:Distinct"> | ||
1455 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.1"/> | ||
1456 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.2"/> | ||
1457 | </operand> | ||
1458 | </rightOperand> | ||
1459 | </expression> | ||
1460 | </value> | ||
1461 | </assertions> | ||
1462 | <assertions name="upperMultiplicity unique ETypedElement" annotations="//@annotations.50"> | ||
1463 | <value xsi:type="language_1:Forall"> | ||
1464 | <quantifiedVariables name="src"> | ||
1465 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1466 | </quantifiedVariables> | ||
1467 | <quantifiedVariables name="trg 1"> | ||
1468 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1469 | </quantifiedVariables> | ||
1470 | <quantifiedVariables name="trg 2"> | ||
1471 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1472 | </quantifiedVariables> | ||
1473 | <expression xsi:type="language_1:Impl"> | ||
1474 | <leftOperand xsi:type="language_1:And"> | ||
1475 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.68"> | ||
1476 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.0"/> | ||
1477 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.1"/> | ||
1478 | </operands> | ||
1479 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.68"> | ||
1480 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.0"/> | ||
1481 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.2"/> | ||
1482 | </operands> | ||
1483 | </leftOperand> | ||
1484 | <rightOperand xsi:type="language_1:Not"> | ||
1485 | <operand xsi:type="language_1:Distinct"> | ||
1486 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.1"/> | ||
1487 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.2"/> | ||
1488 | </operand> | ||
1489 | </rightOperand> | ||
1490 | </expression> | ||
1491 | </value> | ||
1492 | </assertions> | ||
1493 | <assertions name="upperMultiplicity lowerBound ETypedElement" annotations="//@annotations.51"> | ||
1494 | <value xsi:type="language_1:Forall"> | ||
1495 | <quantifiedVariables name="src"> | ||
1496 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1497 | </quantifiedVariables> | ||
1498 | <quantifiedVariables name="trg 1"> | ||
1499 | <range xsi:type="language_1:IntTypeReference"/> | ||
1500 | </quantifiedVariables> | ||
1501 | <quantifiedVariables name="trg 2"> | ||
1502 | <range xsi:type="language_1:IntTypeReference"/> | ||
1503 | </quantifiedVariables> | ||
1504 | <expression xsi:type="language_1:Impl"> | ||
1505 | <leftOperand xsi:type="language_1:And"> | ||
1506 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.69"> | ||
1507 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.0"/> | ||
1508 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.1"/> | ||
1509 | </operands> | ||
1510 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.69"> | ||
1511 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.0"/> | ||
1512 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.2"/> | ||
1513 | </operands> | ||
1514 | </leftOperand> | ||
1515 | <rightOperand xsi:type="language_1:Not"> | ||
1516 | <operand xsi:type="language_1:Distinct"> | ||
1517 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.1"/> | ||
1518 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.2"/> | ||
1519 | </operand> | ||
1520 | </rightOperand> | ||
1521 | </expression> | ||
1522 | </value> | ||
1523 | </assertions> | ||
1524 | <assertions name="upperMultiplicity upperBound ETypedElement" annotations="//@annotations.52"> | ||
1525 | <value xsi:type="language_1:Forall"> | ||
1526 | <quantifiedVariables name="src"> | ||
1527 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1528 | </quantifiedVariables> | ||
1529 | <quantifiedVariables name="trg 1"> | ||
1530 | <range xsi:type="language_1:IntTypeReference"/> | ||
1531 | </quantifiedVariables> | ||
1532 | <quantifiedVariables name="trg 2"> | ||
1533 | <range xsi:type="language_1:IntTypeReference"/> | ||
1534 | </quantifiedVariables> | ||
1535 | <expression xsi:type="language_1:Impl"> | ||
1536 | <leftOperand xsi:type="language_1:And"> | ||
1537 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.70"> | ||
1538 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.0"/> | ||
1539 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.1"/> | ||
1540 | </operands> | ||
1541 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.70"> | ||
1542 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.0"/> | ||
1543 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.2"/> | ||
1544 | </operands> | ||
1545 | </leftOperand> | ||
1546 | <rightOperand xsi:type="language_1:Not"> | ||
1547 | <operand xsi:type="language_1:Distinct"> | ||
1548 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.1"/> | ||
1549 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.2"/> | ||
1550 | </operand> | ||
1551 | </rightOperand> | ||
1552 | </expression> | ||
1553 | </value> | ||
1554 | </assertions> | ||
1555 | <assertions name="upperMultiplicity many ETypedElement" annotations="//@annotations.53"> | ||
1556 | <value xsi:type="language_1:Forall"> | ||
1557 | <quantifiedVariables name="src"> | ||
1558 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1559 | </quantifiedVariables> | ||
1560 | <quantifiedVariables name="trg 1"> | ||
1561 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1562 | </quantifiedVariables> | ||
1563 | <quantifiedVariables name="trg 2"> | ||
1564 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1565 | </quantifiedVariables> | ||
1566 | <expression xsi:type="language_1:Impl"> | ||
1567 | <leftOperand xsi:type="language_1:And"> | ||
1568 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.71"> | ||
1569 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.0"/> | ||
1570 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.1"/> | ||
1571 | </operands> | ||
1572 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.71"> | ||
1573 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.0"/> | ||
1574 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.2"/> | ||
1575 | </operands> | ||
1576 | </leftOperand> | ||
1577 | <rightOperand xsi:type="language_1:Not"> | ||
1578 | <operand xsi:type="language_1:Distinct"> | ||
1579 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.1"/> | ||
1580 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.2"/> | ||
1581 | </operand> | ||
1582 | </rightOperand> | ||
1583 | </expression> | ||
1584 | </value> | ||
1585 | </assertions> | ||
1586 | <assertions name="upperMultiplicity required ETypedElement" annotations="//@annotations.54"> | ||
1587 | <value xsi:type="language_1:Forall"> | ||
1588 | <quantifiedVariables name="src"> | ||
1589 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1590 | </quantifiedVariables> | ||
1591 | <quantifiedVariables name="trg 1"> | ||
1592 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1593 | </quantifiedVariables> | ||
1594 | <quantifiedVariables name="trg 2"> | ||
1595 | <range xsi:type="language_1:BoolTypeReference"/> | ||
1596 | </quantifiedVariables> | ||
1597 | <expression xsi:type="language_1:Impl"> | ||
1598 | <leftOperand xsi:type="language_1:And"> | ||
1599 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.72"> | ||
1600 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.0"/> | ||
1601 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.1"/> | ||
1602 | </operands> | ||
1603 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.72"> | ||
1604 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.0"/> | ||
1605 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.2"/> | ||
1606 | </operands> | ||
1607 | </leftOperand> | ||
1608 | <rightOperand xsi:type="language_1:Not"> | ||
1609 | <operand xsi:type="language_1:Distinct"> | ||
1610 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.1"/> | ||
1611 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.2"/> | ||
1612 | </operand> | ||
1613 | </rightOperand> | ||
1614 | </expression> | ||
1615 | </value> | ||
1616 | </assertions> | ||
1617 | <assertions name="upperMultiplicity key EStringToStringMapEntry" annotations="//@annotations.55"> | ||
1618 | <value xsi:type="language_1:Forall"> | ||
1619 | <quantifiedVariables name="src"> | ||
1620 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> | ||
1621 | </quantifiedVariables> | ||
1622 | <quantifiedVariables name="trg 1"> | ||
1623 | <range xsi:type="language_1:StringTypeReference"/> | ||
1624 | </quantifiedVariables> | ||
1625 | <quantifiedVariables name="trg 2"> | ||
1626 | <range xsi:type="language_1:StringTypeReference"/> | ||
1627 | </quantifiedVariables> | ||
1628 | <expression xsi:type="language_1:Impl"> | ||
1629 | <leftOperand xsi:type="language_1:And"> | ||
1630 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.73"> | ||
1631 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.0"/> | ||
1632 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.1"/> | ||
1633 | </operands> | ||
1634 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.73"> | ||
1635 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.0"/> | ||
1636 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.2"/> | ||
1637 | </operands> | ||
1638 | </leftOperand> | ||
1639 | <rightOperand xsi:type="language_1:Not"> | ||
1640 | <operand xsi:type="language_1:Distinct"> | ||
1641 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.1"/> | ||
1642 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.2"/> | ||
1643 | </operand> | ||
1644 | </rightOperand> | ||
1645 | </expression> | ||
1646 | </value> | ||
1647 | </assertions> | ||
1648 | <assertions name="upperMultiplicity value EStringToStringMapEntry" annotations="//@annotations.56"> | ||
1649 | <value xsi:type="language_1:Forall"> | ||
1650 | <quantifiedVariables name="src"> | ||
1651 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> | ||
1652 | </quantifiedVariables> | ||
1653 | <quantifiedVariables name="trg 1"> | ||
1654 | <range xsi:type="language_1:StringTypeReference"/> | ||
1655 | </quantifiedVariables> | ||
1656 | <quantifiedVariables name="trg 2"> | ||
1657 | <range xsi:type="language_1:StringTypeReference"/> | ||
1658 | </quantifiedVariables> | ||
1659 | <expression xsi:type="language_1:Impl"> | ||
1660 | <leftOperand xsi:type="language_1:And"> | ||
1661 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.74"> | ||
1662 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.0"/> | ||
1663 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.1"/> | ||
1664 | </operands> | ||
1665 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.74"> | ||
1666 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.0"/> | ||
1667 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.2"/> | ||
1668 | </operands> | ||
1669 | </leftOperand> | ||
1670 | <rightOperand xsi:type="language_1:Not"> | ||
1671 | <operand xsi:type="language_1:Distinct"> | ||
1672 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.1"/> | ||
1673 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.2"/> | ||
1674 | </operand> | ||
1675 | </rightOperand> | ||
1676 | </expression> | ||
1677 | </value> | ||
1678 | </assertions> | ||
1679 | <assertions name="PartialInterpretation name attribute ENamedElement" annotations="//@annotations.57"> | ||
1680 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55"> | ||
1681 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1682 | <parameterSubstitutions xsi:type="language_1:StringLiteral" value="packageName"/> | ||
1683 | </value> | ||
1684 | </assertions> | ||
1685 | <assertions name="PartialInterpretation nsURI attribute EPackage" annotations="//@annotations.58"> | ||
1686 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56"> | ||
1687 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1688 | <parameterSubstitutions xsi:type="language_1:StringLiteral" value="nsUri"/> | ||
1689 | </value> | ||
1690 | </assertions> | ||
1691 | <assertions name="PartialInterpretation nsPrefix attribute EPackage" annotations="//@annotations.59"> | ||
1692 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57"> | ||
1693 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1694 | <parameterSubstitutions xsi:type="language_1:StringLiteral" value="nsPrefix"/> | ||
1695 | </value> | ||
1696 | </assertions> | ||
1697 | <relations xsi:type="language_1:RelationDeclaration" name="eAttributeType reference EAttribute"> | ||
1698 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1699 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1700 | </relations> | ||
1701 | <relations xsi:type="language_1:RelationDeclaration" name="details reference EAnnotation"> | ||
1702 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1703 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> | ||
1704 | </relations> | ||
1705 | <relations xsi:type="language_1:RelationDeclaration" name="eModelElement reference EAnnotation"> | ||
1706 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1707 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
1708 | </relations> | ||
1709 | <relations xsi:type="language_1:RelationDeclaration" name="contents reference EAnnotation"> | ||
1710 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1711 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1712 | </relations> | ||
1713 | <relations xsi:type="language_1:RelationDeclaration" name="references reference EAnnotation"> | ||
1714 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1715 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1716 | </relations> | ||
1717 | <relations xsi:type="language_1:RelationDeclaration" name="eSuperTypes reference EClass"> | ||
1718 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1719 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1720 | </relations> | ||
1721 | <relations xsi:type="language_1:RelationDeclaration" name="eOperations reference EClass"> | ||
1722 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1723 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1724 | </relations> | ||
1725 | <relations xsi:type="language_1:RelationDeclaration" name="eAllAttributes reference EClass"> | ||
1726 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1727 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1728 | </relations> | ||
1729 | <relations xsi:type="language_1:RelationDeclaration" name="eAllReferences reference EClass"> | ||
1730 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1731 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1732 | </relations> | ||
1733 | <relations xsi:type="language_1:RelationDeclaration" name="eReferences reference EClass"> | ||
1734 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1735 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1736 | </relations> | ||
1737 | <relations xsi:type="language_1:RelationDeclaration" name="eAttributes reference EClass"> | ||
1738 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1739 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1740 | </relations> | ||
1741 | <relations xsi:type="language_1:RelationDeclaration" name="eAllContainments reference EClass"> | ||
1742 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1743 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1744 | </relations> | ||
1745 | <relations xsi:type="language_1:RelationDeclaration" name="eAllOperations reference EClass"> | ||
1746 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1747 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1748 | </relations> | ||
1749 | <relations xsi:type="language_1:RelationDeclaration" name="eAllStructuralFeatures reference EClass"> | ||
1750 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1751 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1752 | </relations> | ||
1753 | <relations xsi:type="language_1:RelationDeclaration" name="eAllSuperTypes reference EClass"> | ||
1754 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1755 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1756 | </relations> | ||
1757 | <relations xsi:type="language_1:RelationDeclaration" name="eIDAttribute reference EClass"> | ||
1758 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1759 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1760 | </relations> | ||
1761 | <relations xsi:type="language_1:RelationDeclaration" name="eStructuralFeatures reference EClass"> | ||
1762 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1763 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1764 | </relations> | ||
1765 | <relations xsi:type="language_1:RelationDeclaration" name="eGenericSuperTypes reference EClass"> | ||
1766 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1767 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1768 | </relations> | ||
1769 | <relations xsi:type="language_1:RelationDeclaration" name="eAllGenericSuperTypes reference EClass"> | ||
1770 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1771 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1772 | </relations> | ||
1773 | <relations xsi:type="language_1:RelationDeclaration" name="ePackage reference EClassifier"> | ||
1774 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1775 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1776 | </relations> | ||
1777 | <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameters reference EClassifier"> | ||
1778 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1779 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
1780 | </relations> | ||
1781 | <relations xsi:type="language_1:RelationDeclaration" name="eLiterals reference EEnum"> | ||
1782 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1783 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1784 | </relations> | ||
1785 | <relations xsi:type="language_1:RelationDeclaration" name="eEnum reference EEnumLiteral"> | ||
1786 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1787 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1788 | </relations> | ||
1789 | <relations xsi:type="language_1:RelationDeclaration" name="eAnnotations reference EModelElement"> | ||
1790 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
1791 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1792 | </relations> | ||
1793 | <relations xsi:type="language_1:RelationDeclaration" name="eContainingClass reference EOperation"> | ||
1794 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1795 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1796 | </relations> | ||
1797 | <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameters reference EOperation"> | ||
1798 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1799 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
1800 | </relations> | ||
1801 | <relations xsi:type="language_1:RelationDeclaration" name="eParameters reference EOperation"> | ||
1802 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1803 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> | ||
1804 | </relations> | ||
1805 | <relations xsi:type="language_1:RelationDeclaration" name="eExceptions reference EOperation"> | ||
1806 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1807 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1808 | </relations> | ||
1809 | <relations xsi:type="language_1:RelationDeclaration" name="eGenericExceptions reference EOperation"> | ||
1810 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1811 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1812 | </relations> | ||
1813 | <relations xsi:type="language_1:RelationDeclaration" name="eClassifiers reference EPackage"> | ||
1814 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1815 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1816 | </relations> | ||
1817 | <relations xsi:type="language_1:RelationDeclaration" name="eSubpackages reference EPackage"> | ||
1818 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1819 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1820 | </relations> | ||
1821 | <relations xsi:type="language_1:RelationDeclaration" name="eSuperPackage reference EPackage"> | ||
1822 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1823 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1824 | </relations> | ||
1825 | <relations xsi:type="language_1:RelationDeclaration" name="eOperation reference EParameter"> | ||
1826 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> | ||
1827 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
1828 | </relations> | ||
1829 | <relations xsi:type="language_1:RelationDeclaration" name="eOpposite reference EReference"> | ||
1830 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1831 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1832 | </relations> | ||
1833 | <relations xsi:type="language_1:RelationDeclaration" name="eReferenceType reference EReference"> | ||
1834 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1835 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1836 | </relations> | ||
1837 | <relations xsi:type="language_1:RelationDeclaration" name="eKeys reference EReference"> | ||
1838 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1839 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1840 | </relations> | ||
1841 | <relations xsi:type="language_1:RelationDeclaration" name="eContainingClass reference EStructuralFeature"> | ||
1842 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1843 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1844 | </relations> | ||
1845 | <relations xsi:type="language_1:RelationDeclaration" name="eType reference ETypedElement"> | ||
1846 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1847 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1848 | </relations> | ||
1849 | <relations xsi:type="language_1:RelationDeclaration" name="eGenericType reference ETypedElement"> | ||
1850 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1851 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1852 | </relations> | ||
1853 | <relations xsi:type="language_1:RelationDeclaration" name="eUpperBound reference EGenericType"> | ||
1854 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1855 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1856 | </relations> | ||
1857 | <relations xsi:type="language_1:RelationDeclaration" name="eTypeArguments reference EGenericType"> | ||
1858 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1859 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1860 | </relations> | ||
1861 | <relations xsi:type="language_1:RelationDeclaration" name="eRawType reference EGenericType"> | ||
1862 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1863 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1864 | </relations> | ||
1865 | <relations xsi:type="language_1:RelationDeclaration" name="eLowerBound reference EGenericType"> | ||
1866 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1867 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1868 | </relations> | ||
1869 | <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameter reference EGenericType"> | ||
1870 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1871 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
1872 | </relations> | ||
1873 | <relations xsi:type="language_1:RelationDeclaration" name="eClassifier reference EGenericType"> | ||
1874 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1875 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1876 | </relations> | ||
1877 | <relations xsi:type="language_1:RelationDeclaration" name="eBounds reference ETypeParameter"> | ||
1878 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> | ||
1879 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> | ||
1880 | </relations> | ||
1881 | <relations xsi:type="language_1:RelationDeclaration" name="iD attribute EAttribute"> | ||
1882 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1883 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1884 | </relations> | ||
1885 | <relations xsi:type="language_1:RelationDeclaration" name="source attribute EAnnotation"> | ||
1886 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1887 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1888 | </relations> | ||
1889 | <relations xsi:type="language_1:RelationDeclaration" name="abstract attribute EClass"> | ||
1890 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1891 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1892 | </relations> | ||
1893 | <relations xsi:type="language_1:RelationDeclaration" name="interface attribute EClass"> | ||
1894 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1895 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1896 | </relations> | ||
1897 | <relations xsi:type="language_1:RelationDeclaration" name="instanceClassName attribute EClassifier"> | ||
1898 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1899 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1900 | </relations> | ||
1901 | <relations xsi:type="language_1:RelationDeclaration" name="instanceTypeName attribute EClassifier"> | ||
1902 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1903 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1904 | </relations> | ||
1905 | <relations xsi:type="language_1:RelationDeclaration" name="serializable attribute EDataType"> | ||
1906 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1907 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1908 | </relations> | ||
1909 | <relations xsi:type="language_1:RelationDeclaration" name="value attribute EEnumLiteral"> | ||
1910 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1911 | <parameters xsi:type="language_1:IntTypeReference"/> | ||
1912 | </relations> | ||
1913 | <relations xsi:type="language_1:RelationDeclaration" name="literal attribute EEnumLiteral"> | ||
1914 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1915 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1916 | </relations> | ||
1917 | <relations xsi:type="language_1:RelationDeclaration" name="name attribute ENamedElement"> | ||
1918 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
1919 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1920 | </relations> | ||
1921 | <relations xsi:type="language_1:RelationDeclaration" name="nsURI attribute EPackage"> | ||
1922 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1923 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1924 | </relations> | ||
1925 | <relations xsi:type="language_1:RelationDeclaration" name="nsPrefix attribute EPackage"> | ||
1926 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1927 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1928 | </relations> | ||
1929 | <relations xsi:type="language_1:RelationDeclaration" name="containment attribute EReference"> | ||
1930 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1931 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1932 | </relations> | ||
1933 | <relations xsi:type="language_1:RelationDeclaration" name="container attribute EReference"> | ||
1934 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1935 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1936 | </relations> | ||
1937 | <relations xsi:type="language_1:RelationDeclaration" name="resolveProxies attribute EReference"> | ||
1938 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1939 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1940 | </relations> | ||
1941 | <relations xsi:type="language_1:RelationDeclaration" name="changeable attribute EStructuralFeature"> | ||
1942 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1943 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1944 | </relations> | ||
1945 | <relations xsi:type="language_1:RelationDeclaration" name="volatile attribute EStructuralFeature"> | ||
1946 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1947 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1948 | </relations> | ||
1949 | <relations xsi:type="language_1:RelationDeclaration" name="transient attribute EStructuralFeature"> | ||
1950 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1951 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1952 | </relations> | ||
1953 | <relations xsi:type="language_1:RelationDeclaration" name="defaultValueLiteral attribute EStructuralFeature"> | ||
1954 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1955 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1956 | </relations> | ||
1957 | <relations xsi:type="language_1:RelationDeclaration" name="unsettable attribute EStructuralFeature"> | ||
1958 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1959 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1960 | </relations> | ||
1961 | <relations xsi:type="language_1:RelationDeclaration" name="derived attribute EStructuralFeature"> | ||
1962 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1963 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1964 | </relations> | ||
1965 | <relations xsi:type="language_1:RelationDeclaration" name="ordered attribute ETypedElement"> | ||
1966 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1967 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1968 | </relations> | ||
1969 | <relations xsi:type="language_1:RelationDeclaration" name="unique attribute ETypedElement"> | ||
1970 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1971 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1972 | </relations> | ||
1973 | <relations xsi:type="language_1:RelationDeclaration" name="lowerBound attribute ETypedElement"> | ||
1974 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1975 | <parameters xsi:type="language_1:IntTypeReference"/> | ||
1976 | </relations> | ||
1977 | <relations xsi:type="language_1:RelationDeclaration" name="upperBound attribute ETypedElement"> | ||
1978 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1979 | <parameters xsi:type="language_1:IntTypeReference"/> | ||
1980 | </relations> | ||
1981 | <relations xsi:type="language_1:RelationDeclaration" name="many attribute ETypedElement"> | ||
1982 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1983 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1984 | </relations> | ||
1985 | <relations xsi:type="language_1:RelationDeclaration" name="required attribute ETypedElement"> | ||
1986 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1987 | <parameters xsi:type="language_1:BoolTypeReference"/> | ||
1988 | </relations> | ||
1989 | <relations xsi:type="language_1:RelationDeclaration" name="key attribute EStringToStringMapEntry"> | ||
1990 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> | ||
1991 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1992 | </relations> | ||
1993 | <relations xsi:type="language_1:RelationDeclaration" name="value attribute EStringToStringMapEntry"> | ||
1994 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> | ||
1995 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
1996 | </relations> | ||
1997 | <elements name="o 1" definedInType="//@types.19 //@types.21 //@types.23"/> | ||
1998 | <containmentHierarchies typesOrderedInHierarchy="//@types.6 //@types.5 //@types.1 //@types.4 //@types.17 //@types.8 //@types.7 //@types.15 //@types.0 //@types.9 //@types.2 //@types.16 //@types.11 //@types.13 //@types.3 //@types.10 //@types.18 //@types.12 //@types.14 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23 //@types.24" containmentRelations="//@relations.1 //@relations.3 //@relations.6 //@relations.16 //@relations.17 //@relations.20 //@relations.21 //@relations.23 //@relations.25 //@relations.26 //@relations.28 //@relations.29 //@relations.30 //@relations.38 //@relations.39 //@relations.40 //@relations.42 //@relations.45"/> | ||
1999 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/> | ||
2000 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/> | ||
2001 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.2" upper="1"/> | ||
2002 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.15" upper="1"/> | ||
2003 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.19" upper="1"/> | ||
2004 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.22" upper="1"/> | ||
2005 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.24" upper="1"/> | ||
2006 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.31" upper="1"/> | ||
2007 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.32" upper="1"/> | ||
2008 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.33" upper="1"/> | ||
2009 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.10" relation="//@relations.34" lower="1"/> | ||
2010 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.11" relation="//@relations.34" upper="1"/> | ||
2011 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.36" upper="1"/> | ||
2012 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.13" relation="//@relations.37" upper="1"/> | ||
2013 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.38" upper="1"/> | ||
2014 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.15" relation="//@relations.39" upper="1"/> | ||
2015 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.16" relation="//@relations.41" lower="1"/> | ||
2016 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.17" relation="//@relations.41" upper="1"/> | ||
2017 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.42" upper="1"/> | ||
2018 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.19" relation="//@relations.43" upper="1"/> | ||
2019 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.20" relation="//@relations.44" upper="1"/> | ||
2020 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.2" inverseB="//@relations.23"/> | ||
2021 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.22" inverseA="//@relations.6" inverseB="//@relations.24"/> | ||
2022 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.23" inverseA="//@relations.16" inverseB="//@relations.36"/> | ||
2023 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.24" inverseA="//@relations.19" inverseB="//@relations.29"/> | ||
2024 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.25" inverseA="//@relations.21" inverseB="//@relations.22"/> | ||
2025 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.26" inverseA="//@relations.26" inverseB="//@relations.32"/> | ||
2026 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.27" inverseA="//@relations.30" inverseB="//@relations.31"/> | ||
2027 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.28" relation="//@relations.46" upper="1"/> | ||
2028 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.29" relation="//@relations.47" upper="1"/> | ||
2029 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.30" relation="//@relations.48" upper="1"/> | ||
2030 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.31" relation="//@relations.49" upper="1"/> | ||
2031 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.32" relation="//@relations.50" upper="1"/> | ||
2032 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.33" relation="//@relations.51" upper="1"/> | ||
2033 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.34" relation="//@relations.52" upper="1"/> | ||
2034 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.35" relation="//@relations.53" upper="1"/> | ||
2035 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.36" relation="//@relations.54" upper="1"/> | ||
2036 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.37" relation="//@relations.55" upper="1"/> | ||
2037 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.38" relation="//@relations.56" upper="1"/> | ||
2038 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.39" relation="//@relations.57" upper="1"/> | ||
2039 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.40" relation="//@relations.58" upper="1"/> | ||
2040 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.41" relation="//@relations.59" upper="1"/> | ||
2041 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.42" relation="//@relations.60" upper="1"/> | ||
2042 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.43" relation="//@relations.61" upper="1"/> | ||
2043 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.44" relation="//@relations.62" upper="1"/> | ||
2044 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.45" relation="//@relations.63" upper="1"/> | ||
2045 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.46" relation="//@relations.64" upper="1"/> | ||
2046 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.47" relation="//@relations.65" upper="1"/> | ||
2047 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.48" relation="//@relations.66" upper="1"/> | ||
2048 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.49" relation="//@relations.67" upper="1"/> | ||
2049 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.50" relation="//@relations.68" upper="1"/> | ||
2050 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.51" relation="//@relations.69" upper="1"/> | ||
2051 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.52" relation="//@relations.70" upper="1"/> | ||
2052 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.53" relation="//@relations.71" upper="1"/> | ||
2053 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.54" relation="//@relations.72" upper="1"/> | ||
2054 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.55" relation="//@relations.73" upper="1"/> | ||
2055 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.56" relation="//@relations.74" upper="1"/> | ||
2056 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.57" targetRelation="//@relations.55"/> | ||
2057 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.58" targetRelation="//@relations.56"/> | ||
2058 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.59" targetRelation="//@relations.57"/> | ||
2059 | </language:LogicProblem> | ||
diff --git a/Tests/Ecore-Plugin/outputs/debug/init.partialmodel b/Tests/Ecore-Plugin/outputs/debug/init.partialmodel new file mode 100644 index 00000000..985e7346 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/debug/init.partialmodel | |||
@@ -0,0 +1,497 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="5" maxNewElements="5"> | ||
3 | <problem href="generation.logicproblem#/"/> | ||
4 | <partialrelationinterpretation> | ||
5 | <interpretationOf href="generation.logicproblem#//@relations.0"/> | ||
6 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.0/@parameters.0"/> | ||
7 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.0/@parameters.1"/> | ||
8 | </partialrelationinterpretation> | ||
9 | <partialrelationinterpretation> | ||
10 | <interpretationOf href="generation.logicproblem#//@relations.1"/> | ||
11 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.1/@parameters.0"/> | ||
12 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.1/@parameters.1"/> | ||
13 | </partialrelationinterpretation> | ||
14 | <partialrelationinterpretation> | ||
15 | <interpretationOf href="generation.logicproblem#//@relations.2"/> | ||
16 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.2/@parameters.0"/> | ||
17 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.2/@parameters.1"/> | ||
18 | </partialrelationinterpretation> | ||
19 | <partialrelationinterpretation> | ||
20 | <interpretationOf href="generation.logicproblem#//@relations.3"/> | ||
21 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.3/@parameters.0"/> | ||
22 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.3/@parameters.1"/> | ||
23 | </partialrelationinterpretation> | ||
24 | <partialrelationinterpretation> | ||
25 | <interpretationOf href="generation.logicproblem#//@relations.4"/> | ||
26 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.4/@parameters.0"/> | ||
27 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.4/@parameters.1"/> | ||
28 | </partialrelationinterpretation> | ||
29 | <partialrelationinterpretation> | ||
30 | <interpretationOf href="generation.logicproblem#//@relations.5"/> | ||
31 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.5/@parameters.0"/> | ||
32 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.5/@parameters.1"/> | ||
33 | </partialrelationinterpretation> | ||
34 | <partialrelationinterpretation> | ||
35 | <interpretationOf href="generation.logicproblem#//@relations.6"/> | ||
36 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.6/@parameters.0"/> | ||
37 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.6/@parameters.1"/> | ||
38 | </partialrelationinterpretation> | ||
39 | <partialrelationinterpretation> | ||
40 | <interpretationOf href="generation.logicproblem#//@relations.7"/> | ||
41 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.7/@parameters.0"/> | ||
42 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.7/@parameters.1"/> | ||
43 | </partialrelationinterpretation> | ||
44 | <partialrelationinterpretation> | ||
45 | <interpretationOf href="generation.logicproblem#//@relations.8"/> | ||
46 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.8/@parameters.0"/> | ||
47 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.8/@parameters.1"/> | ||
48 | </partialrelationinterpretation> | ||
49 | <partialrelationinterpretation> | ||
50 | <interpretationOf href="generation.logicproblem#//@relations.9"/> | ||
51 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.9/@parameters.0"/> | ||
52 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.9/@parameters.1"/> | ||
53 | </partialrelationinterpretation> | ||
54 | <partialrelationinterpretation> | ||
55 | <interpretationOf href="generation.logicproblem#//@relations.10"/> | ||
56 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.10/@parameters.0"/> | ||
57 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.10/@parameters.1"/> | ||
58 | </partialrelationinterpretation> | ||
59 | <partialrelationinterpretation> | ||
60 | <interpretationOf href="generation.logicproblem#//@relations.11"/> | ||
61 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.11/@parameters.0"/> | ||
62 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.11/@parameters.1"/> | ||
63 | </partialrelationinterpretation> | ||
64 | <partialrelationinterpretation> | ||
65 | <interpretationOf href="generation.logicproblem#//@relations.12"/> | ||
66 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.12/@parameters.0"/> | ||
67 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.12/@parameters.1"/> | ||
68 | </partialrelationinterpretation> | ||
69 | <partialrelationinterpretation> | ||
70 | <interpretationOf href="generation.logicproblem#//@relations.13"/> | ||
71 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.13/@parameters.0"/> | ||
72 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.13/@parameters.1"/> | ||
73 | </partialrelationinterpretation> | ||
74 | <partialrelationinterpretation> | ||
75 | <interpretationOf href="generation.logicproblem#//@relations.14"/> | ||
76 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.0"/> | ||
77 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.1"/> | ||
78 | </partialrelationinterpretation> | ||
79 | <partialrelationinterpretation> | ||
80 | <interpretationOf href="generation.logicproblem#//@relations.15"/> | ||
81 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.15/@parameters.0"/> | ||
82 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.15/@parameters.1"/> | ||
83 | </partialrelationinterpretation> | ||
84 | <partialrelationinterpretation> | ||
85 | <interpretationOf href="generation.logicproblem#//@relations.16"/> | ||
86 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.16/@parameters.0"/> | ||
87 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.16/@parameters.1"/> | ||
88 | </partialrelationinterpretation> | ||
89 | <partialrelationinterpretation> | ||
90 | <interpretationOf href="generation.logicproblem#//@relations.17"/> | ||
91 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.17/@parameters.0"/> | ||
92 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.17/@parameters.1"/> | ||
93 | </partialrelationinterpretation> | ||
94 | <partialrelationinterpretation> | ||
95 | <interpretationOf href="generation.logicproblem#//@relations.18"/> | ||
96 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.18/@parameters.0"/> | ||
97 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.18/@parameters.1"/> | ||
98 | </partialrelationinterpretation> | ||
99 | <partialrelationinterpretation> | ||
100 | <interpretationOf href="generation.logicproblem#//@relations.19"/> | ||
101 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.19/@parameters.0"/> | ||
102 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.19/@parameters.1"/> | ||
103 | </partialrelationinterpretation> | ||
104 | <partialrelationinterpretation> | ||
105 | <interpretationOf href="generation.logicproblem#//@relations.20"/> | ||
106 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.20/@parameters.0"/> | ||
107 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.20/@parameters.1"/> | ||
108 | </partialrelationinterpretation> | ||
109 | <partialrelationinterpretation> | ||
110 | <interpretationOf href="generation.logicproblem#//@relations.21"/> | ||
111 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.21/@parameters.0"/> | ||
112 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.21/@parameters.1"/> | ||
113 | </partialrelationinterpretation> | ||
114 | <partialrelationinterpretation> | ||
115 | <interpretationOf href="generation.logicproblem#//@relations.22"/> | ||
116 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.22/@parameters.0"/> | ||
117 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.22/@parameters.1"/> | ||
118 | </partialrelationinterpretation> | ||
119 | <partialrelationinterpretation> | ||
120 | <interpretationOf href="generation.logicproblem#//@relations.23"/> | ||
121 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.23/@parameters.0"/> | ||
122 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.23/@parameters.1"/> | ||
123 | </partialrelationinterpretation> | ||
124 | <partialrelationinterpretation> | ||
125 | <interpretationOf href="generation.logicproblem#//@relations.24"/> | ||
126 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.24/@parameters.0"/> | ||
127 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.24/@parameters.1"/> | ||
128 | </partialrelationinterpretation> | ||
129 | <partialrelationinterpretation> | ||
130 | <interpretationOf href="generation.logicproblem#//@relations.25"/> | ||
131 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.25/@parameters.0"/> | ||
132 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.25/@parameters.1"/> | ||
133 | </partialrelationinterpretation> | ||
134 | <partialrelationinterpretation> | ||
135 | <interpretationOf href="generation.logicproblem#//@relations.26"/> | ||
136 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.26/@parameters.0"/> | ||
137 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.26/@parameters.1"/> | ||
138 | </partialrelationinterpretation> | ||
139 | <partialrelationinterpretation> | ||
140 | <interpretationOf href="generation.logicproblem#//@relations.27"/> | ||
141 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.27/@parameters.0"/> | ||
142 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.27/@parameters.1"/> | ||
143 | </partialrelationinterpretation> | ||
144 | <partialrelationinterpretation> | ||
145 | <interpretationOf href="generation.logicproblem#//@relations.28"/> | ||
146 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.28/@parameters.0"/> | ||
147 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.28/@parameters.1"/> | ||
148 | </partialrelationinterpretation> | ||
149 | <partialrelationinterpretation> | ||
150 | <interpretationOf href="generation.logicproblem#//@relations.29"/> | ||
151 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.29/@parameters.0"/> | ||
152 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.29/@parameters.1"/> | ||
153 | </partialrelationinterpretation> | ||
154 | <partialrelationinterpretation> | ||
155 | <interpretationOf href="generation.logicproblem#//@relations.30"/> | ||
156 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.30/@parameters.0"/> | ||
157 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.30/@parameters.1"/> | ||
158 | </partialrelationinterpretation> | ||
159 | <partialrelationinterpretation> | ||
160 | <interpretationOf href="generation.logicproblem#//@relations.31"/> | ||
161 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.31/@parameters.0"/> | ||
162 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.31/@parameters.1"/> | ||
163 | </partialrelationinterpretation> | ||
164 | <partialrelationinterpretation> | ||
165 | <interpretationOf href="generation.logicproblem#//@relations.32"/> | ||
166 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.32/@parameters.0"/> | ||
167 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.32/@parameters.1"/> | ||
168 | </partialrelationinterpretation> | ||
169 | <partialrelationinterpretation> | ||
170 | <interpretationOf href="generation.logicproblem#//@relations.33"/> | ||
171 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.33/@parameters.0"/> | ||
172 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.33/@parameters.1"/> | ||
173 | </partialrelationinterpretation> | ||
174 | <partialrelationinterpretation> | ||
175 | <interpretationOf href="generation.logicproblem#//@relations.34"/> | ||
176 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.34/@parameters.0"/> | ||
177 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.34/@parameters.1"/> | ||
178 | </partialrelationinterpretation> | ||
179 | <partialrelationinterpretation> | ||
180 | <interpretationOf href="generation.logicproblem#//@relations.35"/> | ||
181 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.35/@parameters.0"/> | ||
182 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.35/@parameters.1"/> | ||
183 | </partialrelationinterpretation> | ||
184 | <partialrelationinterpretation> | ||
185 | <interpretationOf href="generation.logicproblem#//@relations.36"/> | ||
186 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.36/@parameters.0"/> | ||
187 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.36/@parameters.1"/> | ||
188 | </partialrelationinterpretation> | ||
189 | <partialrelationinterpretation> | ||
190 | <interpretationOf href="generation.logicproblem#//@relations.37"/> | ||
191 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.37/@parameters.0"/> | ||
192 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.37/@parameters.1"/> | ||
193 | </partialrelationinterpretation> | ||
194 | <partialrelationinterpretation> | ||
195 | <interpretationOf href="generation.logicproblem#//@relations.38"/> | ||
196 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.38/@parameters.0"/> | ||
197 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.38/@parameters.1"/> | ||
198 | </partialrelationinterpretation> | ||
199 | <partialrelationinterpretation> | ||
200 | <interpretationOf href="generation.logicproblem#//@relations.39"/> | ||
201 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.39/@parameters.0"/> | ||
202 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.39/@parameters.1"/> | ||
203 | </partialrelationinterpretation> | ||
204 | <partialrelationinterpretation> | ||
205 | <interpretationOf href="generation.logicproblem#//@relations.40"/> | ||
206 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.40/@parameters.0"/> | ||
207 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.40/@parameters.1"/> | ||
208 | </partialrelationinterpretation> | ||
209 | <partialrelationinterpretation> | ||
210 | <interpretationOf href="generation.logicproblem#//@relations.41"/> | ||
211 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.41/@parameters.0"/> | ||
212 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.41/@parameters.1"/> | ||
213 | </partialrelationinterpretation> | ||
214 | <partialrelationinterpretation> | ||
215 | <interpretationOf href="generation.logicproblem#//@relations.42"/> | ||
216 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.42/@parameters.0"/> | ||
217 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.42/@parameters.1"/> | ||
218 | </partialrelationinterpretation> | ||
219 | <partialrelationinterpretation> | ||
220 | <interpretationOf href="generation.logicproblem#//@relations.43"/> | ||
221 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.43/@parameters.0"/> | ||
222 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.43/@parameters.1"/> | ||
223 | </partialrelationinterpretation> | ||
224 | <partialrelationinterpretation> | ||
225 | <interpretationOf href="generation.logicproblem#//@relations.44"/> | ||
226 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.44/@parameters.0"/> | ||
227 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.44/@parameters.1"/> | ||
228 | </partialrelationinterpretation> | ||
229 | <partialrelationinterpretation> | ||
230 | <interpretationOf href="generation.logicproblem#//@relations.45"/> | ||
231 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.45/@parameters.0"/> | ||
232 | <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.45/@parameters.1"/> | ||
233 | </partialrelationinterpretation> | ||
234 | <partialrelationinterpretation> | ||
235 | <interpretationOf href="generation.logicproblem#//@relations.46"/> | ||
236 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.46/@parameters.0"/> | ||
237 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.46/@parameters.1"/> | ||
238 | </partialrelationinterpretation> | ||
239 | <partialrelationinterpretation> | ||
240 | <interpretationOf href="generation.logicproblem#//@relations.47"/> | ||
241 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.47/@parameters.0"/> | ||
242 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.47/@parameters.1"/> | ||
243 | </partialrelationinterpretation> | ||
244 | <partialrelationinterpretation> | ||
245 | <interpretationOf href="generation.logicproblem#//@relations.48"/> | ||
246 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.48/@parameters.0"/> | ||
247 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.48/@parameters.1"/> | ||
248 | </partialrelationinterpretation> | ||
249 | <partialrelationinterpretation> | ||
250 | <interpretationOf href="generation.logicproblem#//@relations.49"/> | ||
251 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.49/@parameters.0"/> | ||
252 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.49/@parameters.1"/> | ||
253 | </partialrelationinterpretation> | ||
254 | <partialrelationinterpretation> | ||
255 | <interpretationOf href="generation.logicproblem#//@relations.50"/> | ||
256 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.50/@parameters.0"/> | ||
257 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.50/@parameters.1"/> | ||
258 | </partialrelationinterpretation> | ||
259 | <partialrelationinterpretation> | ||
260 | <interpretationOf href="generation.logicproblem#//@relations.51"/> | ||
261 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.51/@parameters.0"/> | ||
262 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.51/@parameters.1"/> | ||
263 | </partialrelationinterpretation> | ||
264 | <partialrelationinterpretation> | ||
265 | <interpretationOf href="generation.logicproblem#//@relations.52"/> | ||
266 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.52/@parameters.0"/> | ||
267 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.52/@parameters.1"/> | ||
268 | </partialrelationinterpretation> | ||
269 | <partialrelationinterpretation> | ||
270 | <interpretationOf href="generation.logicproblem#//@relations.53"/> | ||
271 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.53/@parameters.0"/> | ||
272 | <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.53/@parameters.1"/> | ||
273 | </partialrelationinterpretation> | ||
274 | <partialrelationinterpretation> | ||
275 | <interpretationOf href="generation.logicproblem#//@relations.54"/> | ||
276 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.54/@parameters.0"/> | ||
277 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.54/@parameters.1"/> | ||
278 | </partialrelationinterpretation> | ||
279 | <partialrelationinterpretation> | ||
280 | <interpretationOf href="generation.logicproblem#//@relations.55"/> | ||
281 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.9"> | ||
282 | <param1 href="generation.logicproblem#//@elements.0"/> | ||
283 | </relationlinks> | ||
284 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.55/@parameters.0"/> | ||
285 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.55/@parameters.1"/> | ||
286 | </partialrelationinterpretation> | ||
287 | <partialrelationinterpretation> | ||
288 | <interpretationOf href="generation.logicproblem#//@relations.56"/> | ||
289 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.8"> | ||
290 | <param1 href="generation.logicproblem#//@elements.0"/> | ||
291 | </relationlinks> | ||
292 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.56/@parameters.0"/> | ||
293 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.56/@parameters.1"/> | ||
294 | </partialrelationinterpretation> | ||
295 | <partialrelationinterpretation> | ||
296 | <interpretationOf href="generation.logicproblem#//@relations.57"/> | ||
297 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.7"> | ||
298 | <param1 href="generation.logicproblem#//@elements.0"/> | ||
299 | </relationlinks> | ||
300 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.57/@parameters.0"/> | ||
301 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.57/@parameters.1"/> | ||
302 | </partialrelationinterpretation> | ||
303 | <partialrelationinterpretation> | ||
304 | <interpretationOf href="generation.logicproblem#//@relations.58"/> | ||
305 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.58/@parameters.0"/> | ||
306 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.58/@parameters.1"/> | ||
307 | </partialrelationinterpretation> | ||
308 | <partialrelationinterpretation> | ||
309 | <interpretationOf href="generation.logicproblem#//@relations.59"/> | ||
310 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.59/@parameters.0"/> | ||
311 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.59/@parameters.1"/> | ||
312 | </partialrelationinterpretation> | ||
313 | <partialrelationinterpretation> | ||
314 | <interpretationOf href="generation.logicproblem#//@relations.60"/> | ||
315 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.60/@parameters.0"/> | ||
316 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.60/@parameters.1"/> | ||
317 | </partialrelationinterpretation> | ||
318 | <partialrelationinterpretation> | ||
319 | <interpretationOf href="generation.logicproblem#//@relations.61"/> | ||
320 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.61/@parameters.0"/> | ||
321 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.61/@parameters.1"/> | ||
322 | </partialrelationinterpretation> | ||
323 | <partialrelationinterpretation> | ||
324 | <interpretationOf href="generation.logicproblem#//@relations.62"/> | ||
325 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.62/@parameters.0"/> | ||
326 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.62/@parameters.1"/> | ||
327 | </partialrelationinterpretation> | ||
328 | <partialrelationinterpretation> | ||
329 | <interpretationOf href="generation.logicproblem#//@relations.63"/> | ||
330 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.63/@parameters.0"/> | ||
331 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.63/@parameters.1"/> | ||
332 | </partialrelationinterpretation> | ||
333 | <partialrelationinterpretation> | ||
334 | <interpretationOf href="generation.logicproblem#//@relations.64"/> | ||
335 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.64/@parameters.0"/> | ||
336 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.64/@parameters.1"/> | ||
337 | </partialrelationinterpretation> | ||
338 | <partialrelationinterpretation> | ||
339 | <interpretationOf href="generation.logicproblem#//@relations.65"/> | ||
340 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.65/@parameters.0"/> | ||
341 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.65/@parameters.1"/> | ||
342 | </partialrelationinterpretation> | ||
343 | <partialrelationinterpretation> | ||
344 | <interpretationOf href="generation.logicproblem#//@relations.66"/> | ||
345 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.66/@parameters.0"/> | ||
346 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.66/@parameters.1"/> | ||
347 | </partialrelationinterpretation> | ||
348 | <partialrelationinterpretation> | ||
349 | <interpretationOf href="generation.logicproblem#//@relations.67"/> | ||
350 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.67/@parameters.0"/> | ||
351 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.67/@parameters.1"/> | ||
352 | </partialrelationinterpretation> | ||
353 | <partialrelationinterpretation> | ||
354 | <interpretationOf href="generation.logicproblem#//@relations.68"/> | ||
355 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.68/@parameters.0"/> | ||
356 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.68/@parameters.1"/> | ||
357 | </partialrelationinterpretation> | ||
358 | <partialrelationinterpretation> | ||
359 | <interpretationOf href="generation.logicproblem#//@relations.69"/> | ||
360 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.69/@parameters.0"/> | ||
361 | <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.69/@parameters.1"/> | ||
362 | </partialrelationinterpretation> | ||
363 | <partialrelationinterpretation> | ||
364 | <interpretationOf href="generation.logicproblem#//@relations.70"/> | ||
365 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.70/@parameters.0"/> | ||
366 | <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.70/@parameters.1"/> | ||
367 | </partialrelationinterpretation> | ||
368 | <partialrelationinterpretation> | ||
369 | <interpretationOf href="generation.logicproblem#//@relations.71"/> | ||
370 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.71/@parameters.0"/> | ||
371 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.71/@parameters.1"/> | ||
372 | </partialrelationinterpretation> | ||
373 | <partialrelationinterpretation> | ||
374 | <interpretationOf href="generation.logicproblem#//@relations.72"/> | ||
375 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.72/@parameters.0"/> | ||
376 | <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.72/@parameters.1"/> | ||
377 | </partialrelationinterpretation> | ||
378 | <partialrelationinterpretation> | ||
379 | <interpretationOf href="generation.logicproblem#//@relations.73"/> | ||
380 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.73/@parameters.0"/> | ||
381 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.73/@parameters.1"/> | ||
382 | </partialrelationinterpretation> | ||
383 | <partialrelationinterpretation> | ||
384 | <interpretationOf href="generation.logicproblem#//@relations.74"/> | ||
385 | <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.74/@parameters.0"/> | ||
386 | <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.74/@parameters.1"/> | ||
387 | </partialrelationinterpretation> | ||
388 | <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/> | ||
389 | <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/> | ||
390 | <newElements xsi:type="partialinterpretation:IntegerElement" name="-1" valueSet="true" value="-1"/> | ||
391 | <newElements xsi:type="partialinterpretation:IntegerElement" name="0" valueSet="true"/> | ||
392 | <newElements xsi:type="partialinterpretation:IntegerElement" name="1" valueSet="true" value="1"/> | ||
393 | <newElements xsi:type="partialinterpretation:StringElement" name=""A"" valueSet="true" value="A"/> | ||
394 | <newElements xsi:type="partialinterpretation:StringElement" name=""B"" valueSet="true" value="B"/> | ||
395 | <newElements xsi:type="partialinterpretation:StringElement" name=""nsPrefix"" valueSet="true" value="nsPrefix"/> | ||
396 | <newElements xsi:type="partialinterpretation:StringElement" name=""nsUri"" valueSet="true" value="nsUri"/> | ||
397 | <newElements xsi:type="partialinterpretation:StringElement" name=""packageName"" valueSet="true" value="packageName"/> | ||
398 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/> | ||
399 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@newElements.2 //@newElements.3 //@newElements.4 //@openWorldElements.0"/> | ||
400 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/> | ||
401 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@newElements.5 //@newElements.6 //@newElements.7 //@newElements.8 //@newElements.9 //@openWorldElements.2"/> | ||
402 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
403 | <interpretationOf href="generation.logicproblem#//@types.0"/> | ||
404 | </partialtypeinterpratation> | ||
405 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.11 //@partialtypeinterpratation.23"> | ||
406 | <interpretationOf href="generation.logicproblem#//@types.1"/> | ||
407 | </partialtypeinterpratation> | ||
408 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
409 | <interpretationOf href="generation.logicproblem#//@types.2"/> | ||
410 | </partialtypeinterpratation> | ||
411 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
412 | <interpretationOf href="generation.logicproblem#//@types.3"/> | ||
413 | </partialtypeinterpratation> | ||
414 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
415 | <interpretationOf href="generation.logicproblem#//@types.4"/> | ||
416 | </partialtypeinterpratation> | ||
417 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
418 | <interpretationOf href="generation.logicproblem#//@types.5"/> | ||
419 | </partialtypeinterpratation> | ||
420 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
421 | <interpretationOf href="generation.logicproblem#//@types.6"/> | ||
422 | </partialtypeinterpratation> | ||
423 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7"> | ||
424 | <elements href="generation.logicproblem#//@elements.0"/> | ||
425 | <interpretationOf href="generation.logicproblem#//@types.7"/> | ||
426 | </partialtypeinterpratation> | ||
427 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.11"> | ||
428 | <elements href="generation.logicproblem#//@elements.0"/> | ||
429 | <interpretationOf href="generation.logicproblem#//@types.8"/> | ||
430 | </partialtypeinterpratation> | ||
431 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9"> | ||
432 | <interpretationOf href="generation.logicproblem#//@types.9"/> | ||
433 | </partialtypeinterpratation> | ||
434 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
435 | <interpretationOf href="generation.logicproblem#//@types.10"/> | ||
436 | </partialtypeinterpratation> | ||
437 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11"> | ||
438 | <elements href="generation.logicproblem#//@elements.0"/> | ||
439 | <interpretationOf href="generation.logicproblem#//@types.11"/> | ||
440 | </partialtypeinterpratation> | ||
441 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
442 | <interpretationOf href="generation.logicproblem#//@types.12"/> | ||
443 | </partialtypeinterpratation> | ||
444 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
445 | <interpretationOf href="generation.logicproblem#//@types.13"/> | ||
446 | </partialtypeinterpratation> | ||
447 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
448 | <interpretationOf href="generation.logicproblem#//@types.14"/> | ||
449 | </partialtypeinterpratation> | ||
450 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
451 | <interpretationOf href="generation.logicproblem#//@types.15"/> | ||
452 | </partialtypeinterpratation> | ||
453 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16"> | ||
454 | <interpretationOf href="generation.logicproblem#//@types.16"/> | ||
455 | </partialtypeinterpratation> | ||
456 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17"> | ||
457 | <interpretationOf href="generation.logicproblem#//@types.17"/> | ||
458 | </partialtypeinterpratation> | ||
459 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
460 | <interpretationOf href="generation.logicproblem#//@types.18"/> | ||
461 | </partialtypeinterpratation> | ||
462 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.11"> | ||
463 | <interpretationOf href="generation.logicproblem#//@types.20"/> | ||
464 | </partialtypeinterpratation> | ||
465 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.23"> | ||
466 | <interpretationOf href="generation.logicproblem#//@types.22"/> | ||
467 | </partialtypeinterpratation> | ||
468 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> | ||
469 | <interpretationOf href="generation.logicproblem#//@types.24"/> | ||
470 | </partialtypeinterpratation> | ||
471 | <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> | ||
472 | <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> | ||
473 | <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> | ||
474 | <openWorldElements name="New Objects"/> | ||
475 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/> | ||
476 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/> | ||
477 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/> | ||
478 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/> | ||
479 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/> | ||
480 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/> | ||
481 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/> | ||
482 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/> | ||
483 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/> | ||
484 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/> | ||
485 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/> | ||
486 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/> | ||
487 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/> | ||
488 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/> | ||
489 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/> | ||
490 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/> | ||
491 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/> | ||
492 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/> | ||
493 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/> | ||
494 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/> | ||
495 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/> | ||
496 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/> | ||
497 | </partialinterpretation:PartialInterpretation> | ||
diff --git a/Tests/Ecore-Plugin/outputs/debug/problem.als b/Tests/Ecore-Plugin/outputs/debug/problem.als new file mode 100644 index 00000000..23498c39 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/debug/problem.als | |||
@@ -0,0 +1,401 @@ | |||
1 | enum util'boolean { | ||
2 | util'boolean'true, util'boolean'false | ||
3 | } | ||
4 | one sig util'language { | ||
5 | util'root : one type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart))))))))))))))))))))))), | ||
6 | util'contains : (type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart)))))))))))))))))))))))) lone->set (type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart)))))))))))))))))))))))) | ||
7 | } | ||
8 | abstract sig util'Object { | ||
9 | } | ||
10 | sig type'EAttribute'class in type'EStructuralFeature'class { | ||
11 | eAttributeType'reference'EAttribute : one type'EDataType'class, | ||
12 | iD'attribute'EAttribute : lone util'boolean | ||
13 | } | ||
14 | sig type'EAnnotation'class in type'EModelElement'class + type'EModelElement'class'UndefinedPart { | ||
15 | details'reference'EAnnotation : set type'EStringToStringMapEntry'class, | ||
16 | eModelElement'reference'EAnnotation : lone type'EModelElement'class, | ||
17 | contents'reference'EAnnotation : set type'EObject'class, | ||
18 | references'reference'EAnnotation : set type'EObject'class, | ||
19 | source'attribute'EAnnotation : lone String | ||
20 | } | ||
21 | sig type'EClass'class in type'EClassifier'class { | ||
22 | eSuperTypes'reference'EClass : set type'EClass'class, | ||
23 | eOperations'reference'EClass : set type'EOperation'class, | ||
24 | eAllAttributes'reference'EClass : set type'EAttribute'class, | ||
25 | eAllReferences'reference'EClass : set type'EReference'class, | ||
26 | eReferences'reference'EClass : set type'EReference'class, | ||
27 | eAttributes'reference'EClass : set type'EAttribute'class, | ||
28 | eAllContainments'reference'EClass : set type'EReference'class, | ||
29 | eAllOperations'reference'EClass : set type'EOperation'class, | ||
30 | eAllStructuralFeatures'reference'EClass : set type'EStructuralFeature'class, | ||
31 | eAllSuperTypes'reference'EClass : set type'EClass'class, | ||
32 | eIDAttribute'reference'EClass : lone type'EAttribute'class, | ||
33 | eStructuralFeatures'reference'EClass : set type'EStructuralFeature'class, | ||
34 | eGenericSuperTypes'reference'EClass : set type'EGenericType'class, | ||
35 | eAllGenericSuperTypes'reference'EClass : set type'EGenericType'class, | ||
36 | abstract'attribute'EClass : lone util'boolean, | ||
37 | interface'attribute'EClass : lone util'boolean | ||
38 | } | ||
39 | sig type'EClassifier'class in type'ENamedElement'class + type'ENamedElement'class'UndefinedPart { | ||
40 | ePackage'reference'EClassifier : lone type'EPackage'class, | ||
41 | eTypeParameters'reference'EClassifier : set type'ETypeParameter'class, | ||
42 | instanceClassName'attribute'EClassifier : lone String, | ||
43 | instanceTypeName'attribute'EClassifier : lone String | ||
44 | } | ||
45 | sig type'EDataType'class in type'EClassifier'class { | ||
46 | serializable'attribute'EDataType : lone util'boolean | ||
47 | } | ||
48 | sig type'EEnum'class in type'EDataType'class { | ||
49 | eLiterals'reference'EEnum : set type'EEnumLiteral'class | ||
50 | } | ||
51 | sig type'EEnumLiteral'class in type'ENamedElement'class + type'ENamedElement'class'UndefinedPart { | ||
52 | eEnum'reference'EEnumLiteral : lone type'EEnum'class, | ||
53 | value'attribute'EEnumLiteral : lone Int, | ||
54 | literal'attribute'EEnumLiteral : lone String | ||
55 | } | ||
56 | sig type'EModelElement'class in util'Object { | ||
57 | eAnnotations'reference'EModelElement : set type'EAnnotation'class | ||
58 | } | ||
59 | sig type'ENamedElement'class in type'EModelElement'class { | ||
60 | name'attribute'ENamedElement : lone String | ||
61 | } | ||
62 | sig type'EObject'class in util'Object { | ||
63 | } | ||
64 | sig type'EOperation'class in type'ETypedElement'class { | ||
65 | eContainingClass'reference'EOperation : lone type'EClass'class, | ||
66 | eTypeParameters'reference'EOperation : set type'ETypeParameter'class, | ||
67 | eParameters'reference'EOperation : set type'EParameter'class, | ||
68 | eExceptions'reference'EOperation : set type'EClassifier'class, | ||
69 | eGenericExceptions'reference'EOperation : set type'EGenericType'class | ||
70 | } | ||
71 | sig type'EPackage'class in type'ENamedElement'class { | ||
72 | eClassifiers'reference'EPackage : set type'EClassifier'class, | ||
73 | eSubpackages'reference'EPackage : set type'EPackage'class, | ||
74 | eSuperPackage'reference'EPackage : lone type'EPackage'class, | ||
75 | nsURI'attribute'EPackage : lone String, | ||
76 | nsPrefix'attribute'EPackage : lone String | ||
77 | } | ||
78 | sig type'EParameter'class in type'ETypedElement'class { | ||
79 | eOperation'reference'EParameter : lone type'EOperation'class | ||
80 | } | ||
81 | sig type'EReference'class in type'EStructuralFeature'class { | ||
82 | eOpposite'reference'EReference : lone type'EReference'class, | ||
83 | eReferenceType'reference'EReference : one type'EClass'class, | ||
84 | eKeys'reference'EReference : set type'EAttribute'class, | ||
85 | containment'attribute'EReference : lone util'boolean, | ||
86 | container'attribute'EReference : lone util'boolean, | ||
87 | resolveProxies'attribute'EReference : lone util'boolean | ||
88 | } | ||
89 | sig type'EStructuralFeature'class in type'ETypedElement'class { | ||
90 | eContainingClass'reference'EStructuralFeature : lone type'EClass'class, | ||
91 | changeable'attribute'EStructuralFeature : lone util'boolean, | ||
92 | volatile'attribute'EStructuralFeature : lone util'boolean, | ||
93 | transient'attribute'EStructuralFeature : lone util'boolean, | ||
94 | defaultValueLiteral'attribute'EStructuralFeature : lone String, | ||
95 | unsettable'attribute'EStructuralFeature : lone util'boolean, | ||
96 | derived'attribute'EStructuralFeature : lone util'boolean | ||
97 | } | ||
98 | sig type'ETypedElement'class in type'ENamedElement'class + type'ENamedElement'class'UndefinedPart { | ||
99 | eType'reference'ETypedElement : lone type'EClassifier'class, | ||
100 | eGenericType'reference'ETypedElement : lone type'EGenericType'class, | ||
101 | ordered'attribute'ETypedElement : lone util'boolean, | ||
102 | unique'attribute'ETypedElement : lone util'boolean, | ||
103 | lowerBound'attribute'ETypedElement : lone Int, | ||
104 | upperBound'attribute'ETypedElement : lone Int, | ||
105 | many'attribute'ETypedElement : lone util'boolean, | ||
106 | required'attribute'ETypedElement : lone util'boolean | ||
107 | } | ||
108 | sig type'EStringToStringMapEntry'class in util'Object { | ||
109 | key'attribute'EStringToStringMapEntry : lone String, | ||
110 | value'attribute'EStringToStringMapEntry : lone String | ||
111 | } | ||
112 | sig type'EGenericType'class in util'Object { | ||
113 | eUpperBound'reference'EGenericType : lone type'EGenericType'class, | ||
114 | eTypeArguments'reference'EGenericType : set type'EGenericType'class, | ||
115 | eRawType'reference'EGenericType : one type'EClassifier'class, | ||
116 | eLowerBound'reference'EGenericType : lone type'EGenericType'class, | ||
117 | eTypeParameter'reference'EGenericType : lone type'ETypeParameter'class, | ||
118 | eClassifier'reference'EGenericType : lone type'EClassifier'class | ||
119 | } | ||
120 | sig type'ETypeParameter'class in type'ENamedElement'class + type'ENamedElement'class'UndefinedPart { | ||
121 | eBounds'reference'ETypeParameter : set type'EGenericType'class | ||
122 | } | ||
123 | sig type'EModelElement'class'DefinedPart in type'EModelElement'class { | ||
124 | } | ||
125 | sig type'EModelElement'class'UndefinedPart in type'EModelElement'class { | ||
126 | } | ||
127 | sig type'ENamedElement'class'DefinedPart in type'ENamedElement'class + type'EModelElement'class'DefinedPart { | ||
128 | } | ||
129 | sig type'ENamedElement'class'UndefinedPart in type'ENamedElement'class + type'EModelElement'class'UndefinedPart { | ||
130 | } | ||
131 | sig type'EPackage'class'DefinedPart in type'EPackage'class + type'ENamedElement'class'DefinedPart { | ||
132 | } | ||
133 | sig type'EPackage'class'UndefinedPart in type'EPackage'class + type'ENamedElement'class'UndefinedPart { | ||
134 | } | ||
135 | one sig element'o'1 in type'EModelElement'class'DefinedPart { | ||
136 | } | ||
137 | fact typedefinition'EModelElement'class'DefinedPart { | ||
138 | type'EModelElement'class'DefinedPart = element'o'1 | ||
139 | } | ||
140 | fact typedefinition'ENamedElement'class'DefinedPart { | ||
141 | type'ENamedElement'class'DefinedPart = element'o'1 | ||
142 | } | ||
143 | fact typedefinition'EPackage'class'DefinedPart { | ||
144 | type'EPackage'class'DefinedPart = element'o'1 | ||
145 | } | ||
146 | fact abstract'EAnnotation'class { | ||
147 | type'EAnnotation'class = type'EModelElement'class & type'EModelElement'class'UndefinedPart | ||
148 | } | ||
149 | fact abstract'EClassifier'class { | ||
150 | type'EClassifier'class = type'ENamedElement'class & type'ENamedElement'class'UndefinedPart | ||
151 | } | ||
152 | fact abstract'EEnumLiteral'class { | ||
153 | type'EEnumLiteral'class = type'ENamedElement'class & type'ENamedElement'class'UndefinedPart | ||
154 | } | ||
155 | fact abstract'ETypedElement'class { | ||
156 | type'ETypedElement'class = type'ENamedElement'class & type'ENamedElement'class'UndefinedPart | ||
157 | } | ||
158 | fact abstract'ETypeParameter'class { | ||
159 | type'ETypeParameter'class = type'ENamedElement'class & type'ENamedElement'class'UndefinedPart | ||
160 | } | ||
161 | fact abstract'ENamedElement'class'DefinedPart { | ||
162 | type'ENamedElement'class'DefinedPart = type'ENamedElement'class & type'EModelElement'class'DefinedPart | ||
163 | } | ||
164 | fact abstract'ENamedElement'class'UndefinedPart { | ||
165 | type'ENamedElement'class'UndefinedPart = type'ENamedElement'class & type'EModelElement'class'UndefinedPart | ||
166 | } | ||
167 | fact abstract'EPackage'class'DefinedPart { | ||
168 | type'EPackage'class'DefinedPart = type'EPackage'class & type'ENamedElement'class'DefinedPart | ||
169 | } | ||
170 | fact abstract'EPackage'class'UndefinedPart { | ||
171 | type'EPackage'class'UndefinedPart = type'EPackage'class & type'ENamedElement'class'UndefinedPart | ||
172 | } | ||
173 | fact abstract'EClassifier'class { | ||
174 | type'EClassifier'class = type'EClass'class + type'EDataType'class | ||
175 | } | ||
176 | fact abstract'EModelElement'class { | ||
177 | type'EModelElement'class = type'EAnnotation'class + (type'ENamedElement'class + (type'EModelElement'class'DefinedPart + type'EModelElement'class'UndefinedPart)) | ||
178 | } | ||
179 | fact abstract'ENamedElement'class { | ||
180 | type'ENamedElement'class = type'EClassifier'class + (type'EEnumLiteral'class + (type'EPackage'class + (type'ETypedElement'class + (type'ETypeParameter'class + (type'ENamedElement'class'DefinedPart + type'ENamedElement'class'UndefinedPart))))) | ||
181 | } | ||
182 | fact abstract'EPackage'class { | ||
183 | type'EPackage'class = type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart | ||
184 | } | ||
185 | fact abstract'EStructuralFeature'class { | ||
186 | type'EStructuralFeature'class = type'EAttribute'class + type'EReference'class | ||
187 | } | ||
188 | fact abstract'ETypedElement'class { | ||
189 | type'ETypedElement'class = type'EOperation'class + (type'EParameter'class + type'EStructuralFeature'class) | ||
190 | } | ||
191 | fact abstract'EModelElement'class'DefinedPart { | ||
192 | type'EModelElement'class'DefinedPart = type'ENamedElement'class'DefinedPart | ||
193 | } | ||
194 | fact abstract'EModelElement'class'UndefinedPart { | ||
195 | type'EModelElement'class'UndefinedPart = type'EAnnotation'class + type'ENamedElement'class'UndefinedPart | ||
196 | } | ||
197 | fact abstract'ENamedElement'class'DefinedPart { | ||
198 | type'ENamedElement'class'DefinedPart = type'EPackage'class'DefinedPart | ||
199 | } | ||
200 | fact abstract'ENamedElement'class'UndefinedPart { | ||
201 | type'ENamedElement'class'UndefinedPart = type'EClassifier'class + (type'EEnumLiteral'class + (type'EPackage'class'UndefinedPart + (type'ETypedElement'class + type'ETypeParameter'class))) | ||
202 | } | ||
203 | fact ObjectTypeDefinition { | ||
204 | util'Object = type'EModelElement'class + (type'EObject'class + (type'EStringToStringMapEntry'class + type'EGenericType'class)) | ||
205 | } | ||
206 | fact common'types'EObject'class'EModelElement'class { | ||
207 | type'EObject'class & type'EModelElement'class = none | ||
208 | } | ||
209 | fact common'types'EStringToStringMapEntry'class'EModelElement'class { | ||
210 | type'EStringToStringMapEntry'class & type'EModelElement'class = none | ||
211 | } | ||
212 | fact common'types'EStringToStringMapEntry'class'EObject'class { | ||
213 | type'EStringToStringMapEntry'class & type'EObject'class = none | ||
214 | } | ||
215 | fact common'types'EGenericType'class'EModelElement'class { | ||
216 | type'EGenericType'class & type'EModelElement'class = none | ||
217 | } | ||
218 | fact common'types'EGenericType'class'EObject'class { | ||
219 | type'EGenericType'class & type'EObject'class = none | ||
220 | } | ||
221 | fact common'types'EGenericType'class'EStringToStringMapEntry'class { | ||
222 | type'EGenericType'class & type'EStringToStringMapEntry'class = none | ||
223 | } | ||
224 | fact common'types'EDataType'class'EClass'class { | ||
225 | type'EDataType'class & type'EClass'class = none | ||
226 | } | ||
227 | fact common'types'ENamedElement'class'EAnnotation'class { | ||
228 | type'ENamedElement'class & type'EAnnotation'class = none | ||
229 | } | ||
230 | fact common'types'EModelElement'class'DefinedPart'EAnnotation'class { | ||
231 | type'EModelElement'class'DefinedPart & type'EAnnotation'class = none | ||
232 | } | ||
233 | fact common'types'EModelElement'class'DefinedPart'ENamedElement'class { | ||
234 | type'EModelElement'class'DefinedPart & type'ENamedElement'class = type'ENamedElement'class'DefinedPart | ||
235 | } | ||
236 | fact common'types'EModelElement'class'UndefinedPart'EAnnotation'class { | ||
237 | type'EModelElement'class'UndefinedPart & type'EAnnotation'class = type'EAnnotation'class | ||
238 | } | ||
239 | fact common'types'EModelElement'class'UndefinedPart'ENamedElement'class { | ||
240 | type'EModelElement'class'UndefinedPart & type'ENamedElement'class = type'ENamedElement'class'UndefinedPart | ||
241 | } | ||
242 | fact common'types'EModelElement'class'UndefinedPart'EModelElement'class'DefinedPart { | ||
243 | type'EModelElement'class'UndefinedPart & type'EModelElement'class'DefinedPart = none | ||
244 | } | ||
245 | fact common'types'EEnumLiteral'class'EClassifier'class { | ||
246 | type'EEnumLiteral'class & type'EClassifier'class = none | ||
247 | } | ||
248 | fact common'types'EPackage'class'EClassifier'class { | ||
249 | type'EPackage'class & type'EClassifier'class = none | ||
250 | } | ||
251 | fact common'types'EPackage'class'EEnumLiteral'class { | ||
252 | type'EPackage'class & type'EEnumLiteral'class = none | ||
253 | } | ||
254 | fact common'types'ETypedElement'class'EClassifier'class { | ||
255 | type'ETypedElement'class & type'EClassifier'class = none | ||
256 | } | ||
257 | fact common'types'ETypedElement'class'EEnumLiteral'class { | ||
258 | type'ETypedElement'class & type'EEnumLiteral'class = none | ||
259 | } | ||
260 | fact common'types'ETypedElement'class'EPackage'class { | ||
261 | type'ETypedElement'class & type'EPackage'class = none | ||
262 | } | ||
263 | fact common'types'ETypeParameter'class'EClassifier'class { | ||
264 | type'ETypeParameter'class & type'EClassifier'class = none | ||
265 | } | ||
266 | fact common'types'ETypeParameter'class'EEnumLiteral'class { | ||
267 | type'ETypeParameter'class & type'EEnumLiteral'class = none | ||
268 | } | ||
269 | fact common'types'ETypeParameter'class'EPackage'class { | ||
270 | type'ETypeParameter'class & type'EPackage'class = none | ||
271 | } | ||
272 | fact common'types'ETypeParameter'class'ETypedElement'class { | ||
273 | type'ETypeParameter'class & type'ETypedElement'class = none | ||
274 | } | ||
275 | fact common'types'ENamedElement'class'DefinedPart'EClassifier'class { | ||
276 | type'ENamedElement'class'DefinedPart & type'EClassifier'class = none | ||
277 | } | ||
278 | fact common'types'ENamedElement'class'DefinedPart'EEnumLiteral'class { | ||
279 | type'ENamedElement'class'DefinedPart & type'EEnumLiteral'class = none | ||
280 | } | ||
281 | fact common'types'ENamedElement'class'DefinedPart'EPackage'class { | ||
282 | type'ENamedElement'class'DefinedPart & type'EPackage'class = type'EPackage'class'DefinedPart | ||
283 | } | ||
284 | fact common'types'ENamedElement'class'DefinedPart'ETypedElement'class { | ||
285 | type'ENamedElement'class'DefinedPart & type'ETypedElement'class = none | ||
286 | } | ||
287 | fact common'types'ENamedElement'class'DefinedPart'ETypeParameter'class { | ||
288 | type'ENamedElement'class'DefinedPart & type'ETypeParameter'class = none | ||
289 | } | ||
290 | fact common'types'ENamedElement'class'UndefinedPart'EClassifier'class { | ||
291 | type'ENamedElement'class'UndefinedPart & type'EClassifier'class = type'EClassifier'class | ||
292 | } | ||
293 | fact common'types'ENamedElement'class'UndefinedPart'EEnumLiteral'class { | ||
294 | type'ENamedElement'class'UndefinedPart & type'EEnumLiteral'class = type'EEnumLiteral'class | ||
295 | } | ||
296 | fact common'types'ENamedElement'class'UndefinedPart'EPackage'class { | ||
297 | type'ENamedElement'class'UndefinedPart & type'EPackage'class = type'EPackage'class'UndefinedPart | ||
298 | } | ||
299 | fact common'types'ENamedElement'class'UndefinedPart'ETypedElement'class { | ||
300 | type'ENamedElement'class'UndefinedPart & type'ETypedElement'class = type'ETypedElement'class | ||
301 | } | ||
302 | fact common'types'ENamedElement'class'UndefinedPart'ETypeParameter'class { | ||
303 | type'ENamedElement'class'UndefinedPart & type'ETypeParameter'class = type'ETypeParameter'class | ||
304 | } | ||
305 | fact common'types'ENamedElement'class'UndefinedPart'ENamedElement'class'DefinedPart { | ||
306 | type'ENamedElement'class'UndefinedPart & type'ENamedElement'class'DefinedPart = none | ||
307 | } | ||
308 | fact common'types'EPackage'class'UndefinedPart'EPackage'class'DefinedPart { | ||
309 | type'EPackage'class'UndefinedPart & type'EPackage'class'DefinedPart = none | ||
310 | } | ||
311 | fact common'types'EReference'class'EAttribute'class { | ||
312 | type'EReference'class & type'EAttribute'class = none | ||
313 | } | ||
314 | fact common'types'EParameter'class'EOperation'class { | ||
315 | type'EParameter'class & type'EOperation'class = none | ||
316 | } | ||
317 | fact common'types'EStructuralFeature'class'EOperation'class { | ||
318 | type'EStructuralFeature'class & type'EOperation'class = none | ||
319 | } | ||
320 | fact common'types'EStructuralFeature'class'EParameter'class { | ||
321 | type'EStructuralFeature'class & type'EParameter'class = none | ||
322 | } | ||
323 | fact common'types'ENamedElement'class'UndefinedPart'EAnnotation'class { | ||
324 | type'ENamedElement'class'UndefinedPart & type'EAnnotation'class = none | ||
325 | } | ||
326 | fact common'types'EEnumLiteral'class'EClassifier'class { | ||
327 | type'EEnumLiteral'class & type'EClassifier'class = none | ||
328 | } | ||
329 | fact common'types'EPackage'class'UndefinedPart'EClassifier'class { | ||
330 | type'EPackage'class'UndefinedPart & type'EClassifier'class = none | ||
331 | } | ||
332 | fact common'types'EPackage'class'UndefinedPart'EEnumLiteral'class { | ||
333 | type'EPackage'class'UndefinedPart & type'EEnumLiteral'class = none | ||
334 | } | ||
335 | fact common'types'ETypedElement'class'EClassifier'class { | ||
336 | type'ETypedElement'class & type'EClassifier'class = none | ||
337 | } | ||
338 | fact common'types'ETypedElement'class'EEnumLiteral'class { | ||
339 | type'ETypedElement'class & type'EEnumLiteral'class = none | ||
340 | } | ||
341 | fact common'types'ETypedElement'class'EPackage'class'UndefinedPart { | ||
342 | type'ETypedElement'class & type'EPackage'class'UndefinedPart = none | ||
343 | } | ||
344 | fact common'types'ETypeParameter'class'EClassifier'class { | ||
345 | type'ETypeParameter'class & type'EClassifier'class = none | ||
346 | } | ||
347 | fact common'types'ETypeParameter'class'EEnumLiteral'class { | ||
348 | type'ETypeParameter'class & type'EEnumLiteral'class = none | ||
349 | } | ||
350 | fact common'types'ETypeParameter'class'EPackage'class'UndefinedPart { | ||
351 | type'ETypeParameter'class & type'EPackage'class'UndefinedPart = none | ||
352 | } | ||
353 | fact common'types'ETypeParameter'class'ETypedElement'class { | ||
354 | type'ETypeParameter'class & type'ETypedElement'class = none | ||
355 | } | ||
356 | fact util'containmentDefinition { | ||
357 | util'language.util'contains = details'reference'EAnnotation + (contents'reference'EAnnotation + (eOperations'reference'EClass + (eStructuralFeatures'reference'EClass + (eGenericSuperTypes'reference'EClass + (eTypeParameters'reference'EClassifier + (eLiterals'reference'EEnum + (eAnnotations'reference'EModelElement + (eTypeParameters'reference'EOperation + (eParameters'reference'EOperation + (eGenericExceptions'reference'EOperation + (eClassifiers'reference'EPackage + (eSubpackages'reference'EPackage + (eGenericType'reference'ETypedElement + (eUpperBound'reference'EGenericType + (eTypeArguments'reference'EGenericType + (eLowerBound'reference'EGenericType + eBounds'reference'ETypeParameter)))))))))))))))) | ||
358 | } | ||
359 | fact util'noParentForRoot { | ||
360 | no parent: type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart))))))))))))))))))))))) { parent->(util'language.util'root) in util'language.util'contains } | ||
361 | } | ||
362 | fact util'atLeastOneParent { | ||
363 | all child: type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart))))))))))))))))))))))) { child = util'language.util'root or (some parent: type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart))))))))))))))))))))))) { parent->child in util'language.util'contains }) } | ||
364 | } | ||
365 | fact util'noCircularContainment { | ||
366 | no circle: type'EEnumLiteral'class + (type'EEnum'class + (type'EAnnotation'class + (type'EDataType'class + (type'EGenericType'class + (type'ENamedElement'class + (type'EModelElement'class + (type'ETypedElement'class + (type'EAttribute'class + (type'EObject'class + (type'EClass'class + (type'EStringToStringMapEntry'class + (type'EPackage'class + (type'EReference'class + (type'EClassifier'class + (type'EOperation'class + (type'ETypeParameter'class + (type'EParameter'class + (type'EStructuralFeature'class + (type'EModelElement'class'DefinedPart + (type'EModelElement'class'UndefinedPart + (type'ENamedElement'class'DefinedPart + (type'ENamedElement'class'UndefinedPart + (type'EPackage'class'DefinedPart + type'EPackage'class'UndefinedPart))))))))))))))))))))))) { circle->circle in ^ (util'language.util'contains) } | ||
367 | } | ||
368 | fact oppositeReference'eModelElement'EAnnotation { | ||
369 | eModelElement'reference'EAnnotation = ~ eAnnotations'reference'EModelElement | ||
370 | } | ||
371 | fact oppositeReference'eOperations'EClass { | ||
372 | eOperations'reference'EClass = ~ eContainingClass'reference'EOperation | ||
373 | } | ||
374 | fact oppositeReference'eStructuralFeatures'EClass { | ||
375 | eStructuralFeatures'reference'EClass = ~ eContainingClass'reference'EStructuralFeature | ||
376 | } | ||
377 | fact oppositeReference'ePackage'EClassifier { | ||
378 | ePackage'reference'EClassifier = ~ eClassifiers'reference'EPackage | ||
379 | } | ||
380 | fact oppositeReference'eLiterals'EEnum { | ||
381 | eLiterals'reference'EEnum = ~ eEnum'reference'EEnumLiteral | ||
382 | } | ||
383 | fact oppositeReference'eParameters'EOperation { | ||
384 | eParameters'reference'EOperation = ~ eOperation'reference'EParameter | ||
385 | } | ||
386 | fact oppositeReference'eSubpackages'EPackage { | ||
387 | eSubpackages'reference'EPackage = ~ eSuperPackage'reference'EPackage | ||
388 | } | ||
389 | fact PartialInterpretation'name'attribute'ENamedElement { | ||
390 | "packageName" in element'o'1.name'attribute'ENamedElement | ||
391 | } | ||
392 | fact PartialInterpretation'nsURI'attribute'EPackage { | ||
393 | "nsUri" in element'o'1.nsURI'attribute'EPackage | ||
394 | } | ||
395 | fact PartialInterpretation'nsPrefix'attribute'EPackage { | ||
396 | "nsPrefix" in element'o'1.nsPrefix'attribute'EPackage | ||
397 | } | ||
398 | fact EnsureAllStrings { | ||
399 | "A" = "A" && ("B" = "B" && ("nsPrefix" = "nsPrefix" && ("nsUri" = "nsUri" && "packageName" = "packageName"))) | ||
400 | } | ||
401 | run { } for exactly 6 util'Object , 2 Int , exactly 0 String \ No newline at end of file | ||
diff --git a/Tests/Ecore-Plugin/outputs/log.txt b/Tests/Ecore-Plugin/outputs/log.txt new file mode 100644 index 00000000..4add290c --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/log.txt | |||
@@ -0,0 +1 @@ | |||
Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: Visualisations: Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: Visualisations: Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: Visualisations: Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: Visualisations: Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: Visualisations: Model generation finished \ No newline at end of file | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/1.gml b/Tests/Ecore-Plugin/outputs/models/1.gml new file mode 100644 index 00000000..011b5f22 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/1.gml | |||
@@ -0,0 +1,2629 @@ | |||
1 | graph | ||
2 | [ | ||
3 | node | ||
4 | [ | ||
5 | id 0 | ||
6 | graphics | ||
7 | [ | ||
8 | w 254.10000000000002 | ||
9 | h 110 | ||
10 | type "rectangle" | ||
11 | fill "#FFFFFF" | ||
12 | fill2 "#FFFFFF" | ||
13 | outline "#000000" | ||
14 | ] | ||
15 | LabelGraphics | ||
16 | [ | ||
17 | text "o 1" | ||
18 | outline "#000000" | ||
19 | fill "#FFFFFF" | ||
20 | fontSize 16 | ||
21 | fontName "Monospace" | ||
22 | autoSizePolicy "node_width" | ||
23 | anchor "t" | ||
24 | borderDistance 0.0 | ||
25 | ] | ||
26 | LabelGraphics | ||
27 | [ | ||
28 | text " | ||
29 | EModelElement class DefinedPart | ||
30 | ENamedElement class DefinedPart | ||
31 | EPackage class DefinedPart | ||
32 | EModelElement class | ||
33 | ENamedElement class | ||
34 | EPackage class | ||
35 | " | ||
36 | fontSize 14 | ||
37 | fontName "Consolas" | ||
38 | alignment "left" | ||
39 | anchor "tl" | ||
40 | borderDistance 6 | ||
41 | ] | ||
42 | ] | ||
43 | |||
44 | node | ||
45 | [ | ||
46 | id 1 | ||
47 | graphics | ||
48 | [ | ||
49 | w 41.800000000000004 | ||
50 | h 26 | ||
51 | type "rectangle" | ||
52 | fill "#FFFFFF" | ||
53 | fill2 "#FFFFFF" | ||
54 | outline "#000000" | ||
55 | ] | ||
56 | LabelGraphics | ||
57 | [ | ||
58 | text "true" | ||
59 | outline "#000000" | ||
60 | fill "#FFFFFF" | ||
61 | fontSize 16 | ||
62 | fontName "Monospace" | ||
63 | autoSizePolicy "node_width" | ||
64 | anchor "t" | ||
65 | borderDistance 0.0 | ||
66 | ] | ||
67 | LabelGraphics | ||
68 | [ | ||
69 | text " | ||
70 | " | ||
71 | fontSize 14 | ||
72 | fontName "Consolas" | ||
73 | alignment "left" | ||
74 | anchor "tl" | ||
75 | borderDistance 6 | ||
76 | ] | ||
77 | ] | ||
78 | |||
79 | node | ||
80 | [ | ||
81 | id 2 | ||
82 | graphics | ||
83 | [ | ||
84 | w 50.6 | ||
85 | h 26 | ||
86 | type "rectangle" | ||
87 | fill "#FFFFFF" | ||
88 | fill2 "#FFFFFF" | ||
89 | outline "#000000" | ||
90 | ] | ||
91 | LabelGraphics | ||
92 | [ | ||
93 | text "false" | ||
94 | outline "#000000" | ||
95 | fill "#FFFFFF" | ||
96 | fontSize 16 | ||
97 | fontName "Monospace" | ||
98 | autoSizePolicy "node_width" | ||
99 | anchor "t" | ||
100 | borderDistance 0.0 | ||
101 | ] | ||
102 | LabelGraphics | ||
103 | [ | ||
104 | text " | ||
105 | " | ||
106 | fontSize 14 | ||
107 | fontName "Consolas" | ||
108 | alignment "left" | ||
109 | anchor "tl" | ||
110 | borderDistance 6 | ||
111 | ] | ||
112 | ] | ||
113 | |||
114 | node | ||
115 | [ | ||
116 | id 3 | ||
117 | graphics | ||
118 | [ | ||
119 | w 24.200000000000003 | ||
120 | h 26 | ||
121 | type "rectangle" | ||
122 | fill "#FFFFFF" | ||
123 | fill2 "#FFFFFF" | ||
124 | outline "#000000" | ||
125 | ] | ||
126 | LabelGraphics | ||
127 | [ | ||
128 | text "-1" | ||
129 | outline "#000000" | ||
130 | fill "#FFFFFF" | ||
131 | fontSize 16 | ||
132 | fontName "Monospace" | ||
133 | autoSizePolicy "node_width" | ||
134 | anchor "t" | ||
135 | borderDistance 0.0 | ||
136 | ] | ||
137 | LabelGraphics | ||
138 | [ | ||
139 | text " | ||
140 | " | ||
141 | fontSize 14 | ||
142 | fontName "Consolas" | ||
143 | alignment "left" | ||
144 | anchor "tl" | ||
145 | borderDistance 6 | ||
146 | ] | ||
147 | ] | ||
148 | |||
149 | node | ||
150 | [ | ||
151 | id 4 | ||
152 | graphics | ||
153 | [ | ||
154 | w 15.400000000000002 | ||
155 | h 26 | ||
156 | type "rectangle" | ||
157 | fill "#FFFFFF" | ||
158 | fill2 "#FFFFFF" | ||
159 | outline "#000000" | ||
160 | ] | ||
161 | LabelGraphics | ||
162 | [ | ||
163 | text "0" | ||
164 | outline "#000000" | ||
165 | fill "#FFFFFF" | ||
166 | fontSize 16 | ||
167 | fontName "Monospace" | ||
168 | autoSizePolicy "node_width" | ||
169 | anchor "t" | ||
170 | borderDistance 0.0 | ||
171 | ] | ||
172 | LabelGraphics | ||
173 | [ | ||
174 | text " | ||
175 | " | ||
176 | fontSize 14 | ||
177 | fontName "Consolas" | ||
178 | alignment "left" | ||
179 | anchor "tl" | ||
180 | borderDistance 6 | ||
181 | ] | ||
182 | ] | ||
183 | |||
184 | node | ||
185 | [ | ||
186 | id 5 | ||
187 | graphics | ||
188 | [ | ||
189 | w 15.400000000000002 | ||
190 | h 26 | ||
191 | type "rectangle" | ||
192 | fill "#FFFFFF" | ||
193 | fill2 "#FFFFFF" | ||
194 | outline "#000000" | ||
195 | ] | ||
196 | LabelGraphics | ||
197 | [ | ||
198 | text "1" | ||
199 | outline "#000000" | ||
200 | fill "#FFFFFF" | ||
201 | fontSize 16 | ||
202 | fontName "Monospace" | ||
203 | autoSizePolicy "node_width" | ||
204 | anchor "t" | ||
205 | borderDistance 0.0 | ||
206 | ] | ||
207 | LabelGraphics | ||
208 | [ | ||
209 | text " | ||
210 | " | ||
211 | fontSize 14 | ||
212 | fontName "Consolas" | ||
213 | alignment "left" | ||
214 | anchor "tl" | ||
215 | borderDistance 6 | ||
216 | ] | ||
217 | ] | ||
218 | |||
219 | node | ||
220 | [ | ||
221 | id 6 | ||
222 | graphics | ||
223 | [ | ||
224 | w 33.0 | ||
225 | h 26 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text ""A"" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | " | ||
246 | fontSize 14 | ||
247 | fontName "Consolas" | ||
248 | alignment "left" | ||
249 | anchor "tl" | ||
250 | borderDistance 6 | ||
251 | ] | ||
252 | ] | ||
253 | |||
254 | node | ||
255 | [ | ||
256 | id 7 | ||
257 | graphics | ||
258 | [ | ||
259 | w 33.0 | ||
260 | h 26 | ||
261 | type "rectangle" | ||
262 | fill "#FFFFFF" | ||
263 | fill2 "#FFFFFF" | ||
264 | outline "#000000" | ||
265 | ] | ||
266 | LabelGraphics | ||
267 | [ | ||
268 | text ""B"" | ||
269 | outline "#000000" | ||
270 | fill "#FFFFFF" | ||
271 | fontSize 16 | ||
272 | fontName "Monospace" | ||
273 | autoSizePolicy "node_width" | ||
274 | anchor "t" | ||
275 | borderDistance 0.0 | ||
276 | ] | ||
277 | LabelGraphics | ||
278 | [ | ||
279 | text " | ||
280 | " | ||
281 | fontSize 14 | ||
282 | fontName "Consolas" | ||
283 | alignment "left" | ||
284 | anchor "tl" | ||
285 | borderDistance 6 | ||
286 | ] | ||
287 | ] | ||
288 | |||
289 | node | ||
290 | [ | ||
291 | id 8 | ||
292 | graphics | ||
293 | [ | ||
294 | w 269.5 | ||
295 | h 68 | ||
296 | type "rectangle" | ||
297 | fill "#FFFFFF" | ||
298 | fill2 "#FFFFFF" | ||
299 | outline "#000000" | ||
300 | ] | ||
301 | LabelGraphics | ||
302 | [ | ||
303 | text "null" | ||
304 | outline "#000000" | ||
305 | fill "#FFFFFF" | ||
306 | fontSize 16 | ||
307 | fontName "Monospace" | ||
308 | autoSizePolicy "node_width" | ||
309 | anchor "t" | ||
310 | borderDistance 0.0 | ||
311 | ] | ||
312 | LabelGraphics | ||
313 | [ | ||
314 | text " | ||
315 | EAnnotation class | ||
316 | EModelElement class | ||
317 | EModelElement class UndefinedPart | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 269.5 | ||
333 | h 124 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "null" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | EClassifier class | ||
354 | EDataType class | ||
355 | EEnum class | ||
356 | EModelElement class | ||
357 | ENamedElement class | ||
358 | EModelElement class UndefinedPart | ||
359 | ENamedElement class UndefinedPart | ||
360 | " | ||
361 | fontSize 14 | ||
362 | fontName "Consolas" | ||
363 | alignment "left" | ||
364 | anchor "tl" | ||
365 | borderDistance 6 | ||
366 | ] | ||
367 | ] | ||
368 | |||
369 | node | ||
370 | [ | ||
371 | id 10 | ||
372 | graphics | ||
373 | [ | ||
374 | w 269.5 | ||
375 | h 68 | ||
376 | type "rectangle" | ||
377 | fill "#FFFFFF" | ||
378 | fill2 "#FFFFFF" | ||
379 | outline "#000000" | ||
380 | ] | ||
381 | LabelGraphics | ||
382 | [ | ||
383 | text "null" | ||
384 | outline "#000000" | ||
385 | fill "#FFFFFF" | ||
386 | fontSize 16 | ||
387 | fontName "Monospace" | ||
388 | autoSizePolicy "node_width" | ||
389 | anchor "t" | ||
390 | borderDistance 0.0 | ||
391 | ] | ||
392 | LabelGraphics | ||
393 | [ | ||
394 | text " | ||
395 | EAnnotation class | ||
396 | EModelElement class | ||
397 | EModelElement class UndefinedPart | ||
398 | " | ||
399 | fontSize 14 | ||
400 | fontName "Consolas" | ||
401 | alignment "left" | ||
402 | anchor "tl" | ||
403 | borderDistance 6 | ||
404 | ] | ||
405 | ] | ||
406 | |||
407 | node | ||
408 | [ | ||
409 | id 11 | ||
410 | graphics | ||
411 | [ | ||
412 | w 269.5 | ||
413 | h 110 | ||
414 | type "rectangle" | ||
415 | fill "#FFFFFF" | ||
416 | fill2 "#FFFFFF" | ||
417 | outline "#000000" | ||
418 | ] | ||
419 | LabelGraphics | ||
420 | [ | ||
421 | text "null" | ||
422 | outline "#000000" | ||
423 | fill "#FFFFFF" | ||
424 | fontSize 16 | ||
425 | fontName "Monospace" | ||
426 | autoSizePolicy "node_width" | ||
427 | anchor "t" | ||
428 | borderDistance 0.0 | ||
429 | ] | ||
430 | LabelGraphics | ||
431 | [ | ||
432 | text " | ||
433 | EClass class | ||
434 | EClassifier class | ||
435 | EModelElement class | ||
436 | ENamedElement class | ||
437 | EModelElement class UndefinedPart | ||
438 | ENamedElement class UndefinedPart | ||
439 | " | ||
440 | fontSize 14 | ||
441 | fontName "Consolas" | ||
442 | alignment "left" | ||
443 | anchor "tl" | ||
444 | borderDistance 6 | ||
445 | ] | ||
446 | ] | ||
447 | |||
448 | node | ||
449 | [ | ||
450 | id 12 | ||
451 | graphics | ||
452 | [ | ||
453 | w 269.5 | ||
454 | h 124 | ||
455 | type "rectangle" | ||
456 | fill "#FFFFFF" | ||
457 | fill2 "#FFFFFF" | ||
458 | outline "#000000" | ||
459 | ] | ||
460 | LabelGraphics | ||
461 | [ | ||
462 | text "null" | ||
463 | outline "#000000" | ||
464 | fill "#FFFFFF" | ||
465 | fontSize 16 | ||
466 | fontName "Monospace" | ||
467 | autoSizePolicy "node_width" | ||
468 | anchor "t" | ||
469 | borderDistance 0.0 | ||
470 | ] | ||
471 | LabelGraphics | ||
472 | [ | ||
473 | text " | ||
474 | EModelElement class | ||
475 | ENamedElement class | ||
476 | EReference class | ||
477 | EStructuralFeature class | ||
478 | ETypedElement class | ||
479 | EModelElement class UndefinedPart | ||
480 | ENamedElement class UndefinedPart | ||
481 | " | ||
482 | fontSize 14 | ||
483 | fontName "Consolas" | ||
484 | alignment "left" | ||
485 | anchor "tl" | ||
486 | borderDistance 6 | ||
487 | ] | ||
488 | ] | ||
489 | |||
490 | node | ||
491 | [ | ||
492 | id 13 | ||
493 | graphics | ||
494 | [ | ||
495 | w 112.2 | ||
496 | h 26 | ||
497 | type "rectangle" | ||
498 | fill "#FFFFFF" | ||
499 | fill2 "#FFFFFF" | ||
500 | outline "#000000" | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text "New Integers" | ||
505 | outline "#000000" | ||
506 | fill "#FFFFFF" | ||
507 | fontSize 16 | ||
508 | fontName "Monospace" | ||
509 | autoSizePolicy "node_width" | ||
510 | anchor "t" | ||
511 | borderDistance 0.0 | ||
512 | ] | ||
513 | LabelGraphics | ||
514 | [ | ||
515 | text " | ||
516 | " | ||
517 | fontSize 14 | ||
518 | fontName "Consolas" | ||
519 | alignment "left" | ||
520 | anchor "tl" | ||
521 | borderDistance 6 | ||
522 | ] | ||
523 | ] | ||
524 | |||
525 | node | ||
526 | [ | ||
527 | id 14 | ||
528 | graphics | ||
529 | [ | ||
530 | w 85.80000000000001 | ||
531 | h 26 | ||
532 | type "rectangle" | ||
533 | fill "#FFFFFF" | ||
534 | fill2 "#FFFFFF" | ||
535 | outline "#000000" | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text "New Reals" | ||
540 | outline "#000000" | ||
541 | fill "#FFFFFF" | ||
542 | fontSize 16 | ||
543 | fontName "Monospace" | ||
544 | autoSizePolicy "node_width" | ||
545 | anchor "t" | ||
546 | borderDistance 0.0 | ||
547 | ] | ||
548 | LabelGraphics | ||
549 | [ | ||
550 | text " | ||
551 | " | ||
552 | fontSize 14 | ||
553 | fontName "Consolas" | ||
554 | alignment "left" | ||
555 | anchor "tl" | ||
556 | borderDistance 6 | ||
557 | ] | ||
558 | ] | ||
559 | |||
560 | node | ||
561 | [ | ||
562 | id 15 | ||
563 | graphics | ||
564 | [ | ||
565 | w 103.4 | ||
566 | h 26 | ||
567 | type "rectangle" | ||
568 | fill "#FFFFFF" | ||
569 | fill2 "#FFFFFF" | ||
570 | outline "#000000" | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text "New Strings" | ||
575 | outline "#000000" | ||
576 | fill "#FFFFFF" | ||
577 | fontSize 16 | ||
578 | fontName "Monospace" | ||
579 | autoSizePolicy "node_width" | ||
580 | anchor "t" | ||
581 | borderDistance 0.0 | ||
582 | ] | ||
583 | LabelGraphics | ||
584 | [ | ||
585 | text " | ||
586 | " | ||
587 | fontSize 14 | ||
588 | fontName "Consolas" | ||
589 | alignment "left" | ||
590 | anchor "tl" | ||
591 | borderDistance 6 | ||
592 | ] | ||
593 | ] | ||
594 | |||
595 | node | ||
596 | [ | ||
597 | id 16 | ||
598 | graphics | ||
599 | [ | ||
600 | w 103.4 | ||
601 | h 26 | ||
602 | type "rectangle" | ||
603 | fill "#FFFFFF" | ||
604 | fill2 "#FFFFFF" | ||
605 | outline "#000000" | ||
606 | ] | ||
607 | LabelGraphics | ||
608 | [ | ||
609 | text "New Objects" | ||
610 | outline "#000000" | ||
611 | fill "#FFFFFF" | ||
612 | fontSize 16 | ||
613 | fontName "Monospace" | ||
614 | autoSizePolicy "node_width" | ||
615 | anchor "t" | ||
616 | borderDistance 0.0 | ||
617 | ] | ||
618 | LabelGraphics | ||
619 | [ | ||
620 | text " | ||
621 | " | ||
622 | fontSize 14 | ||
623 | fontName "Consolas" | ||
624 | alignment "left" | ||
625 | anchor "tl" | ||
626 | borderDistance 6 | ||
627 | ] | ||
628 | ] | ||
629 | edge | ||
630 | [ | ||
631 | source 8 | ||
632 | target 0 | ||
633 | graphics | ||
634 | [ | ||
635 | fill "#000000" | ||
636 | targetArrow "standard" | ||
637 | ] | ||
638 | LabelGraphics | ||
639 | [ | ||
640 | text "eModelElement reference EAnnotation" | ||
641 | fontSize 14 | ||
642 | fontName "Consolas" | ||
643 | configuration "AutoFlippingLabel" | ||
644 | model "six_pos" | ||
645 | position "thead" | ||
646 | ] | ||
647 | ] | ||
648 | edge | ||
649 | [ | ||
650 | source 10 | ||
651 | target 0 | ||
652 | graphics | ||
653 | [ | ||
654 | fill "#000000" | ||
655 | targetArrow "standard" | ||
656 | ] | ||
657 | LabelGraphics | ||
658 | [ | ||
659 | text "eModelElement reference EAnnotation" | ||
660 | fontSize 14 | ||
661 | fontName "Consolas" | ||
662 | configuration "AutoFlippingLabel" | ||
663 | model "six_pos" | ||
664 | position "thead" | ||
665 | ] | ||
666 | ] | ||
667 | edge | ||
668 | [ | ||
669 | source 11 | ||
670 | target 11 | ||
671 | graphics | ||
672 | [ | ||
673 | fill "#000000" | ||
674 | targetArrow "standard" | ||
675 | ] | ||
676 | LabelGraphics | ||
677 | [ | ||
678 | text "eSuperTypes reference EClass" | ||
679 | fontSize 14 | ||
680 | fontName "Consolas" | ||
681 | configuration "AutoFlippingLabel" | ||
682 | model "six_pos" | ||
683 | position "thead" | ||
684 | ] | ||
685 | ] | ||
686 | edge | ||
687 | [ | ||
688 | source 11 | ||
689 | target 12 | ||
690 | graphics | ||
691 | [ | ||
692 | fill "#000000" | ||
693 | targetArrow "standard" | ||
694 | ] | ||
695 | LabelGraphics | ||
696 | [ | ||
697 | text "eReferences reference EClass" | ||
698 | fontSize 14 | ||
699 | fontName "Consolas" | ||
700 | configuration "AutoFlippingLabel" | ||
701 | model "six_pos" | ||
702 | position "thead" | ||
703 | ] | ||
704 | ] | ||
705 | edge | ||
706 | [ | ||
707 | source 11 | ||
708 | target 12 | ||
709 | graphics | ||
710 | [ | ||
711 | fill "#000000" | ||
712 | targetArrow "standard" | ||
713 | ] | ||
714 | LabelGraphics | ||
715 | [ | ||
716 | text "eAllStructuralFeatures reference EClass" | ||
717 | fontSize 14 | ||
718 | fontName "Consolas" | ||
719 | configuration "AutoFlippingLabel" | ||
720 | model "six_pos" | ||
721 | position "thead" | ||
722 | ] | ||
723 | ] | ||
724 | edge | ||
725 | [ | ||
726 | source 11 | ||
727 | target 11 | ||
728 | graphics | ||
729 | [ | ||
730 | fill "#000000" | ||
731 | targetArrow "standard" | ||
732 | ] | ||
733 | LabelGraphics | ||
734 | [ | ||
735 | text "eAllSuperTypes reference EClass" | ||
736 | fontSize 14 | ||
737 | fontName "Consolas" | ||
738 | configuration "AutoFlippingLabel" | ||
739 | model "six_pos" | ||
740 | position "thead" | ||
741 | ] | ||
742 | ] | ||
743 | edge | ||
744 | [ | ||
745 | source 11 | ||
746 | target 12 | ||
747 | graphics | ||
748 | [ | ||
749 | fill "#000000" | ||
750 | width 3 | ||
751 | targetArrow "standard" | ||
752 | ] | ||
753 | LabelGraphics | ||
754 | [ | ||
755 | text "eStructuralFeatures reference EClass" | ||
756 | fontSize 14 | ||
757 | fontName "Consolas" | ||
758 | configuration "AutoFlippingLabel" | ||
759 | model "six_pos" | ||
760 | position "thead" | ||
761 | ] | ||
762 | ] | ||
763 | edge | ||
764 | [ | ||
765 | source 9 | ||
766 | target 0 | ||
767 | graphics | ||
768 | [ | ||
769 | fill "#000000" | ||
770 | targetArrow "standard" | ||
771 | ] | ||
772 | LabelGraphics | ||
773 | [ | ||
774 | text "ePackage reference EClassifier" | ||
775 | fontSize 14 | ||
776 | fontName "Consolas" | ||
777 | configuration "AutoFlippingLabel" | ||
778 | model "six_pos" | ||
779 | position "thead" | ||
780 | ] | ||
781 | ] | ||
782 | edge | ||
783 | [ | ||
784 | source 11 | ||
785 | target 0 | ||
786 | graphics | ||
787 | [ | ||
788 | fill "#000000" | ||
789 | targetArrow "standard" | ||
790 | ] | ||
791 | LabelGraphics | ||
792 | [ | ||
793 | text "ePackage reference EClassifier" | ||
794 | fontSize 14 | ||
795 | fontName "Consolas" | ||
796 | configuration "AutoFlippingLabel" | ||
797 | model "six_pos" | ||
798 | position "thead" | ||
799 | ] | ||
800 | ] | ||
801 | edge | ||
802 | [ | ||
803 | source 0 | ||
804 | target 8 | ||
805 | graphics | ||
806 | [ | ||
807 | fill "#000000" | ||
808 | width 3 | ||
809 | targetArrow "standard" | ||
810 | ] | ||
811 | LabelGraphics | ||
812 | [ | ||
813 | text "eAnnotations reference EModelElement" | ||
814 | fontSize 14 | ||
815 | fontName "Consolas" | ||
816 | configuration "AutoFlippingLabel" | ||
817 | model "six_pos" | ||
818 | position "thead" | ||
819 | ] | ||
820 | ] | ||
821 | edge | ||
822 | [ | ||
823 | source 0 | ||
824 | target 10 | ||
825 | graphics | ||
826 | [ | ||
827 | fill "#000000" | ||
828 | width 3 | ||
829 | targetArrow "standard" | ||
830 | ] | ||
831 | LabelGraphics | ||
832 | [ | ||
833 | text "eAnnotations reference EModelElement" | ||
834 | fontSize 14 | ||
835 | fontName "Consolas" | ||
836 | configuration "AutoFlippingLabel" | ||
837 | model "six_pos" | ||
838 | position "thead" | ||
839 | ] | ||
840 | ] | ||
841 | edge | ||
842 | [ | ||
843 | source 0 | ||
844 | target 9 | ||
845 | graphics | ||
846 | [ | ||
847 | fill "#000000" | ||
848 | width 3 | ||
849 | targetArrow "standard" | ||
850 | ] | ||
851 | LabelGraphics | ||
852 | [ | ||
853 | text "eClassifiers reference EPackage" | ||
854 | fontSize 14 | ||
855 | fontName "Consolas" | ||
856 | configuration "AutoFlippingLabel" | ||
857 | model "six_pos" | ||
858 | position "thead" | ||
859 | ] | ||
860 | ] | ||
861 | edge | ||
862 | [ | ||
863 | source 0 | ||
864 | target 11 | ||
865 | graphics | ||
866 | [ | ||
867 | fill "#000000" | ||
868 | width 3 | ||
869 | targetArrow "standard" | ||
870 | ] | ||
871 | LabelGraphics | ||
872 | [ | ||
873 | text "eClassifiers reference EPackage" | ||
874 | fontSize 14 | ||
875 | fontName "Consolas" | ||
876 | configuration "AutoFlippingLabel" | ||
877 | model "six_pos" | ||
878 | position "thead" | ||
879 | ] | ||
880 | ] | ||
881 | edge | ||
882 | [ | ||
883 | source 12 | ||
884 | target 12 | ||
885 | graphics | ||
886 | [ | ||
887 | fill "#000000" | ||
888 | targetArrow "standard" | ||
889 | ] | ||
890 | LabelGraphics | ||
891 | [ | ||
892 | text "eOpposite reference EReference" | ||
893 | fontSize 14 | ||
894 | fontName "Consolas" | ||
895 | configuration "AutoFlippingLabel" | ||
896 | model "six_pos" | ||
897 | position "thead" | ||
898 | ] | ||
899 | ] | ||
900 | edge | ||
901 | [ | ||
902 | source 12 | ||
903 | target 11 | ||
904 | graphics | ||
905 | [ | ||
906 | fill "#000000" | ||
907 | targetArrow "standard" | ||
908 | ] | ||
909 | LabelGraphics | ||
910 | [ | ||
911 | text "eReferenceType reference EReference" | ||
912 | fontSize 14 | ||
913 | fontName "Consolas" | ||
914 | configuration "AutoFlippingLabel" | ||
915 | model "six_pos" | ||
916 | position "thead" | ||
917 | ] | ||
918 | ] | ||
919 | edge | ||
920 | [ | ||
921 | source 12 | ||
922 | target 11 | ||
923 | graphics | ||
924 | [ | ||
925 | fill "#000000" | ||
926 | targetArrow "standard" | ||
927 | ] | ||
928 | LabelGraphics | ||
929 | [ | ||
930 | text "eContainingClass reference EStructuralFeature" | ||
931 | fontSize 14 | ||
932 | fontName "Consolas" | ||
933 | configuration "AutoFlippingLabel" | ||
934 | model "six_pos" | ||
935 | position "thead" | ||
936 | ] | ||
937 | ] | ||
938 | edge | ||
939 | [ | ||
940 | source 12 | ||
941 | target 11 | ||
942 | graphics | ||
943 | [ | ||
944 | fill "#000000" | ||
945 | targetArrow "standard" | ||
946 | ] | ||
947 | LabelGraphics | ||
948 | [ | ||
949 | text "eType reference ETypedElement" | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | configuration "AutoFlippingLabel" | ||
953 | model "six_pos" | ||
954 | position "thead" | ||
955 | ] | ||
956 | ] | ||
957 | edge | ||
958 | [ | ||
959 | source 8 | ||
960 | target 7 | ||
961 | graphics | ||
962 | [ | ||
963 | fill "#000000" | ||
964 | targetArrow "standard" | ||
965 | ] | ||
966 | LabelGraphics | ||
967 | [ | ||
968 | text "source attribute EAnnotation" | ||
969 | fontSize 14 | ||
970 | fontName "Consolas" | ||
971 | configuration "AutoFlippingLabel" | ||
972 | model "six_pos" | ||
973 | position "thead" | ||
974 | ] | ||
975 | ] | ||
976 | edge | ||
977 | [ | ||
978 | source 10 | ||
979 | target 6 | ||
980 | graphics | ||
981 | [ | ||
982 | fill "#000000" | ||
983 | targetArrow "standard" | ||
984 | ] | ||
985 | LabelGraphics | ||
986 | [ | ||
987 | text "source attribute EAnnotation" | ||
988 | fontSize 14 | ||
989 | fontName "Consolas" | ||
990 | configuration "AutoFlippingLabel" | ||
991 | model "six_pos" | ||
992 | position "thead" | ||
993 | ] | ||
994 | ] | ||
995 | edge | ||
996 | [ | ||
997 | source 11 | ||
998 | target 2 | ||
999 | graphics | ||
1000 | [ | ||
1001 | fill "#000000" | ||
1002 | targetArrow "standard" | ||
1003 | ] | ||
1004 | LabelGraphics | ||
1005 | [ | ||
1006 | text "abstract attribute EClass" | ||
1007 | fontSize 14 | ||
1008 | fontName "Consolas" | ||
1009 | configuration "AutoFlippingLabel" | ||
1010 | model "six_pos" | ||
1011 | position "thead" | ||
1012 | ] | ||
1013 | ] | ||
1014 | edge | ||
1015 | [ | ||
1016 | source 11 | ||
1017 | target 1 | ||
1018 | graphics | ||
1019 | [ | ||
1020 | fill "#000000" | ||
1021 | targetArrow "standard" | ||
1022 | ] | ||
1023 | LabelGraphics | ||
1024 | [ | ||
1025 | text "interface attribute EClass" | ||
1026 | fontSize 14 | ||
1027 | fontName "Consolas" | ||
1028 | configuration "AutoFlippingLabel" | ||
1029 | model "six_pos" | ||
1030 | position "thead" | ||
1031 | ] | ||
1032 | ] | ||
1033 | edge | ||
1034 | [ | ||
1035 | source 11 | ||
1036 | target 7 | ||
1037 | graphics | ||
1038 | [ | ||
1039 | fill "#000000" | ||
1040 | targetArrow "standard" | ||
1041 | ] | ||
1042 | LabelGraphics | ||
1043 | [ | ||
1044 | text "instanceClassName attribute EClassifier" | ||
1045 | fontSize 14 | ||
1046 | fontName "Consolas" | ||
1047 | configuration "AutoFlippingLabel" | ||
1048 | model "six_pos" | ||
1049 | position "thead" | ||
1050 | ] | ||
1051 | ] | ||
1052 | edge | ||
1053 | [ | ||
1054 | source 11 | ||
1055 | target 7 | ||
1056 | graphics | ||
1057 | [ | ||
1058 | fill "#000000" | ||
1059 | targetArrow "standard" | ||
1060 | ] | ||
1061 | LabelGraphics | ||
1062 | [ | ||
1063 | text "instanceTypeName attribute EClassifier" | ||
1064 | fontSize 14 | ||
1065 | fontName "Consolas" | ||
1066 | configuration "AutoFlippingLabel" | ||
1067 | model "six_pos" | ||
1068 | position "thead" | ||
1069 | ] | ||
1070 | ] | ||
1071 | edge | ||
1072 | [ | ||
1073 | source 9 | ||
1074 | target 7 | ||
1075 | graphics | ||
1076 | [ | ||
1077 | fill "#000000" | ||
1078 | targetArrow "standard" | ||
1079 | ] | ||
1080 | LabelGraphics | ||
1081 | [ | ||
1082 | text "instanceTypeName attribute EClassifier" | ||
1083 | fontSize 14 | ||
1084 | fontName "Consolas" | ||
1085 | configuration "AutoFlippingLabel" | ||
1086 | model "six_pos" | ||
1087 | position "thead" | ||
1088 | ] | ||
1089 | ] | ||
1090 | edge | ||
1091 | [ | ||
1092 | source 9 | ||
1093 | target 2 | ||
1094 | graphics | ||
1095 | [ | ||
1096 | fill "#000000" | ||
1097 | targetArrow "standard" | ||
1098 | ] | ||
1099 | LabelGraphics | ||
1100 | [ | ||
1101 | text "serializable attribute EDataType" | ||
1102 | fontSize 14 | ||
1103 | fontName "Consolas" | ||
1104 | configuration "AutoFlippingLabel" | ||
1105 | model "six_pos" | ||
1106 | position "thead" | ||
1107 | ] | ||
1108 | ] | ||
1109 | edge | ||
1110 | [ | ||
1111 | source 0 | ||
1112 | target 7 | ||
1113 | graphics | ||
1114 | [ | ||
1115 | fill "#000000" | ||
1116 | targetArrow "standard" | ||
1117 | ] | ||
1118 | LabelGraphics | ||
1119 | [ | ||
1120 | text "name attribute ENamedElement" | ||
1121 | fontSize 14 | ||
1122 | fontName "Consolas" | ||
1123 | configuration "AutoFlippingLabel" | ||
1124 | model "six_pos" | ||
1125 | position "thead" | ||
1126 | ] | ||
1127 | ] | ||
1128 | edge | ||
1129 | [ | ||
1130 | source 12 | ||
1131 | target 6 | ||
1132 | graphics | ||
1133 | [ | ||
1134 | fill "#000000" | ||
1135 | targetArrow "standard" | ||
1136 | ] | ||
1137 | LabelGraphics | ||
1138 | [ | ||
1139 | text "name attribute ENamedElement" | ||
1140 | fontSize 14 | ||
1141 | fontName "Consolas" | ||
1142 | configuration "AutoFlippingLabel" | ||
1143 | model "six_pos" | ||
1144 | position "thead" | ||
1145 | ] | ||
1146 | ] | ||
1147 | edge | ||
1148 | [ | ||
1149 | source 11 | ||
1150 | target 7 | ||
1151 | graphics | ||
1152 | [ | ||
1153 | fill "#000000" | ||
1154 | targetArrow "standard" | ||
1155 | ] | ||
1156 | LabelGraphics | ||
1157 | [ | ||
1158 | text "name attribute ENamedElement" | ||
1159 | fontSize 14 | ||
1160 | fontName "Consolas" | ||
1161 | configuration "AutoFlippingLabel" | ||
1162 | model "six_pos" | ||
1163 | position "thead" | ||
1164 | ] | ||
1165 | ] | ||
1166 | edge | ||
1167 | [ | ||
1168 | source 9 | ||
1169 | target 7 | ||
1170 | graphics | ||
1171 | [ | ||
1172 | fill "#000000" | ||
1173 | targetArrow "standard" | ||
1174 | ] | ||
1175 | LabelGraphics | ||
1176 | [ | ||
1177 | text "name attribute ENamedElement" | ||
1178 | fontSize 14 | ||
1179 | fontName "Consolas" | ||
1180 | configuration "AutoFlippingLabel" | ||
1181 | model "six_pos" | ||
1182 | position "thead" | ||
1183 | ] | ||
1184 | ] | ||
1185 | edge | ||
1186 | [ | ||
1187 | source 0 | ||
1188 | target 7 | ||
1189 | graphics | ||
1190 | [ | ||
1191 | fill "#000000" | ||
1192 | targetArrow "standard" | ||
1193 | ] | ||
1194 | LabelGraphics | ||
1195 | [ | ||
1196 | text "nsURI attribute EPackage" | ||
1197 | fontSize 14 | ||
1198 | fontName "Consolas" | ||
1199 | configuration "AutoFlippingLabel" | ||
1200 | model "six_pos" | ||
1201 | position "thead" | ||
1202 | ] | ||
1203 | ] | ||
1204 | edge | ||
1205 | [ | ||
1206 | source 0 | ||
1207 | target 7 | ||
1208 | graphics | ||
1209 | [ | ||
1210 | fill "#000000" | ||
1211 | targetArrow "standard" | ||
1212 | ] | ||
1213 | LabelGraphics | ||
1214 | [ | ||
1215 | text "nsPrefix attribute EPackage" | ||
1216 | fontSize 14 | ||
1217 | fontName "Consolas" | ||
1218 | configuration "AutoFlippingLabel" | ||
1219 | model "six_pos" | ||
1220 | position "thead" | ||
1221 | ] | ||
1222 | ] | ||
1223 | edge | ||
1224 | [ | ||
1225 | source 12 | ||
1226 | target 2 | ||
1227 | graphics | ||
1228 | [ | ||
1229 | fill "#000000" | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "containment attribute EReference" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 12 | ||
1245 | target 2 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | targetArrow "standard" | ||
1250 | ] | ||
1251 | LabelGraphics | ||
1252 | [ | ||
1253 | text "container attribute EReference" | ||
1254 | fontSize 14 | ||
1255 | fontName "Consolas" | ||
1256 | configuration "AutoFlippingLabel" | ||
1257 | model "six_pos" | ||
1258 | position "thead" | ||
1259 | ] | ||
1260 | ] | ||
1261 | edge | ||
1262 | [ | ||
1263 | source 12 | ||
1264 | target 2 | ||
1265 | graphics | ||
1266 | [ | ||
1267 | fill "#000000" | ||
1268 | targetArrow "standard" | ||
1269 | ] | ||
1270 | LabelGraphics | ||
1271 | [ | ||
1272 | text "changeable attribute EStructuralFeature" | ||
1273 | fontSize 14 | ||
1274 | fontName "Consolas" | ||
1275 | configuration "AutoFlippingLabel" | ||
1276 | model "six_pos" | ||
1277 | position "thead" | ||
1278 | ] | ||
1279 | ] | ||
1280 | edge | ||
1281 | [ | ||
1282 | source 12 | ||
1283 | target 2 | ||
1284 | graphics | ||
1285 | [ | ||
1286 | fill "#000000" | ||
1287 | targetArrow "standard" | ||
1288 | ] | ||
1289 | LabelGraphics | ||
1290 | [ | ||
1291 | text "volatile attribute EStructuralFeature" | ||
1292 | fontSize 14 | ||
1293 | fontName "Consolas" | ||
1294 | configuration "AutoFlippingLabel" | ||
1295 | model "six_pos" | ||
1296 | position "thead" | ||
1297 | ] | ||
1298 | ] | ||
1299 | edge | ||
1300 | [ | ||
1301 | source 12 | ||
1302 | target 1 | ||
1303 | graphics | ||
1304 | [ | ||
1305 | fill "#000000" | ||
1306 | targetArrow "standard" | ||
1307 | ] | ||
1308 | LabelGraphics | ||
1309 | [ | ||
1310 | text "transient attribute EStructuralFeature" | ||
1311 | fontSize 14 | ||
1312 | fontName "Consolas" | ||
1313 | configuration "AutoFlippingLabel" | ||
1314 | model "six_pos" | ||
1315 | position "thead" | ||
1316 | ] | ||
1317 | ] | ||
1318 | edge | ||
1319 | [ | ||
1320 | source 12 | ||
1321 | target 7 | ||
1322 | graphics | ||
1323 | [ | ||
1324 | fill "#000000" | ||
1325 | targetArrow "standard" | ||
1326 | ] | ||
1327 | LabelGraphics | ||
1328 | [ | ||
1329 | text "defaultValueLiteral attribute EStructuralFeature" | ||
1330 | fontSize 14 | ||
1331 | fontName "Consolas" | ||
1332 | configuration "AutoFlippingLabel" | ||
1333 | model "six_pos" | ||
1334 | position "thead" | ||
1335 | ] | ||
1336 | ] | ||
1337 | edge | ||
1338 | [ | ||
1339 | source 12 | ||
1340 | target 2 | ||
1341 | graphics | ||
1342 | [ | ||
1343 | fill "#000000" | ||
1344 | targetArrow "standard" | ||
1345 | ] | ||
1346 | LabelGraphics | ||
1347 | [ | ||
1348 | text "unsettable attribute EStructuralFeature" | ||
1349 | fontSize 14 | ||
1350 | fontName "Consolas" | ||
1351 | configuration "AutoFlippingLabel" | ||
1352 | model "six_pos" | ||
1353 | position "thead" | ||
1354 | ] | ||
1355 | ] | ||
1356 | edge | ||
1357 | [ | ||
1358 | source 12 | ||
1359 | target 1 | ||
1360 | graphics | ||
1361 | [ | ||
1362 | fill "#000000" | ||
1363 | targetArrow "standard" | ||
1364 | ] | ||
1365 | LabelGraphics | ||
1366 | [ | ||
1367 | text "derived attribute EStructuralFeature" | ||
1368 | fontSize 14 | ||
1369 | fontName "Consolas" | ||
1370 | configuration "AutoFlippingLabel" | ||
1371 | model "six_pos" | ||
1372 | position "thead" | ||
1373 | ] | ||
1374 | ] | ||
1375 | edge | ||
1376 | [ | ||
1377 | source 12 | ||
1378 | target 1 | ||
1379 | graphics | ||
1380 | [ | ||
1381 | fill "#000000" | ||
1382 | targetArrow "standard" | ||
1383 | ] | ||
1384 | LabelGraphics | ||
1385 | [ | ||
1386 | text "ordered attribute ETypedElement" | ||
1387 | fontSize 14 | ||
1388 | fontName "Consolas" | ||
1389 | configuration "AutoFlippingLabel" | ||
1390 | model "six_pos" | ||
1391 | position "thead" | ||
1392 | ] | ||
1393 | ] | ||
1394 | edge | ||
1395 | [ | ||
1396 | source 12 | ||
1397 | target 1 | ||
1398 | graphics | ||
1399 | [ | ||
1400 | fill "#000000" | ||
1401 | targetArrow "standard" | ||
1402 | ] | ||
1403 | LabelGraphics | ||
1404 | [ | ||
1405 | text "unique attribute ETypedElement" | ||
1406 | fontSize 14 | ||
1407 | fontName "Consolas" | ||
1408 | configuration "AutoFlippingLabel" | ||
1409 | model "six_pos" | ||
1410 | position "thead" | ||
1411 | ] | ||
1412 | ] | ||
1413 | edge | ||
1414 | [ | ||
1415 | source 12 | ||
1416 | target 4 | ||
1417 | graphics | ||
1418 | [ | ||
1419 | fill "#000000" | ||
1420 | targetArrow "standard" | ||
1421 | ] | ||
1422 | LabelGraphics | ||
1423 | [ | ||
1424 | text "lowerBound attribute ETypedElement" | ||
1425 | fontSize 14 | ||
1426 | fontName "Consolas" | ||
1427 | configuration "AutoFlippingLabel" | ||
1428 | model "six_pos" | ||
1429 | position "thead" | ||
1430 | ] | ||
1431 | ] | ||
1432 | edge | ||
1433 | [ | ||
1434 | source 12 | ||
1435 | target 5 | ||
1436 | graphics | ||
1437 | [ | ||
1438 | fill "#000000" | ||
1439 | targetArrow "standard" | ||
1440 | ] | ||
1441 | LabelGraphics | ||
1442 | [ | ||
1443 | text "upperBound attribute ETypedElement" | ||
1444 | fontSize 14 | ||
1445 | fontName "Consolas" | ||
1446 | configuration "AutoFlippingLabel" | ||
1447 | model "six_pos" | ||
1448 | position "thead" | ||
1449 | ] | ||
1450 | ] | ||
1451 | edge | ||
1452 | [ | ||
1453 | source 12 | ||
1454 | target 1 | ||
1455 | graphics | ||
1456 | [ | ||
1457 | fill "#000000" | ||
1458 | targetArrow "standard" | ||
1459 | ] | ||
1460 | LabelGraphics | ||
1461 | [ | ||
1462 | text "many attribute ETypedElement" | ||
1463 | fontSize 14 | ||
1464 | fontName "Consolas" | ||
1465 | configuration "AutoFlippingLabel" | ||
1466 | model "six_pos" | ||
1467 | position "thead" | ||
1468 | ] | ||
1469 | ] | ||
1470 | edge | ||
1471 | [ | ||
1472 | source 12 | ||
1473 | target 2 | ||
1474 | graphics | ||
1475 | [ | ||
1476 | fill "#000000" | ||
1477 | targetArrow "standard" | ||
1478 | ] | ||
1479 | LabelGraphics | ||
1480 | [ | ||
1481 | text "required attribute ETypedElement" | ||
1482 | fontSize 14 | ||
1483 | fontName "Consolas" | ||
1484 | configuration "AutoFlippingLabel" | ||
1485 | model "six_pos" | ||
1486 | position "thead" | ||
1487 | ] | ||
1488 | ] | ||
1489 | ] | ||
1490 | graph | ||
1491 | [ | ||
1492 | node | ||
1493 | [ | ||
1494 | id 0 | ||
1495 | graphics | ||
1496 | [ | ||
1497 | w 254.10000000000002 | ||
1498 | h 110 | ||
1499 | type "rectangle" | ||
1500 | fill "#FFFFFF" | ||
1501 | fill2 "#FFFFFF" | ||
1502 | outline "#000000" | ||
1503 | ] | ||
1504 | LabelGraphics | ||
1505 | [ | ||
1506 | text "o 1" | ||
1507 | outline "#000000" | ||
1508 | fill "#FFFFFF" | ||
1509 | fontSize 16 | ||
1510 | fontName "Monospace" | ||
1511 | autoSizePolicy "node_width" | ||
1512 | anchor "t" | ||
1513 | borderDistance 0.0 | ||
1514 | ] | ||
1515 | LabelGraphics | ||
1516 | [ | ||
1517 | text " | ||
1518 | EModelElement class DefinedPart | ||
1519 | ENamedElement class DefinedPart | ||
1520 | EPackage class DefinedPart | ||
1521 | EModelElement class | ||
1522 | ENamedElement class | ||
1523 | EPackage class | ||
1524 | " | ||
1525 | fontSize 14 | ||
1526 | fontName "Consolas" | ||
1527 | alignment "left" | ||
1528 | anchor "tl" | ||
1529 | borderDistance 6 | ||
1530 | ] | ||
1531 | ] | ||
1532 | |||
1533 | node | ||
1534 | [ | ||
1535 | id 1 | ||
1536 | graphics | ||
1537 | [ | ||
1538 | w 41.800000000000004 | ||
1539 | h 26 | ||
1540 | type "rectangle" | ||
1541 | fill "#FFFFFF" | ||
1542 | fill2 "#FFFFFF" | ||
1543 | outline "#000000" | ||
1544 | ] | ||
1545 | LabelGraphics | ||
1546 | [ | ||
1547 | text "true" | ||
1548 | outline "#000000" | ||
1549 | fill "#FFFFFF" | ||
1550 | fontSize 16 | ||
1551 | fontName "Monospace" | ||
1552 | autoSizePolicy "node_width" | ||
1553 | anchor "t" | ||
1554 | borderDistance 0.0 | ||
1555 | ] | ||
1556 | LabelGraphics | ||
1557 | [ | ||
1558 | text " | ||
1559 | " | ||
1560 | fontSize 14 | ||
1561 | fontName "Consolas" | ||
1562 | alignment "left" | ||
1563 | anchor "tl" | ||
1564 | borderDistance 6 | ||
1565 | ] | ||
1566 | ] | ||
1567 | |||
1568 | node | ||
1569 | [ | ||
1570 | id 2 | ||
1571 | graphics | ||
1572 | [ | ||
1573 | w 50.6 | ||
1574 | h 26 | ||
1575 | type "rectangle" | ||
1576 | fill "#FFFFFF" | ||
1577 | fill2 "#FFFFFF" | ||
1578 | outline "#000000" | ||
1579 | ] | ||
1580 | LabelGraphics | ||
1581 | [ | ||
1582 | text "false" | ||
1583 | outline "#000000" | ||
1584 | fill "#FFFFFF" | ||
1585 | fontSize 16 | ||
1586 | fontName "Monospace" | ||
1587 | autoSizePolicy "node_width" | ||
1588 | anchor "t" | ||
1589 | borderDistance 0.0 | ||
1590 | ] | ||
1591 | LabelGraphics | ||
1592 | [ | ||
1593 | text " | ||
1594 | " | ||
1595 | fontSize 14 | ||
1596 | fontName "Consolas" | ||
1597 | alignment "left" | ||
1598 | anchor "tl" | ||
1599 | borderDistance 6 | ||
1600 | ] | ||
1601 | ] | ||
1602 | |||
1603 | node | ||
1604 | [ | ||
1605 | id 3 | ||
1606 | graphics | ||
1607 | [ | ||
1608 | w 24.200000000000003 | ||
1609 | h 26 | ||
1610 | type "rectangle" | ||
1611 | fill "#FFFFFF" | ||
1612 | fill2 "#FFFFFF" | ||
1613 | outline "#000000" | ||
1614 | ] | ||
1615 | LabelGraphics | ||
1616 | [ | ||
1617 | text "-1" | ||
1618 | outline "#000000" | ||
1619 | fill "#FFFFFF" | ||
1620 | fontSize 16 | ||
1621 | fontName "Monospace" | ||
1622 | autoSizePolicy "node_width" | ||
1623 | anchor "t" | ||
1624 | borderDistance 0.0 | ||
1625 | ] | ||
1626 | LabelGraphics | ||
1627 | [ | ||
1628 | text " | ||
1629 | " | ||
1630 | fontSize 14 | ||
1631 | fontName "Consolas" | ||
1632 | alignment "left" | ||
1633 | anchor "tl" | ||
1634 | borderDistance 6 | ||
1635 | ] | ||
1636 | ] | ||
1637 | |||
1638 | node | ||
1639 | [ | ||
1640 | id 4 | ||
1641 | graphics | ||
1642 | [ | ||
1643 | w 15.400000000000002 | ||
1644 | h 26 | ||
1645 | type "rectangle" | ||
1646 | fill "#FFFFFF" | ||
1647 | fill2 "#FFFFFF" | ||
1648 | outline "#000000" | ||
1649 | ] | ||
1650 | LabelGraphics | ||
1651 | [ | ||
1652 | text "0" | ||
1653 | outline "#000000" | ||
1654 | fill "#FFFFFF" | ||
1655 | fontSize 16 | ||
1656 | fontName "Monospace" | ||
1657 | autoSizePolicy "node_width" | ||
1658 | anchor "t" | ||
1659 | borderDistance 0.0 | ||
1660 | ] | ||
1661 | LabelGraphics | ||
1662 | [ | ||
1663 | text " | ||
1664 | " | ||
1665 | fontSize 14 | ||
1666 | fontName "Consolas" | ||
1667 | alignment "left" | ||
1668 | anchor "tl" | ||
1669 | borderDistance 6 | ||
1670 | ] | ||
1671 | ] | ||
1672 | |||
1673 | node | ||
1674 | [ | ||
1675 | id 5 | ||
1676 | graphics | ||
1677 | [ | ||
1678 | w 15.400000000000002 | ||
1679 | h 26 | ||
1680 | type "rectangle" | ||
1681 | fill "#FFFFFF" | ||
1682 | fill2 "#FFFFFF" | ||
1683 | outline "#000000" | ||
1684 | ] | ||
1685 | LabelGraphics | ||
1686 | [ | ||
1687 | text "1" | ||
1688 | outline "#000000" | ||
1689 | fill "#FFFFFF" | ||
1690 | fontSize 16 | ||
1691 | fontName "Monospace" | ||
1692 | autoSizePolicy "node_width" | ||
1693 | anchor "t" | ||
1694 | borderDistance 0.0 | ||
1695 | ] | ||
1696 | LabelGraphics | ||
1697 | [ | ||
1698 | text " | ||
1699 | " | ||
1700 | fontSize 14 | ||
1701 | fontName "Consolas" | ||
1702 | alignment "left" | ||
1703 | anchor "tl" | ||
1704 | borderDistance 6 | ||
1705 | ] | ||
1706 | ] | ||
1707 | |||
1708 | node | ||
1709 | [ | ||
1710 | id 6 | ||
1711 | graphics | ||
1712 | [ | ||
1713 | w 33.0 | ||
1714 | h 26 | ||
1715 | type "rectangle" | ||
1716 | fill "#FFFFFF" | ||
1717 | fill2 "#FFFFFF" | ||
1718 | outline "#000000" | ||
1719 | ] | ||
1720 | LabelGraphics | ||
1721 | [ | ||
1722 | text ""A"" | ||
1723 | outline "#000000" | ||
1724 | fill "#FFFFFF" | ||
1725 | fontSize 16 | ||
1726 | fontName "Monospace" | ||
1727 | autoSizePolicy "node_width" | ||
1728 | anchor "t" | ||
1729 | borderDistance 0.0 | ||
1730 | ] | ||
1731 | LabelGraphics | ||
1732 | [ | ||
1733 | text " | ||
1734 | " | ||
1735 | fontSize 14 | ||
1736 | fontName "Consolas" | ||
1737 | alignment "left" | ||
1738 | anchor "tl" | ||
1739 | borderDistance 6 | ||
1740 | ] | ||
1741 | ] | ||
1742 | |||
1743 | node | ||
1744 | [ | ||
1745 | id 7 | ||
1746 | graphics | ||
1747 | [ | ||
1748 | w 33.0 | ||
1749 | h 26 | ||
1750 | type "rectangle" | ||
1751 | fill "#FFFFFF" | ||
1752 | fill2 "#FFFFFF" | ||
1753 | outline "#000000" | ||
1754 | ] | ||
1755 | LabelGraphics | ||
1756 | [ | ||
1757 | text ""B"" | ||
1758 | outline "#000000" | ||
1759 | fill "#FFFFFF" | ||
1760 | fontSize 16 | ||
1761 | fontName "Monospace" | ||
1762 | autoSizePolicy "node_width" | ||
1763 | anchor "t" | ||
1764 | borderDistance 0.0 | ||
1765 | ] | ||
1766 | LabelGraphics | ||
1767 | [ | ||
1768 | text " | ||
1769 | " | ||
1770 | fontSize 14 | ||
1771 | fontName "Consolas" | ||
1772 | alignment "left" | ||
1773 | anchor "tl" | ||
1774 | borderDistance 6 | ||
1775 | ] | ||
1776 | ] | ||
1777 | |||
1778 | node | ||
1779 | [ | ||
1780 | id 8 | ||
1781 | graphics | ||
1782 | [ | ||
1783 | w 94.60000000000001 | ||
1784 | h 26 | ||
1785 | type "rectangle" | ||
1786 | fill "#FFFFFF" | ||
1787 | fill2 "#FFFFFF" | ||
1788 | outline "#000000" | ||
1789 | ] | ||
1790 | LabelGraphics | ||
1791 | [ | ||
1792 | text ""nsPrefix"" | ||
1793 | outline "#000000" | ||
1794 | fill "#FFFFFF" | ||
1795 | fontSize 16 | ||
1796 | fontName "Monospace" | ||
1797 | autoSizePolicy "node_width" | ||
1798 | anchor "t" | ||
1799 | borderDistance 0.0 | ||
1800 | ] | ||
1801 | LabelGraphics | ||
1802 | [ | ||
1803 | text " | ||
1804 | " | ||
1805 | fontSize 14 | ||
1806 | fontName "Consolas" | ||
1807 | alignment "left" | ||
1808 | anchor "tl" | ||
1809 | borderDistance 6 | ||
1810 | ] | ||
1811 | ] | ||
1812 | |||
1813 | node | ||
1814 | [ | ||
1815 | id 9 | ||
1816 | graphics | ||
1817 | [ | ||
1818 | w 68.2 | ||
1819 | h 26 | ||
1820 | type "rectangle" | ||
1821 | fill "#FFFFFF" | ||
1822 | fill2 "#FFFFFF" | ||
1823 | outline "#000000" | ||
1824 | ] | ||
1825 | LabelGraphics | ||
1826 | [ | ||
1827 | text ""nsUri"" | ||
1828 | outline "#000000" | ||
1829 | fill "#FFFFFF" | ||
1830 | fontSize 16 | ||
1831 | fontName "Monospace" | ||
1832 | autoSizePolicy "node_width" | ||
1833 | anchor "t" | ||
1834 | borderDistance 0.0 | ||
1835 | ] | ||
1836 | LabelGraphics | ||
1837 | [ | ||
1838 | text " | ||
1839 | " | ||
1840 | fontSize 14 | ||
1841 | fontName "Consolas" | ||
1842 | alignment "left" | ||
1843 | anchor "tl" | ||
1844 | borderDistance 6 | ||
1845 | ] | ||
1846 | ] | ||
1847 | |||
1848 | node | ||
1849 | [ | ||
1850 | id 10 | ||
1851 | graphics | ||
1852 | [ | ||
1853 | w 121.00000000000001 | ||
1854 | h 26 | ||
1855 | type "rectangle" | ||
1856 | fill "#FFFFFF" | ||
1857 | fill2 "#FFFFFF" | ||
1858 | outline "#000000" | ||
1859 | ] | ||
1860 | LabelGraphics | ||
1861 | [ | ||
1862 | text ""packageName"" | ||
1863 | outline "#000000" | ||
1864 | fill "#FFFFFF" | ||
1865 | fontSize 16 | ||
1866 | fontName "Monospace" | ||
1867 | autoSizePolicy "node_width" | ||
1868 | anchor "t" | ||
1869 | borderDistance 0.0 | ||
1870 | ] | ||
1871 | LabelGraphics | ||
1872 | [ | ||
1873 | text " | ||
1874 | " | ||
1875 | fontSize 14 | ||
1876 | fontName "Consolas" | ||
1877 | alignment "left" | ||
1878 | anchor "tl" | ||
1879 | borderDistance 6 | ||
1880 | ] | ||
1881 | ] | ||
1882 | |||
1883 | node | ||
1884 | [ | ||
1885 | id 11 | ||
1886 | graphics | ||
1887 | [ | ||
1888 | w 269.5 | ||
1889 | h 124 | ||
1890 | type "rectangle" | ||
1891 | fill "#FFFFFF" | ||
1892 | fill2 "#FFFFFF" | ||
1893 | outline "#000000" | ||
1894 | ] | ||
1895 | LabelGraphics | ||
1896 | [ | ||
1897 | text "null" | ||
1898 | outline "#000000" | ||
1899 | fill "#FFFFFF" | ||
1900 | fontSize 16 | ||
1901 | fontName "Monospace" | ||
1902 | autoSizePolicy "node_width" | ||
1903 | anchor "t" | ||
1904 | borderDistance 0.0 | ||
1905 | ] | ||
1906 | LabelGraphics | ||
1907 | [ | ||
1908 | text " | ||
1909 | EClassifier class | ||
1910 | EDataType class | ||
1911 | EEnum class | ||
1912 | EModelElement class | ||
1913 | ENamedElement class | ||
1914 | EModelElement class UndefinedPart | ||
1915 | ENamedElement class UndefinedPart | ||
1916 | " | ||
1917 | fontSize 14 | ||
1918 | fontName "Consolas" | ||
1919 | alignment "left" | ||
1920 | anchor "tl" | ||
1921 | borderDistance 6 | ||
1922 | ] | ||
1923 | ] | ||
1924 | |||
1925 | node | ||
1926 | [ | ||
1927 | id 12 | ||
1928 | graphics | ||
1929 | [ | ||
1930 | w 269.5 | ||
1931 | h 110 | ||
1932 | type "rectangle" | ||
1933 | fill "#FFFFFF" | ||
1934 | fill2 "#FFFFFF" | ||
1935 | outline "#000000" | ||
1936 | ] | ||
1937 | LabelGraphics | ||
1938 | [ | ||
1939 | text "null" | ||
1940 | outline "#000000" | ||
1941 | fill "#FFFFFF" | ||
1942 | fontSize 16 | ||
1943 | fontName "Monospace" | ||
1944 | autoSizePolicy "node_width" | ||
1945 | anchor "t" | ||
1946 | borderDistance 0.0 | ||
1947 | ] | ||
1948 | LabelGraphics | ||
1949 | [ | ||
1950 | text " | ||
1951 | EClassifier class | ||
1952 | EDataType class | ||
1953 | EModelElement class | ||
1954 | ENamedElement class | ||
1955 | EModelElement class UndefinedPart | ||
1956 | ENamedElement class UndefinedPart | ||
1957 | " | ||
1958 | fontSize 14 | ||
1959 | fontName "Consolas" | ||
1960 | alignment "left" | ||
1961 | anchor "tl" | ||
1962 | borderDistance 6 | ||
1963 | ] | ||
1964 | ] | ||
1965 | |||
1966 | node | ||
1967 | [ | ||
1968 | id 13 | ||
1969 | graphics | ||
1970 | [ | ||
1971 | w 269.5 | ||
1972 | h 68 | ||
1973 | type "rectangle" | ||
1974 | fill "#FFFFFF" | ||
1975 | fill2 "#FFFFFF" | ||
1976 | outline "#000000" | ||
1977 | ] | ||
1978 | LabelGraphics | ||
1979 | [ | ||
1980 | text "null" | ||
1981 | outline "#000000" | ||
1982 | fill "#FFFFFF" | ||
1983 | fontSize 16 | ||
1984 | fontName "Monospace" | ||
1985 | autoSizePolicy "node_width" | ||
1986 | anchor "t" | ||
1987 | borderDistance 0.0 | ||
1988 | ] | ||
1989 | LabelGraphics | ||
1990 | [ | ||
1991 | text " | ||
1992 | EAnnotation class | ||
1993 | EModelElement class | ||
1994 | EModelElement class UndefinedPart | ||
1995 | " | ||
1996 | fontSize 14 | ||
1997 | fontName "Consolas" | ||
1998 | alignment "left" | ||
1999 | anchor "tl" | ||
2000 | borderDistance 6 | ||
2001 | ] | ||
2002 | ] | ||
2003 | |||
2004 | node | ||
2005 | [ | ||
2006 | id 14 | ||
2007 | graphics | ||
2008 | [ | ||
2009 | w 269.5 | ||
2010 | h 124 | ||
2011 | type "rectangle" | ||
2012 | fill "#FFFFFF" | ||
2013 | fill2 "#FFFFFF" | ||
2014 | outline "#000000" | ||
2015 | ] | ||
2016 | LabelGraphics | ||
2017 | [ | ||
2018 | text "null" | ||
2019 | outline "#000000" | ||
2020 | fill "#FFFFFF" | ||
2021 | fontSize 16 | ||
2022 | fontName "Monospace" | ||
2023 | autoSizePolicy "node_width" | ||
2024 | anchor "t" | ||
2025 | borderDistance 0.0 | ||
2026 | ] | ||
2027 | LabelGraphics | ||
2028 | [ | ||
2029 | text " | ||
2030 | EClassifier class | ||
2031 | EDataType class | ||
2032 | EEnum class | ||
2033 | EModelElement class | ||
2034 | ENamedElement class | ||
2035 | EModelElement class UndefinedPart | ||
2036 | ENamedElement class UndefinedPart | ||
2037 | " | ||
2038 | fontSize 14 | ||
2039 | fontName "Consolas" | ||
2040 | alignment "left" | ||
2041 | anchor "tl" | ||
2042 | borderDistance 6 | ||
2043 | ] | ||
2044 | ] | ||
2045 | |||
2046 | node | ||
2047 | [ | ||
2048 | id 15 | ||
2049 | graphics | ||
2050 | [ | ||
2051 | w 269.5 | ||
2052 | h 96 | ||
2053 | type "rectangle" | ||
2054 | fill "#FFFFFF" | ||
2055 | fill2 "#FFFFFF" | ||
2056 | outline "#000000" | ||
2057 | ] | ||
2058 | LabelGraphics | ||
2059 | [ | ||
2060 | text "null" | ||
2061 | outline "#000000" | ||
2062 | fill "#FFFFFF" | ||
2063 | fontSize 16 | ||
2064 | fontName "Monospace" | ||
2065 | autoSizePolicy "node_width" | ||
2066 | anchor "t" | ||
2067 | borderDistance 0.0 | ||
2068 | ] | ||
2069 | LabelGraphics | ||
2070 | [ | ||
2071 | text " | ||
2072 | EEnumLiteral class | ||
2073 | EModelElement class | ||
2074 | ENamedElement class | ||
2075 | EModelElement class UndefinedPart | ||
2076 | ENamedElement class UndefinedPart | ||
2077 | " | ||
2078 | fontSize 14 | ||
2079 | fontName "Consolas" | ||
2080 | alignment "left" | ||
2081 | anchor "tl" | ||
2082 | borderDistance 6 | ||
2083 | ] | ||
2084 | ] | ||
2085 | |||
2086 | node | ||
2087 | [ | ||
2088 | id 16 | ||
2089 | graphics | ||
2090 | [ | ||
2091 | w 112.2 | ||
2092 | h 26 | ||
2093 | type "rectangle" | ||
2094 | fill "#FFFFFF" | ||
2095 | fill2 "#FFFFFF" | ||
2096 | outline "#000000" | ||
2097 | ] | ||
2098 | LabelGraphics | ||
2099 | [ | ||
2100 | text "New Integers" | ||
2101 | outline "#000000" | ||
2102 | fill "#FFFFFF" | ||
2103 | fontSize 16 | ||
2104 | fontName "Monospace" | ||
2105 | autoSizePolicy "node_width" | ||
2106 | anchor "t" | ||
2107 | borderDistance 0.0 | ||
2108 | ] | ||
2109 | LabelGraphics | ||
2110 | [ | ||
2111 | text " | ||
2112 | " | ||
2113 | fontSize 14 | ||
2114 | fontName "Consolas" | ||
2115 | alignment "left" | ||
2116 | anchor "tl" | ||
2117 | borderDistance 6 | ||
2118 | ] | ||
2119 | ] | ||
2120 | |||
2121 | node | ||
2122 | [ | ||
2123 | id 17 | ||
2124 | graphics | ||
2125 | [ | ||
2126 | w 85.80000000000001 | ||
2127 | h 26 | ||
2128 | type "rectangle" | ||
2129 | fill "#FFFFFF" | ||
2130 | fill2 "#FFFFFF" | ||
2131 | outline "#000000" | ||
2132 | ] | ||
2133 | LabelGraphics | ||
2134 | [ | ||
2135 | text "New Reals" | ||
2136 | outline "#000000" | ||
2137 | fill "#FFFFFF" | ||
2138 | fontSize 16 | ||
2139 | fontName "Monospace" | ||
2140 | autoSizePolicy "node_width" | ||
2141 | anchor "t" | ||
2142 | borderDistance 0.0 | ||
2143 | ] | ||
2144 | LabelGraphics | ||
2145 | [ | ||
2146 | text " | ||
2147 | " | ||
2148 | fontSize 14 | ||
2149 | fontName "Consolas" | ||
2150 | alignment "left" | ||
2151 | anchor "tl" | ||
2152 | borderDistance 6 | ||
2153 | ] | ||
2154 | ] | ||
2155 | |||
2156 | node | ||
2157 | [ | ||
2158 | id 18 | ||
2159 | graphics | ||
2160 | [ | ||
2161 | w 103.4 | ||
2162 | h 26 | ||
2163 | type "rectangle" | ||
2164 | fill "#FFFFFF" | ||
2165 | fill2 "#FFFFFF" | ||
2166 | outline "#000000" | ||
2167 | ] | ||
2168 | LabelGraphics | ||
2169 | [ | ||
2170 | text "New Strings" | ||
2171 | outline "#000000" | ||
2172 | fill "#FFFFFF" | ||
2173 | fontSize 16 | ||
2174 | fontName "Monospace" | ||
2175 | autoSizePolicy "node_width" | ||
2176 | anchor "t" | ||
2177 | borderDistance 0.0 | ||
2178 | ] | ||
2179 | LabelGraphics | ||
2180 | [ | ||
2181 | text " | ||
2182 | " | ||
2183 | fontSize 14 | ||
2184 | fontName "Consolas" | ||
2185 | alignment "left" | ||
2186 | anchor "tl" | ||
2187 | borderDistance 6 | ||
2188 | ] | ||
2189 | ] | ||
2190 | |||
2191 | node | ||
2192 | [ | ||
2193 | id 19 | ||
2194 | graphics | ||
2195 | [ | ||
2196 | w 103.4 | ||
2197 | h 26 | ||
2198 | type "rectangle" | ||
2199 | fill "#FFFFFF" | ||
2200 | fill2 "#FFFFFF" | ||
2201 | outline "#000000" | ||
2202 | ] | ||
2203 | LabelGraphics | ||
2204 | [ | ||
2205 | text "New Objects" | ||
2206 | outline "#000000" | ||
2207 | fill "#FFFFFF" | ||
2208 | fontSize 16 | ||
2209 | fontName "Monospace" | ||
2210 | autoSizePolicy "node_width" | ||
2211 | anchor "t" | ||
2212 | borderDistance 0.0 | ||
2213 | ] | ||
2214 | LabelGraphics | ||
2215 | [ | ||
2216 | text " | ||
2217 | " | ||
2218 | fontSize 14 | ||
2219 | fontName "Consolas" | ||
2220 | alignment "left" | ||
2221 | anchor "tl" | ||
2222 | borderDistance 6 | ||
2223 | ] | ||
2224 | ] | ||
2225 | edge | ||
2226 | [ | ||
2227 | source 13 | ||
2228 | target 0 | ||
2229 | graphics | ||
2230 | [ | ||
2231 | fill "#000000" | ||
2232 | targetArrow "standard" | ||
2233 | ] | ||
2234 | LabelGraphics | ||
2235 | [ | ||
2236 | text "eModelElement reference EAnnotation" | ||
2237 | fontSize 14 | ||
2238 | fontName "Consolas" | ||
2239 | configuration "AutoFlippingLabel" | ||
2240 | model "six_pos" | ||
2241 | position "thead" | ||
2242 | ] | ||
2243 | ] | ||
2244 | edge | ||
2245 | [ | ||
2246 | source 11 | ||
2247 | target 0 | ||
2248 | graphics | ||
2249 | [ | ||
2250 | fill "#000000" | ||
2251 | targetArrow "standard" | ||
2252 | ] | ||
2253 | LabelGraphics | ||
2254 | [ | ||
2255 | text "ePackage reference EClassifier" | ||
2256 | fontSize 14 | ||
2257 | fontName "Consolas" | ||
2258 | configuration "AutoFlippingLabel" | ||
2259 | model "six_pos" | ||
2260 | position "thead" | ||
2261 | ] | ||
2262 | ] | ||
2263 | edge | ||
2264 | [ | ||
2265 | source 12 | ||
2266 | target 0 | ||
2267 | graphics | ||
2268 | [ | ||
2269 | fill "#000000" | ||
2270 | targetArrow "standard" | ||
2271 | ] | ||
2272 | LabelGraphics | ||
2273 | [ | ||
2274 | text "ePackage reference EClassifier" | ||
2275 | fontSize 14 | ||
2276 | fontName "Consolas" | ||
2277 | configuration "AutoFlippingLabel" | ||
2278 | model "six_pos" | ||
2279 | position "thead" | ||
2280 | ] | ||
2281 | ] | ||
2282 | edge | ||
2283 | [ | ||
2284 | source 14 | ||
2285 | target 0 | ||
2286 | graphics | ||
2287 | [ | ||
2288 | fill "#000000" | ||
2289 | targetArrow "standard" | ||
2290 | ] | ||
2291 | LabelGraphics | ||
2292 | [ | ||
2293 | text "ePackage reference EClassifier" | ||
2294 | fontSize 14 | ||
2295 | fontName "Consolas" | ||
2296 | configuration "AutoFlippingLabel" | ||
2297 | model "six_pos" | ||
2298 | position "thead" | ||
2299 | ] | ||
2300 | ] | ||
2301 | edge | ||
2302 | [ | ||
2303 | source 14 | ||
2304 | target 15 | ||
2305 | graphics | ||
2306 | [ | ||
2307 | fill "#000000" | ||
2308 | width 3 | ||
2309 | targetArrow "standard" | ||
2310 | ] | ||
2311 | LabelGraphics | ||
2312 | [ | ||
2313 | text "eLiterals reference EEnum" | ||
2314 | fontSize 14 | ||
2315 | fontName "Consolas" | ||
2316 | configuration "AutoFlippingLabel" | ||
2317 | model "six_pos" | ||
2318 | position "thead" | ||
2319 | ] | ||
2320 | ] | ||
2321 | edge | ||
2322 | [ | ||
2323 | source 15 | ||
2324 | target 14 | ||
2325 | graphics | ||
2326 | [ | ||
2327 | fill "#000000" | ||
2328 | targetArrow "standard" | ||
2329 | ] | ||
2330 | LabelGraphics | ||
2331 | [ | ||
2332 | text "eEnum reference EEnumLiteral" | ||
2333 | fontSize 14 | ||
2334 | fontName "Consolas" | ||
2335 | configuration "AutoFlippingLabel" | ||
2336 | model "six_pos" | ||
2337 | position "thead" | ||
2338 | ] | ||
2339 | ] | ||
2340 | edge | ||
2341 | [ | ||
2342 | source 0 | ||
2343 | target 13 | ||
2344 | graphics | ||
2345 | [ | ||
2346 | fill "#000000" | ||
2347 | width 3 | ||
2348 | targetArrow "standard" | ||
2349 | ] | ||
2350 | LabelGraphics | ||
2351 | [ | ||
2352 | text "eAnnotations reference EModelElement" | ||
2353 | fontSize 14 | ||
2354 | fontName "Consolas" | ||
2355 | configuration "AutoFlippingLabel" | ||
2356 | model "six_pos" | ||
2357 | position "thead" | ||
2358 | ] | ||
2359 | ] | ||
2360 | edge | ||
2361 | [ | ||
2362 | source 0 | ||
2363 | target 11 | ||
2364 | graphics | ||
2365 | [ | ||
2366 | fill "#000000" | ||
2367 | width 3 | ||
2368 | targetArrow "standard" | ||
2369 | ] | ||
2370 | LabelGraphics | ||
2371 | [ | ||
2372 | text "eClassifiers reference EPackage" | ||
2373 | fontSize 14 | ||
2374 | fontName "Consolas" | ||
2375 | configuration "AutoFlippingLabel" | ||
2376 | model "six_pos" | ||
2377 | position "thead" | ||
2378 | ] | ||
2379 | ] | ||
2380 | edge | ||
2381 | [ | ||
2382 | source 0 | ||
2383 | target 12 | ||
2384 | graphics | ||
2385 | [ | ||
2386 | fill "#000000" | ||
2387 | width 3 | ||
2388 | targetArrow "standard" | ||
2389 | ] | ||
2390 | LabelGraphics | ||
2391 | [ | ||
2392 | text "eClassifiers reference EPackage" | ||
2393 | fontSize 14 | ||
2394 | fontName "Consolas" | ||
2395 | configuration "AutoFlippingLabel" | ||
2396 | model "six_pos" | ||
2397 | position "thead" | ||
2398 | ] | ||
2399 | ] | ||
2400 | edge | ||
2401 | [ | ||
2402 | source 0 | ||
2403 | target 14 | ||
2404 | graphics | ||
2405 | [ | ||
2406 | fill "#000000" | ||
2407 | width 3 | ||
2408 | targetArrow "standard" | ||
2409 | ] | ||
2410 | LabelGraphics | ||
2411 | [ | ||
2412 | text "eClassifiers reference EPackage" | ||
2413 | fontSize 14 | ||
2414 | fontName "Consolas" | ||
2415 | configuration "AutoFlippingLabel" | ||
2416 | model "six_pos" | ||
2417 | position "thead" | ||
2418 | ] | ||
2419 | ] | ||
2420 | edge | ||
2421 | [ | ||
2422 | source 13 | ||
2423 | target 9 | ||
2424 | graphics | ||
2425 | [ | ||
2426 | fill "#000000" | ||
2427 | targetArrow "standard" | ||
2428 | ] | ||
2429 | LabelGraphics | ||
2430 | [ | ||
2431 | text "source attribute EAnnotation" | ||
2432 | fontSize 14 | ||
2433 | fontName "Consolas" | ||
2434 | configuration "AutoFlippingLabel" | ||
2435 | model "six_pos" | ||
2436 | position "thead" | ||
2437 | ] | ||
2438 | ] | ||
2439 | edge | ||
2440 | [ | ||
2441 | source 11 | ||
2442 | target 6 | ||
2443 | graphics | ||
2444 | [ | ||
2445 | fill "#000000" | ||
2446 | targetArrow "standard" | ||
2447 | ] | ||
2448 | LabelGraphics | ||
2449 | [ | ||
2450 | text "instanceClassName attribute EClassifier" | ||
2451 | fontSize 14 | ||
2452 | fontName "Consolas" | ||
2453 | configuration "AutoFlippingLabel" | ||
2454 | model "six_pos" | ||
2455 | position "thead" | ||
2456 | ] | ||
2457 | ] | ||
2458 | edge | ||
2459 | [ | ||
2460 | source 12 | ||
2461 | target 10 | ||
2462 | graphics | ||
2463 | [ | ||
2464 | fill "#000000" | ||
2465 | targetArrow "standard" | ||
2466 | ] | ||
2467 | LabelGraphics | ||
2468 | [ | ||
2469 | text "instanceTypeName attribute EClassifier" | ||
2470 | fontSize 14 | ||
2471 | fontName "Consolas" | ||
2472 | configuration "AutoFlippingLabel" | ||
2473 | model "six_pos" | ||
2474 | position "thead" | ||
2475 | ] | ||
2476 | ] | ||
2477 | edge | ||
2478 | [ | ||
2479 | source 14 | ||
2480 | target 8 | ||
2481 | graphics | ||
2482 | [ | ||
2483 | fill "#000000" | ||
2484 | targetArrow "standard" | ||
2485 | ] | ||
2486 | LabelGraphics | ||
2487 | [ | ||
2488 | text "instanceTypeName attribute EClassifier" | ||
2489 | fontSize 14 | ||
2490 | fontName "Consolas" | ||
2491 | configuration "AutoFlippingLabel" | ||
2492 | model "six_pos" | ||
2493 | position "thead" | ||
2494 | ] | ||
2495 | ] | ||
2496 | edge | ||
2497 | [ | ||
2498 | source 12 | ||
2499 | target 2 | ||
2500 | graphics | ||
2501 | [ | ||
2502 | fill "#000000" | ||
2503 | targetArrow "standard" | ||
2504 | ] | ||
2505 | LabelGraphics | ||
2506 | [ | ||
2507 | text "serializable attribute EDataType" | ||
2508 | fontSize 14 | ||
2509 | fontName "Consolas" | ||
2510 | configuration "AutoFlippingLabel" | ||
2511 | model "six_pos" | ||
2512 | position "thead" | ||
2513 | ] | ||
2514 | ] | ||
2515 | edge | ||
2516 | [ | ||
2517 | source 14 | ||
2518 | target 2 | ||
2519 | graphics | ||
2520 | [ | ||
2521 | fill "#000000" | ||
2522 | targetArrow "standard" | ||
2523 | ] | ||
2524 | LabelGraphics | ||
2525 | [ | ||
2526 | text "serializable attribute EDataType" | ||
2527 | fontSize 14 | ||
2528 | fontName "Consolas" | ||
2529 | configuration "AutoFlippingLabel" | ||
2530 | model "six_pos" | ||
2531 | position "thead" | ||
2532 | ] | ||
2533 | ] | ||
2534 | edge | ||
2535 | [ | ||
2536 | source 0 | ||
2537 | target 10 | ||
2538 | graphics | ||
2539 | [ | ||
2540 | fill "#000000" | ||
2541 | targetArrow "standard" | ||
2542 | ] | ||
2543 | LabelGraphics | ||
2544 | [ | ||
2545 | text "name attribute ENamedElement" | ||
2546 | fontSize 14 | ||
2547 | fontName "Consolas" | ||
2548 | configuration "AutoFlippingLabel" | ||
2549 | model "six_pos" | ||
2550 | position "thead" | ||
2551 | ] | ||
2552 | ] | ||
2553 | edge | ||
2554 | [ | ||
2555 | source 11 | ||
2556 | target 10 | ||
2557 | graphics | ||
2558 | [ | ||
2559 | fill "#000000" | ||
2560 | targetArrow "standard" | ||
2561 | ] | ||
2562 | LabelGraphics | ||
2563 | [ | ||
2564 | text "name attribute ENamedElement" | ||
2565 | fontSize 14 | ||
2566 | fontName "Consolas" | ||
2567 | configuration "AutoFlippingLabel" | ||
2568 | model "six_pos" | ||
2569 | position "thead" | ||
2570 | ] | ||
2571 | ] | ||
2572 | edge | ||
2573 | [ | ||
2574 | source 12 | ||
2575 | target 9 | ||
2576 | graphics | ||
2577 | [ | ||
2578 | fill "#000000" | ||
2579 | targetArrow "standard" | ||
2580 | ] | ||
2581 | LabelGraphics | ||
2582 | [ | ||
2583 | text "name attribute ENamedElement" | ||
2584 | fontSize 14 | ||
2585 | fontName "Consolas" | ||
2586 | configuration "AutoFlippingLabel" | ||
2587 | model "six_pos" | ||
2588 | position "thead" | ||
2589 | ] | ||
2590 | ] | ||
2591 | edge | ||
2592 | [ | ||
2593 | source 0 | ||
2594 | target 9 | ||
2595 | graphics | ||
2596 | [ | ||
2597 | fill "#000000" | ||
2598 | targetArrow "standard" | ||
2599 | ] | ||
2600 | LabelGraphics | ||
2601 | [ | ||
2602 | text "nsURI attribute EPackage" | ||
2603 | fontSize 14 | ||
2604 | fontName "Consolas" | ||
2605 | configuration "AutoFlippingLabel" | ||
2606 | model "six_pos" | ||
2607 | position "thead" | ||
2608 | ] | ||
2609 | ] | ||
2610 | edge | ||
2611 | [ | ||
2612 | source 0 | ||
2613 | target 8 | ||
2614 | graphics | ||
2615 | [ | ||
2616 | fill "#000000" | ||
2617 | targetArrow "standard" | ||
2618 | ] | ||
2619 | LabelGraphics | ||
2620 | [ | ||
2621 | text "nsPrefix attribute EPackage" | ||
2622 | fontSize 14 | ||
2623 | fontName "Consolas" | ||
2624 | configuration "AutoFlippingLabel" | ||
2625 | model "six_pos" | ||
2626 | position "thead" | ||
2627 | ] | ||
2628 | ] | ||
2629 | ] | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/1.png b/Tests/Ecore-Plugin/outputs/models/1.png new file mode 100644 index 00000000..39e53424 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/1.png | |||
Binary files differ | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/1.xmi b/Tests/Ecore-Plugin/outputs/models/1.xmi new file mode 100644 index 00000000..cfd0f3d5 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/1.xmi | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> | ||
3 | <eAnnotations> | ||
4 | <details/> | ||
5 | <details/> | ||
6 | <details/> | ||
7 | <details/> | ||
8 | </eAnnotations> | ||
9 | </ecore:EPackage> | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/2.gml b/Tests/Ecore-Plugin/outputs/models/2.gml new file mode 100644 index 00000000..e7b87333 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/2.gml | |||
@@ -0,0 +1,2667 @@ | |||
1 | graph | ||
2 | [ | ||
3 | node | ||
4 | [ | ||
5 | id 0 | ||
6 | graphics | ||
7 | [ | ||
8 | w 254.10000000000002 | ||
9 | h 110 | ||
10 | type "rectangle" | ||
11 | fill "#FFFFFF" | ||
12 | fill2 "#FFFFFF" | ||
13 | outline "#000000" | ||
14 | ] | ||
15 | LabelGraphics | ||
16 | [ | ||
17 | text "o 1" | ||
18 | outline "#000000" | ||
19 | fill "#FFFFFF" | ||
20 | fontSize 16 | ||
21 | fontName "Monospace" | ||
22 | autoSizePolicy "node_width" | ||
23 | anchor "t" | ||
24 | borderDistance 0.0 | ||
25 | ] | ||
26 | LabelGraphics | ||
27 | [ | ||
28 | text " | ||
29 | EModelElement class DefinedPart | ||
30 | ENamedElement class DefinedPart | ||
31 | EPackage class DefinedPart | ||
32 | EModelElement class | ||
33 | ENamedElement class | ||
34 | EPackage class | ||
35 | " | ||
36 | fontSize 14 | ||
37 | fontName "Consolas" | ||
38 | alignment "left" | ||
39 | anchor "tl" | ||
40 | borderDistance 6 | ||
41 | ] | ||
42 | ] | ||
43 | |||
44 | node | ||
45 | [ | ||
46 | id 1 | ||
47 | graphics | ||
48 | [ | ||
49 | w 41.800000000000004 | ||
50 | h 26 | ||
51 | type "rectangle" | ||
52 | fill "#FFFFFF" | ||
53 | fill2 "#FFFFFF" | ||
54 | outline "#000000" | ||
55 | ] | ||
56 | LabelGraphics | ||
57 | [ | ||
58 | text "true" | ||
59 | outline "#000000" | ||
60 | fill "#FFFFFF" | ||
61 | fontSize 16 | ||
62 | fontName "Monospace" | ||
63 | autoSizePolicy "node_width" | ||
64 | anchor "t" | ||
65 | borderDistance 0.0 | ||
66 | ] | ||
67 | LabelGraphics | ||
68 | [ | ||
69 | text " | ||
70 | " | ||
71 | fontSize 14 | ||
72 | fontName "Consolas" | ||
73 | alignment "left" | ||
74 | anchor "tl" | ||
75 | borderDistance 6 | ||
76 | ] | ||
77 | ] | ||
78 | |||
79 | node | ||
80 | [ | ||
81 | id 2 | ||
82 | graphics | ||
83 | [ | ||
84 | w 50.6 | ||
85 | h 26 | ||
86 | type "rectangle" | ||
87 | fill "#FFFFFF" | ||
88 | fill2 "#FFFFFF" | ||
89 | outline "#000000" | ||
90 | ] | ||
91 | LabelGraphics | ||
92 | [ | ||
93 | text "false" | ||
94 | outline "#000000" | ||
95 | fill "#FFFFFF" | ||
96 | fontSize 16 | ||
97 | fontName "Monospace" | ||
98 | autoSizePolicy "node_width" | ||
99 | anchor "t" | ||
100 | borderDistance 0.0 | ||
101 | ] | ||
102 | LabelGraphics | ||
103 | [ | ||
104 | text " | ||
105 | " | ||
106 | fontSize 14 | ||
107 | fontName "Consolas" | ||
108 | alignment "left" | ||
109 | anchor "tl" | ||
110 | borderDistance 6 | ||
111 | ] | ||
112 | ] | ||
113 | |||
114 | node | ||
115 | [ | ||
116 | id 3 | ||
117 | graphics | ||
118 | [ | ||
119 | w 24.200000000000003 | ||
120 | h 26 | ||
121 | type "rectangle" | ||
122 | fill "#FFFFFF" | ||
123 | fill2 "#FFFFFF" | ||
124 | outline "#000000" | ||
125 | ] | ||
126 | LabelGraphics | ||
127 | [ | ||
128 | text "-1" | ||
129 | outline "#000000" | ||
130 | fill "#FFFFFF" | ||
131 | fontSize 16 | ||
132 | fontName "Monospace" | ||
133 | autoSizePolicy "node_width" | ||
134 | anchor "t" | ||
135 | borderDistance 0.0 | ||
136 | ] | ||
137 | LabelGraphics | ||
138 | [ | ||
139 | text " | ||
140 | " | ||
141 | fontSize 14 | ||
142 | fontName "Consolas" | ||
143 | alignment "left" | ||
144 | anchor "tl" | ||
145 | borderDistance 6 | ||
146 | ] | ||
147 | ] | ||
148 | |||
149 | node | ||
150 | [ | ||
151 | id 4 | ||
152 | graphics | ||
153 | [ | ||
154 | w 15.400000000000002 | ||
155 | h 26 | ||
156 | type "rectangle" | ||
157 | fill "#FFFFFF" | ||
158 | fill2 "#FFFFFF" | ||
159 | outline "#000000" | ||
160 | ] | ||
161 | LabelGraphics | ||
162 | [ | ||
163 | text "0" | ||
164 | outline "#000000" | ||
165 | fill "#FFFFFF" | ||
166 | fontSize 16 | ||
167 | fontName "Monospace" | ||
168 | autoSizePolicy "node_width" | ||
169 | anchor "t" | ||
170 | borderDistance 0.0 | ||
171 | ] | ||
172 | LabelGraphics | ||
173 | [ | ||
174 | text " | ||
175 | " | ||
176 | fontSize 14 | ||
177 | fontName "Consolas" | ||
178 | alignment "left" | ||
179 | anchor "tl" | ||
180 | borderDistance 6 | ||
181 | ] | ||
182 | ] | ||
183 | |||
184 | node | ||
185 | [ | ||
186 | id 5 | ||
187 | graphics | ||
188 | [ | ||
189 | w 15.400000000000002 | ||
190 | h 26 | ||
191 | type "rectangle" | ||
192 | fill "#FFFFFF" | ||
193 | fill2 "#FFFFFF" | ||
194 | outline "#000000" | ||
195 | ] | ||
196 | LabelGraphics | ||
197 | [ | ||
198 | text "1" | ||
199 | outline "#000000" | ||
200 | fill "#FFFFFF" | ||
201 | fontSize 16 | ||
202 | fontName "Monospace" | ||
203 | autoSizePolicy "node_width" | ||
204 | anchor "t" | ||
205 | borderDistance 0.0 | ||
206 | ] | ||
207 | LabelGraphics | ||
208 | [ | ||
209 | text " | ||
210 | " | ||
211 | fontSize 14 | ||
212 | fontName "Consolas" | ||
213 | alignment "left" | ||
214 | anchor "tl" | ||
215 | borderDistance 6 | ||
216 | ] | ||
217 | ] | ||
218 | |||
219 | node | ||
220 | [ | ||
221 | id 6 | ||
222 | graphics | ||
223 | [ | ||
224 | w 33.0 | ||
225 | h 26 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text ""A"" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | " | ||
246 | fontSize 14 | ||
247 | fontName "Consolas" | ||
248 | alignment "left" | ||
249 | anchor "tl" | ||
250 | borderDistance 6 | ||
251 | ] | ||
252 | ] | ||
253 | |||
254 | node | ||
255 | [ | ||
256 | id 7 | ||
257 | graphics | ||
258 | [ | ||
259 | w 33.0 | ||
260 | h 26 | ||
261 | type "rectangle" | ||
262 | fill "#FFFFFF" | ||
263 | fill2 "#FFFFFF" | ||
264 | outline "#000000" | ||
265 | ] | ||
266 | LabelGraphics | ||
267 | [ | ||
268 | text ""B"" | ||
269 | outline "#000000" | ||
270 | fill "#FFFFFF" | ||
271 | fontSize 16 | ||
272 | fontName "Monospace" | ||
273 | autoSizePolicy "node_width" | ||
274 | anchor "t" | ||
275 | borderDistance 0.0 | ||
276 | ] | ||
277 | LabelGraphics | ||
278 | [ | ||
279 | text " | ||
280 | " | ||
281 | fontSize 14 | ||
282 | fontName "Consolas" | ||
283 | alignment "left" | ||
284 | anchor "tl" | ||
285 | borderDistance 6 | ||
286 | ] | ||
287 | ] | ||
288 | |||
289 | node | ||
290 | [ | ||
291 | id 8 | ||
292 | graphics | ||
293 | [ | ||
294 | w 269.5 | ||
295 | h 68 | ||
296 | type "rectangle" | ||
297 | fill "#FFFFFF" | ||
298 | fill2 "#FFFFFF" | ||
299 | outline "#000000" | ||
300 | ] | ||
301 | LabelGraphics | ||
302 | [ | ||
303 | text "null" | ||
304 | outline "#000000" | ||
305 | fill "#FFFFFF" | ||
306 | fontSize 16 | ||
307 | fontName "Monospace" | ||
308 | autoSizePolicy "node_width" | ||
309 | anchor "t" | ||
310 | borderDistance 0.0 | ||
311 | ] | ||
312 | LabelGraphics | ||
313 | [ | ||
314 | text " | ||
315 | EAnnotation class | ||
316 | EModelElement class | ||
317 | EModelElement class UndefinedPart | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 269.5 | ||
333 | h 124 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "null" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | EClassifier class | ||
354 | EDataType class | ||
355 | EEnum class | ||
356 | EModelElement class | ||
357 | ENamedElement class | ||
358 | EModelElement class UndefinedPart | ||
359 | ENamedElement class UndefinedPart | ||
360 | " | ||
361 | fontSize 14 | ||
362 | fontName "Consolas" | ||
363 | alignment "left" | ||
364 | anchor "tl" | ||
365 | borderDistance 6 | ||
366 | ] | ||
367 | ] | ||
368 | |||
369 | node | ||
370 | [ | ||
371 | id 10 | ||
372 | graphics | ||
373 | [ | ||
374 | w 269.5 | ||
375 | h 68 | ||
376 | type "rectangle" | ||
377 | fill "#FFFFFF" | ||
378 | fill2 "#FFFFFF" | ||
379 | outline "#000000" | ||
380 | ] | ||
381 | LabelGraphics | ||
382 | [ | ||
383 | text "null" | ||
384 | outline "#000000" | ||
385 | fill "#FFFFFF" | ||
386 | fontSize 16 | ||
387 | fontName "Monospace" | ||
388 | autoSizePolicy "node_width" | ||
389 | anchor "t" | ||
390 | borderDistance 0.0 | ||
391 | ] | ||
392 | LabelGraphics | ||
393 | [ | ||
394 | text " | ||
395 | EAnnotation class | ||
396 | EModelElement class | ||
397 | EModelElement class UndefinedPart | ||
398 | " | ||
399 | fontSize 14 | ||
400 | fontName "Consolas" | ||
401 | alignment "left" | ||
402 | anchor "tl" | ||
403 | borderDistance 6 | ||
404 | ] | ||
405 | ] | ||
406 | |||
407 | node | ||
408 | [ | ||
409 | id 11 | ||
410 | graphics | ||
411 | [ | ||
412 | w 269.5 | ||
413 | h 110 | ||
414 | type "rectangle" | ||
415 | fill "#FFFFFF" | ||
416 | fill2 "#FFFFFF" | ||
417 | outline "#000000" | ||
418 | ] | ||
419 | LabelGraphics | ||
420 | [ | ||
421 | text "null" | ||
422 | outline "#000000" | ||
423 | fill "#FFFFFF" | ||
424 | fontSize 16 | ||
425 | fontName "Monospace" | ||
426 | autoSizePolicy "node_width" | ||
427 | anchor "t" | ||
428 | borderDistance 0.0 | ||
429 | ] | ||
430 | LabelGraphics | ||
431 | [ | ||
432 | text " | ||
433 | EClass class | ||
434 | EClassifier class | ||
435 | EModelElement class | ||
436 | ENamedElement class | ||
437 | EModelElement class UndefinedPart | ||
438 | ENamedElement class UndefinedPart | ||
439 | " | ||
440 | fontSize 14 | ||
441 | fontName "Consolas" | ||
442 | alignment "left" | ||
443 | anchor "tl" | ||
444 | borderDistance 6 | ||
445 | ] | ||
446 | ] | ||
447 | |||
448 | node | ||
449 | [ | ||
450 | id 12 | ||
451 | graphics | ||
452 | [ | ||
453 | w 269.5 | ||
454 | h 124 | ||
455 | type "rectangle" | ||
456 | fill "#FFFFFF" | ||
457 | fill2 "#FFFFFF" | ||
458 | outline "#000000" | ||
459 | ] | ||
460 | LabelGraphics | ||
461 | [ | ||
462 | text "null" | ||
463 | outline "#000000" | ||
464 | fill "#FFFFFF" | ||
465 | fontSize 16 | ||
466 | fontName "Monospace" | ||
467 | autoSizePolicy "node_width" | ||
468 | anchor "t" | ||
469 | borderDistance 0.0 | ||
470 | ] | ||
471 | LabelGraphics | ||
472 | [ | ||
473 | text " | ||
474 | EModelElement class | ||
475 | ENamedElement class | ||
476 | EReference class | ||
477 | EStructuralFeature class | ||
478 | ETypedElement class | ||
479 | EModelElement class UndefinedPart | ||
480 | ENamedElement class UndefinedPart | ||
481 | " | ||
482 | fontSize 14 | ||
483 | fontName "Consolas" | ||
484 | alignment "left" | ||
485 | anchor "tl" | ||
486 | borderDistance 6 | ||
487 | ] | ||
488 | ] | ||
489 | |||
490 | node | ||
491 | [ | ||
492 | id 13 | ||
493 | graphics | ||
494 | [ | ||
495 | w 112.2 | ||
496 | h 26 | ||
497 | type "rectangle" | ||
498 | fill "#FFFFFF" | ||
499 | fill2 "#FFFFFF" | ||
500 | outline "#000000" | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text "New Integers" | ||
505 | outline "#000000" | ||
506 | fill "#FFFFFF" | ||
507 | fontSize 16 | ||
508 | fontName "Monospace" | ||
509 | autoSizePolicy "node_width" | ||
510 | anchor "t" | ||
511 | borderDistance 0.0 | ||
512 | ] | ||
513 | LabelGraphics | ||
514 | [ | ||
515 | text " | ||
516 | " | ||
517 | fontSize 14 | ||
518 | fontName "Consolas" | ||
519 | alignment "left" | ||
520 | anchor "tl" | ||
521 | borderDistance 6 | ||
522 | ] | ||
523 | ] | ||
524 | |||
525 | node | ||
526 | [ | ||
527 | id 14 | ||
528 | graphics | ||
529 | [ | ||
530 | w 85.80000000000001 | ||
531 | h 26 | ||
532 | type "rectangle" | ||
533 | fill "#FFFFFF" | ||
534 | fill2 "#FFFFFF" | ||
535 | outline "#000000" | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text "New Reals" | ||
540 | outline "#000000" | ||
541 | fill "#FFFFFF" | ||
542 | fontSize 16 | ||
543 | fontName "Monospace" | ||
544 | autoSizePolicy "node_width" | ||
545 | anchor "t" | ||
546 | borderDistance 0.0 | ||
547 | ] | ||
548 | LabelGraphics | ||
549 | [ | ||
550 | text " | ||
551 | " | ||
552 | fontSize 14 | ||
553 | fontName "Consolas" | ||
554 | alignment "left" | ||
555 | anchor "tl" | ||
556 | borderDistance 6 | ||
557 | ] | ||
558 | ] | ||
559 | |||
560 | node | ||
561 | [ | ||
562 | id 15 | ||
563 | graphics | ||
564 | [ | ||
565 | w 103.4 | ||
566 | h 26 | ||
567 | type "rectangle" | ||
568 | fill "#FFFFFF" | ||
569 | fill2 "#FFFFFF" | ||
570 | outline "#000000" | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text "New Strings" | ||
575 | outline "#000000" | ||
576 | fill "#FFFFFF" | ||
577 | fontSize 16 | ||
578 | fontName "Monospace" | ||
579 | autoSizePolicy "node_width" | ||
580 | anchor "t" | ||
581 | borderDistance 0.0 | ||
582 | ] | ||
583 | LabelGraphics | ||
584 | [ | ||
585 | text " | ||
586 | " | ||
587 | fontSize 14 | ||
588 | fontName "Consolas" | ||
589 | alignment "left" | ||
590 | anchor "tl" | ||
591 | borderDistance 6 | ||
592 | ] | ||
593 | ] | ||
594 | |||
595 | node | ||
596 | [ | ||
597 | id 16 | ||
598 | graphics | ||
599 | [ | ||
600 | w 103.4 | ||
601 | h 26 | ||
602 | type "rectangle" | ||
603 | fill "#FFFFFF" | ||
604 | fill2 "#FFFFFF" | ||
605 | outline "#000000" | ||
606 | ] | ||
607 | LabelGraphics | ||
608 | [ | ||
609 | text "New Objects" | ||
610 | outline "#000000" | ||
611 | fill "#FFFFFF" | ||
612 | fontSize 16 | ||
613 | fontName "Monospace" | ||
614 | autoSizePolicy "node_width" | ||
615 | anchor "t" | ||
616 | borderDistance 0.0 | ||
617 | ] | ||
618 | LabelGraphics | ||
619 | [ | ||
620 | text " | ||
621 | " | ||
622 | fontSize 14 | ||
623 | fontName "Consolas" | ||
624 | alignment "left" | ||
625 | anchor "tl" | ||
626 | borderDistance 6 | ||
627 | ] | ||
628 | ] | ||
629 | edge | ||
630 | [ | ||
631 | source 8 | ||
632 | target 0 | ||
633 | graphics | ||
634 | [ | ||
635 | fill "#000000" | ||
636 | targetArrow "standard" | ||
637 | ] | ||
638 | LabelGraphics | ||
639 | [ | ||
640 | text "eModelElement reference EAnnotation" | ||
641 | fontSize 14 | ||
642 | fontName "Consolas" | ||
643 | configuration "AutoFlippingLabel" | ||
644 | model "six_pos" | ||
645 | position "thead" | ||
646 | ] | ||
647 | ] | ||
648 | edge | ||
649 | [ | ||
650 | source 10 | ||
651 | target 0 | ||
652 | graphics | ||
653 | [ | ||
654 | fill "#000000" | ||
655 | targetArrow "standard" | ||
656 | ] | ||
657 | LabelGraphics | ||
658 | [ | ||
659 | text "eModelElement reference EAnnotation" | ||
660 | fontSize 14 | ||
661 | fontName "Consolas" | ||
662 | configuration "AutoFlippingLabel" | ||
663 | model "six_pos" | ||
664 | position "thead" | ||
665 | ] | ||
666 | ] | ||
667 | edge | ||
668 | [ | ||
669 | source 11 | ||
670 | target 11 | ||
671 | graphics | ||
672 | [ | ||
673 | fill "#000000" | ||
674 | targetArrow "standard" | ||
675 | ] | ||
676 | LabelGraphics | ||
677 | [ | ||
678 | text "eSuperTypes reference EClass" | ||
679 | fontSize 14 | ||
680 | fontName "Consolas" | ||
681 | configuration "AutoFlippingLabel" | ||
682 | model "six_pos" | ||
683 | position "thead" | ||
684 | ] | ||
685 | ] | ||
686 | edge | ||
687 | [ | ||
688 | source 11 | ||
689 | target 12 | ||
690 | graphics | ||
691 | [ | ||
692 | fill "#000000" | ||
693 | targetArrow "standard" | ||
694 | ] | ||
695 | LabelGraphics | ||
696 | [ | ||
697 | text "eReferences reference EClass" | ||
698 | fontSize 14 | ||
699 | fontName "Consolas" | ||
700 | configuration "AutoFlippingLabel" | ||
701 | model "six_pos" | ||
702 | position "thead" | ||
703 | ] | ||
704 | ] | ||
705 | edge | ||
706 | [ | ||
707 | source 11 | ||
708 | target 12 | ||
709 | graphics | ||
710 | [ | ||
711 | fill "#000000" | ||
712 | targetArrow "standard" | ||
713 | ] | ||
714 | LabelGraphics | ||
715 | [ | ||
716 | text "eAllStructuralFeatures reference EClass" | ||
717 | fontSize 14 | ||
718 | fontName "Consolas" | ||
719 | configuration "AutoFlippingLabel" | ||
720 | model "six_pos" | ||
721 | position "thead" | ||
722 | ] | ||
723 | ] | ||
724 | edge | ||
725 | [ | ||
726 | source 11 | ||
727 | target 11 | ||
728 | graphics | ||
729 | [ | ||
730 | fill "#000000" | ||
731 | targetArrow "standard" | ||
732 | ] | ||
733 | LabelGraphics | ||
734 | [ | ||
735 | text "eAllSuperTypes reference EClass" | ||
736 | fontSize 14 | ||
737 | fontName "Consolas" | ||
738 | configuration "AutoFlippingLabel" | ||
739 | model "six_pos" | ||
740 | position "thead" | ||
741 | ] | ||
742 | ] | ||
743 | edge | ||
744 | [ | ||
745 | source 11 | ||
746 | target 12 | ||
747 | graphics | ||
748 | [ | ||
749 | fill "#000000" | ||
750 | width 3 | ||
751 | targetArrow "standard" | ||
752 | ] | ||
753 | LabelGraphics | ||
754 | [ | ||
755 | text "eStructuralFeatures reference EClass" | ||
756 | fontSize 14 | ||
757 | fontName "Consolas" | ||
758 | configuration "AutoFlippingLabel" | ||
759 | model "six_pos" | ||
760 | position "thead" | ||
761 | ] | ||
762 | ] | ||
763 | edge | ||
764 | [ | ||
765 | source 9 | ||
766 | target 0 | ||
767 | graphics | ||
768 | [ | ||
769 | fill "#000000" | ||
770 | targetArrow "standard" | ||
771 | ] | ||
772 | LabelGraphics | ||
773 | [ | ||
774 | text "ePackage reference EClassifier" | ||
775 | fontSize 14 | ||
776 | fontName "Consolas" | ||
777 | configuration "AutoFlippingLabel" | ||
778 | model "six_pos" | ||
779 | position "thead" | ||
780 | ] | ||
781 | ] | ||
782 | edge | ||
783 | [ | ||
784 | source 11 | ||
785 | target 0 | ||
786 | graphics | ||
787 | [ | ||
788 | fill "#000000" | ||
789 | targetArrow "standard" | ||
790 | ] | ||
791 | LabelGraphics | ||
792 | [ | ||
793 | text "ePackage reference EClassifier" | ||
794 | fontSize 14 | ||
795 | fontName "Consolas" | ||
796 | configuration "AutoFlippingLabel" | ||
797 | model "six_pos" | ||
798 | position "thead" | ||
799 | ] | ||
800 | ] | ||
801 | edge | ||
802 | [ | ||
803 | source 0 | ||
804 | target 8 | ||
805 | graphics | ||
806 | [ | ||
807 | fill "#000000" | ||
808 | width 3 | ||
809 | targetArrow "standard" | ||
810 | ] | ||
811 | LabelGraphics | ||
812 | [ | ||
813 | text "eAnnotations reference EModelElement" | ||
814 | fontSize 14 | ||
815 | fontName "Consolas" | ||
816 | configuration "AutoFlippingLabel" | ||
817 | model "six_pos" | ||
818 | position "thead" | ||
819 | ] | ||
820 | ] | ||
821 | edge | ||
822 | [ | ||
823 | source 0 | ||
824 | target 10 | ||
825 | graphics | ||
826 | [ | ||
827 | fill "#000000" | ||
828 | width 3 | ||
829 | targetArrow "standard" | ||
830 | ] | ||
831 | LabelGraphics | ||
832 | [ | ||
833 | text "eAnnotations reference EModelElement" | ||
834 | fontSize 14 | ||
835 | fontName "Consolas" | ||
836 | configuration "AutoFlippingLabel" | ||
837 | model "six_pos" | ||
838 | position "thead" | ||
839 | ] | ||
840 | ] | ||
841 | edge | ||
842 | [ | ||
843 | source 0 | ||
844 | target 9 | ||
845 | graphics | ||
846 | [ | ||
847 | fill "#000000" | ||
848 | width 3 | ||
849 | targetArrow "standard" | ||
850 | ] | ||
851 | LabelGraphics | ||
852 | [ | ||
853 | text "eClassifiers reference EPackage" | ||
854 | fontSize 14 | ||
855 | fontName "Consolas" | ||
856 | configuration "AutoFlippingLabel" | ||
857 | model "six_pos" | ||
858 | position "thead" | ||
859 | ] | ||
860 | ] | ||
861 | edge | ||
862 | [ | ||
863 | source 0 | ||
864 | target 11 | ||
865 | graphics | ||
866 | [ | ||
867 | fill "#000000" | ||
868 | width 3 | ||
869 | targetArrow "standard" | ||
870 | ] | ||
871 | LabelGraphics | ||
872 | [ | ||
873 | text "eClassifiers reference EPackage" | ||
874 | fontSize 14 | ||
875 | fontName "Consolas" | ||
876 | configuration "AutoFlippingLabel" | ||
877 | model "six_pos" | ||
878 | position "thead" | ||
879 | ] | ||
880 | ] | ||
881 | edge | ||
882 | [ | ||
883 | source 12 | ||
884 | target 12 | ||
885 | graphics | ||
886 | [ | ||
887 | fill "#000000" | ||
888 | targetArrow "standard" | ||
889 | ] | ||
890 | LabelGraphics | ||
891 | [ | ||
892 | text "eOpposite reference EReference" | ||
893 | fontSize 14 | ||
894 | fontName "Consolas" | ||
895 | configuration "AutoFlippingLabel" | ||
896 | model "six_pos" | ||
897 | position "thead" | ||
898 | ] | ||
899 | ] | ||
900 | edge | ||
901 | [ | ||
902 | source 12 | ||
903 | target 11 | ||
904 | graphics | ||
905 | [ | ||
906 | fill "#000000" | ||
907 | targetArrow "standard" | ||
908 | ] | ||
909 | LabelGraphics | ||
910 | [ | ||
911 | text "eReferenceType reference EReference" | ||
912 | fontSize 14 | ||
913 | fontName "Consolas" | ||
914 | configuration "AutoFlippingLabel" | ||
915 | model "six_pos" | ||
916 | position "thead" | ||
917 | ] | ||
918 | ] | ||
919 | edge | ||
920 | [ | ||
921 | source 12 | ||
922 | target 11 | ||
923 | graphics | ||
924 | [ | ||
925 | fill "#000000" | ||
926 | targetArrow "standard" | ||
927 | ] | ||
928 | LabelGraphics | ||
929 | [ | ||
930 | text "eContainingClass reference EStructuralFeature" | ||
931 | fontSize 14 | ||
932 | fontName "Consolas" | ||
933 | configuration "AutoFlippingLabel" | ||
934 | model "six_pos" | ||
935 | position "thead" | ||
936 | ] | ||
937 | ] | ||
938 | edge | ||
939 | [ | ||
940 | source 12 | ||
941 | target 11 | ||
942 | graphics | ||
943 | [ | ||
944 | fill "#000000" | ||
945 | targetArrow "standard" | ||
946 | ] | ||
947 | LabelGraphics | ||
948 | [ | ||
949 | text "eType reference ETypedElement" | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | configuration "AutoFlippingLabel" | ||
953 | model "six_pos" | ||
954 | position "thead" | ||
955 | ] | ||
956 | ] | ||
957 | edge | ||
958 | [ | ||
959 | source 8 | ||
960 | target 7 | ||
961 | graphics | ||
962 | [ | ||
963 | fill "#000000" | ||
964 | targetArrow "standard" | ||
965 | ] | ||
966 | LabelGraphics | ||
967 | [ | ||
968 | text "source attribute EAnnotation" | ||
969 | fontSize 14 | ||
970 | fontName "Consolas" | ||
971 | configuration "AutoFlippingLabel" | ||
972 | model "six_pos" | ||
973 | position "thead" | ||
974 | ] | ||
975 | ] | ||
976 | edge | ||
977 | [ | ||
978 | source 10 | ||
979 | target 6 | ||
980 | graphics | ||
981 | [ | ||
982 | fill "#000000" | ||
983 | targetArrow "standard" | ||
984 | ] | ||
985 | LabelGraphics | ||
986 | [ | ||
987 | text "source attribute EAnnotation" | ||
988 | fontSize 14 | ||
989 | fontName "Consolas" | ||
990 | configuration "AutoFlippingLabel" | ||
991 | model "six_pos" | ||
992 | position "thead" | ||
993 | ] | ||
994 | ] | ||
995 | edge | ||
996 | [ | ||
997 | source 11 | ||
998 | target 2 | ||
999 | graphics | ||
1000 | [ | ||
1001 | fill "#000000" | ||
1002 | targetArrow "standard" | ||
1003 | ] | ||
1004 | LabelGraphics | ||
1005 | [ | ||
1006 | text "abstract attribute EClass" | ||
1007 | fontSize 14 | ||
1008 | fontName "Consolas" | ||
1009 | configuration "AutoFlippingLabel" | ||
1010 | model "six_pos" | ||
1011 | position "thead" | ||
1012 | ] | ||
1013 | ] | ||
1014 | edge | ||
1015 | [ | ||
1016 | source 11 | ||
1017 | target 1 | ||
1018 | graphics | ||
1019 | [ | ||
1020 | fill "#000000" | ||
1021 | targetArrow "standard" | ||
1022 | ] | ||
1023 | LabelGraphics | ||
1024 | [ | ||
1025 | text "interface attribute EClass" | ||
1026 | fontSize 14 | ||
1027 | fontName "Consolas" | ||
1028 | configuration "AutoFlippingLabel" | ||
1029 | model "six_pos" | ||
1030 | position "thead" | ||
1031 | ] | ||
1032 | ] | ||
1033 | edge | ||
1034 | [ | ||
1035 | source 11 | ||
1036 | target 7 | ||
1037 | graphics | ||
1038 | [ | ||
1039 | fill "#000000" | ||
1040 | targetArrow "standard" | ||
1041 | ] | ||
1042 | LabelGraphics | ||
1043 | [ | ||
1044 | text "instanceClassName attribute EClassifier" | ||
1045 | fontSize 14 | ||
1046 | fontName "Consolas" | ||
1047 | configuration "AutoFlippingLabel" | ||
1048 | model "six_pos" | ||
1049 | position "thead" | ||
1050 | ] | ||
1051 | ] | ||
1052 | edge | ||
1053 | [ | ||
1054 | source 11 | ||
1055 | target 7 | ||
1056 | graphics | ||
1057 | [ | ||
1058 | fill "#000000" | ||
1059 | targetArrow "standard" | ||
1060 | ] | ||
1061 | LabelGraphics | ||
1062 | [ | ||
1063 | text "instanceTypeName attribute EClassifier" | ||
1064 | fontSize 14 | ||
1065 | fontName "Consolas" | ||
1066 | configuration "AutoFlippingLabel" | ||
1067 | model "six_pos" | ||
1068 | position "thead" | ||
1069 | ] | ||
1070 | ] | ||
1071 | edge | ||
1072 | [ | ||
1073 | source 9 | ||
1074 | target 7 | ||
1075 | graphics | ||
1076 | [ | ||
1077 | fill "#000000" | ||
1078 | targetArrow "standard" | ||
1079 | ] | ||
1080 | LabelGraphics | ||
1081 | [ | ||
1082 | text "instanceTypeName attribute EClassifier" | ||
1083 | fontSize 14 | ||
1084 | fontName "Consolas" | ||
1085 | configuration "AutoFlippingLabel" | ||
1086 | model "six_pos" | ||
1087 | position "thead" | ||
1088 | ] | ||
1089 | ] | ||
1090 | edge | ||
1091 | [ | ||
1092 | source 9 | ||
1093 | target 2 | ||
1094 | graphics | ||
1095 | [ | ||
1096 | fill "#000000" | ||
1097 | targetArrow "standard" | ||
1098 | ] | ||
1099 | LabelGraphics | ||
1100 | [ | ||
1101 | text "serializable attribute EDataType" | ||
1102 | fontSize 14 | ||
1103 | fontName "Consolas" | ||
1104 | configuration "AutoFlippingLabel" | ||
1105 | model "six_pos" | ||
1106 | position "thead" | ||
1107 | ] | ||
1108 | ] | ||
1109 | edge | ||
1110 | [ | ||
1111 | source 0 | ||
1112 | target 7 | ||
1113 | graphics | ||
1114 | [ | ||
1115 | fill "#000000" | ||
1116 | targetArrow "standard" | ||
1117 | ] | ||
1118 | LabelGraphics | ||
1119 | [ | ||
1120 | text "name attribute ENamedElement" | ||
1121 | fontSize 14 | ||
1122 | fontName "Consolas" | ||
1123 | configuration "AutoFlippingLabel" | ||
1124 | model "six_pos" | ||
1125 | position "thead" | ||
1126 | ] | ||
1127 | ] | ||
1128 | edge | ||
1129 | [ | ||
1130 | source 12 | ||
1131 | target 6 | ||
1132 | graphics | ||
1133 | [ | ||
1134 | fill "#000000" | ||
1135 | targetArrow "standard" | ||
1136 | ] | ||
1137 | LabelGraphics | ||
1138 | [ | ||
1139 | text "name attribute ENamedElement" | ||
1140 | fontSize 14 | ||
1141 | fontName "Consolas" | ||
1142 | configuration "AutoFlippingLabel" | ||
1143 | model "six_pos" | ||
1144 | position "thead" | ||
1145 | ] | ||
1146 | ] | ||
1147 | edge | ||
1148 | [ | ||
1149 | source 11 | ||
1150 | target 7 | ||
1151 | graphics | ||
1152 | [ | ||
1153 | fill "#000000" | ||
1154 | targetArrow "standard" | ||
1155 | ] | ||
1156 | LabelGraphics | ||
1157 | [ | ||
1158 | text "name attribute ENamedElement" | ||
1159 | fontSize 14 | ||
1160 | fontName "Consolas" | ||
1161 | configuration "AutoFlippingLabel" | ||
1162 | model "six_pos" | ||
1163 | position "thead" | ||
1164 | ] | ||
1165 | ] | ||
1166 | edge | ||
1167 | [ | ||
1168 | source 9 | ||
1169 | target 7 | ||
1170 | graphics | ||
1171 | [ | ||
1172 | fill "#000000" | ||
1173 | targetArrow "standard" | ||
1174 | ] | ||
1175 | LabelGraphics | ||
1176 | [ | ||
1177 | text "name attribute ENamedElement" | ||
1178 | fontSize 14 | ||
1179 | fontName "Consolas" | ||
1180 | configuration "AutoFlippingLabel" | ||
1181 | model "six_pos" | ||
1182 | position "thead" | ||
1183 | ] | ||
1184 | ] | ||
1185 | edge | ||
1186 | [ | ||
1187 | source 0 | ||
1188 | target 7 | ||
1189 | graphics | ||
1190 | [ | ||
1191 | fill "#000000" | ||
1192 | targetArrow "standard" | ||
1193 | ] | ||
1194 | LabelGraphics | ||
1195 | [ | ||
1196 | text "nsURI attribute EPackage" | ||
1197 | fontSize 14 | ||
1198 | fontName "Consolas" | ||
1199 | configuration "AutoFlippingLabel" | ||
1200 | model "six_pos" | ||
1201 | position "thead" | ||
1202 | ] | ||
1203 | ] | ||
1204 | edge | ||
1205 | [ | ||
1206 | source 0 | ||
1207 | target 7 | ||
1208 | graphics | ||
1209 | [ | ||
1210 | fill "#000000" | ||
1211 | targetArrow "standard" | ||
1212 | ] | ||
1213 | LabelGraphics | ||
1214 | [ | ||
1215 | text "nsPrefix attribute EPackage" | ||
1216 | fontSize 14 | ||
1217 | fontName "Consolas" | ||
1218 | configuration "AutoFlippingLabel" | ||
1219 | model "six_pos" | ||
1220 | position "thead" | ||
1221 | ] | ||
1222 | ] | ||
1223 | edge | ||
1224 | [ | ||
1225 | source 12 | ||
1226 | target 2 | ||
1227 | graphics | ||
1228 | [ | ||
1229 | fill "#000000" | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "containment attribute EReference" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 12 | ||
1245 | target 2 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | targetArrow "standard" | ||
1250 | ] | ||
1251 | LabelGraphics | ||
1252 | [ | ||
1253 | text "container attribute EReference" | ||
1254 | fontSize 14 | ||
1255 | fontName "Consolas" | ||
1256 | configuration "AutoFlippingLabel" | ||
1257 | model "six_pos" | ||
1258 | position "thead" | ||
1259 | ] | ||
1260 | ] | ||
1261 | edge | ||
1262 | [ | ||
1263 | source 12 | ||
1264 | target 2 | ||
1265 | graphics | ||
1266 | [ | ||
1267 | fill "#000000" | ||
1268 | targetArrow "standard" | ||
1269 | ] | ||
1270 | LabelGraphics | ||
1271 | [ | ||
1272 | text "resolveProxies attribute EReference" | ||
1273 | fontSize 14 | ||
1274 | fontName "Consolas" | ||
1275 | configuration "AutoFlippingLabel" | ||
1276 | model "six_pos" | ||
1277 | position "thead" | ||
1278 | ] | ||
1279 | ] | ||
1280 | edge | ||
1281 | [ | ||
1282 | source 12 | ||
1283 | target 2 | ||
1284 | graphics | ||
1285 | [ | ||
1286 | fill "#000000" | ||
1287 | targetArrow "standard" | ||
1288 | ] | ||
1289 | LabelGraphics | ||
1290 | [ | ||
1291 | text "changeable attribute EStructuralFeature" | ||
1292 | fontSize 14 | ||
1293 | fontName "Consolas" | ||
1294 | configuration "AutoFlippingLabel" | ||
1295 | model "six_pos" | ||
1296 | position "thead" | ||
1297 | ] | ||
1298 | ] | ||
1299 | edge | ||
1300 | [ | ||
1301 | source 12 | ||
1302 | target 2 | ||
1303 | graphics | ||
1304 | [ | ||
1305 | fill "#000000" | ||
1306 | targetArrow "standard" | ||
1307 | ] | ||
1308 | LabelGraphics | ||
1309 | [ | ||
1310 | text "volatile attribute EStructuralFeature" | ||
1311 | fontSize 14 | ||
1312 | fontName "Consolas" | ||
1313 | configuration "AutoFlippingLabel" | ||
1314 | model "six_pos" | ||
1315 | position "thead" | ||
1316 | ] | ||
1317 | ] | ||
1318 | edge | ||
1319 | [ | ||
1320 | source 12 | ||
1321 | target 1 | ||
1322 | graphics | ||
1323 | [ | ||
1324 | fill "#000000" | ||
1325 | targetArrow "standard" | ||
1326 | ] | ||
1327 | LabelGraphics | ||
1328 | [ | ||
1329 | text "transient attribute EStructuralFeature" | ||
1330 | fontSize 14 | ||
1331 | fontName "Consolas" | ||
1332 | configuration "AutoFlippingLabel" | ||
1333 | model "six_pos" | ||
1334 | position "thead" | ||
1335 | ] | ||
1336 | ] | ||
1337 | edge | ||
1338 | [ | ||
1339 | source 12 | ||
1340 | target 7 | ||
1341 | graphics | ||
1342 | [ | ||
1343 | fill "#000000" | ||
1344 | targetArrow "standard" | ||
1345 | ] | ||
1346 | LabelGraphics | ||
1347 | [ | ||
1348 | text "defaultValueLiteral attribute EStructuralFeature" | ||
1349 | fontSize 14 | ||
1350 | fontName "Consolas" | ||
1351 | configuration "AutoFlippingLabel" | ||
1352 | model "six_pos" | ||
1353 | position "thead" | ||
1354 | ] | ||
1355 | ] | ||
1356 | edge | ||
1357 | [ | ||
1358 | source 12 | ||
1359 | target 2 | ||
1360 | graphics | ||
1361 | [ | ||
1362 | fill "#000000" | ||
1363 | targetArrow "standard" | ||
1364 | ] | ||
1365 | LabelGraphics | ||
1366 | [ | ||
1367 | text "unsettable attribute EStructuralFeature" | ||
1368 | fontSize 14 | ||
1369 | fontName "Consolas" | ||
1370 | configuration "AutoFlippingLabel" | ||
1371 | model "six_pos" | ||
1372 | position "thead" | ||
1373 | ] | ||
1374 | ] | ||
1375 | edge | ||
1376 | [ | ||
1377 | source 12 | ||
1378 | target 1 | ||
1379 | graphics | ||
1380 | [ | ||
1381 | fill "#000000" | ||
1382 | targetArrow "standard" | ||
1383 | ] | ||
1384 | LabelGraphics | ||
1385 | [ | ||
1386 | text "derived attribute EStructuralFeature" | ||
1387 | fontSize 14 | ||
1388 | fontName "Consolas" | ||
1389 | configuration "AutoFlippingLabel" | ||
1390 | model "six_pos" | ||
1391 | position "thead" | ||
1392 | ] | ||
1393 | ] | ||
1394 | edge | ||
1395 | [ | ||
1396 | source 12 | ||
1397 | target 1 | ||
1398 | graphics | ||
1399 | [ | ||
1400 | fill "#000000" | ||
1401 | targetArrow "standard" | ||
1402 | ] | ||
1403 | LabelGraphics | ||
1404 | [ | ||
1405 | text "ordered attribute ETypedElement" | ||
1406 | fontSize 14 | ||
1407 | fontName "Consolas" | ||
1408 | configuration "AutoFlippingLabel" | ||
1409 | model "six_pos" | ||
1410 | position "thead" | ||
1411 | ] | ||
1412 | ] | ||
1413 | edge | ||
1414 | [ | ||
1415 | source 12 | ||
1416 | target 1 | ||
1417 | graphics | ||
1418 | [ | ||
1419 | fill "#000000" | ||
1420 | targetArrow "standard" | ||
1421 | ] | ||
1422 | LabelGraphics | ||
1423 | [ | ||
1424 | text "unique attribute ETypedElement" | ||
1425 | fontSize 14 | ||
1426 | fontName "Consolas" | ||
1427 | configuration "AutoFlippingLabel" | ||
1428 | model "six_pos" | ||
1429 | position "thead" | ||
1430 | ] | ||
1431 | ] | ||
1432 | edge | ||
1433 | [ | ||
1434 | source 12 | ||
1435 | target 4 | ||
1436 | graphics | ||
1437 | [ | ||
1438 | fill "#000000" | ||
1439 | targetArrow "standard" | ||
1440 | ] | ||
1441 | LabelGraphics | ||
1442 | [ | ||
1443 | text "lowerBound attribute ETypedElement" | ||
1444 | fontSize 14 | ||
1445 | fontName "Consolas" | ||
1446 | configuration "AutoFlippingLabel" | ||
1447 | model "six_pos" | ||
1448 | position "thead" | ||
1449 | ] | ||
1450 | ] | ||
1451 | edge | ||
1452 | [ | ||
1453 | source 12 | ||
1454 | target 5 | ||
1455 | graphics | ||
1456 | [ | ||
1457 | fill "#000000" | ||
1458 | targetArrow "standard" | ||
1459 | ] | ||
1460 | LabelGraphics | ||
1461 | [ | ||
1462 | text "upperBound attribute ETypedElement" | ||
1463 | fontSize 14 | ||
1464 | fontName "Consolas" | ||
1465 | configuration "AutoFlippingLabel" | ||
1466 | model "six_pos" | ||
1467 | position "thead" | ||
1468 | ] | ||
1469 | ] | ||
1470 | edge | ||
1471 | [ | ||
1472 | source 12 | ||
1473 | target 1 | ||
1474 | graphics | ||
1475 | [ | ||
1476 | fill "#000000" | ||
1477 | targetArrow "standard" | ||
1478 | ] | ||
1479 | LabelGraphics | ||
1480 | [ | ||
1481 | text "many attribute ETypedElement" | ||
1482 | fontSize 14 | ||
1483 | fontName "Consolas" | ||
1484 | configuration "AutoFlippingLabel" | ||
1485 | model "six_pos" | ||
1486 | position "thead" | ||
1487 | ] | ||
1488 | ] | ||
1489 | edge | ||
1490 | [ | ||
1491 | source 12 | ||
1492 | target 2 | ||
1493 | graphics | ||
1494 | [ | ||
1495 | fill "#000000" | ||
1496 | targetArrow "standard" | ||
1497 | ] | ||
1498 | LabelGraphics | ||
1499 | [ | ||
1500 | text "required attribute ETypedElement" | ||
1501 | fontSize 14 | ||
1502 | fontName "Consolas" | ||
1503 | configuration "AutoFlippingLabel" | ||
1504 | model "six_pos" | ||
1505 | position "thead" | ||
1506 | ] | ||
1507 | ] | ||
1508 | ] | ||
1509 | graph | ||
1510 | [ | ||
1511 | node | ||
1512 | [ | ||
1513 | id 0 | ||
1514 | graphics | ||
1515 | [ | ||
1516 | w 254.10000000000002 | ||
1517 | h 110 | ||
1518 | type "rectangle" | ||
1519 | fill "#FFFFFF" | ||
1520 | fill2 "#FFFFFF" | ||
1521 | outline "#000000" | ||
1522 | ] | ||
1523 | LabelGraphics | ||
1524 | [ | ||
1525 | text "o 1" | ||
1526 | outline "#000000" | ||
1527 | fill "#FFFFFF" | ||
1528 | fontSize 16 | ||
1529 | fontName "Monospace" | ||
1530 | autoSizePolicy "node_width" | ||
1531 | anchor "t" | ||
1532 | borderDistance 0.0 | ||
1533 | ] | ||
1534 | LabelGraphics | ||
1535 | [ | ||
1536 | text " | ||
1537 | EModelElement class DefinedPart | ||
1538 | ENamedElement class DefinedPart | ||
1539 | EPackage class DefinedPart | ||
1540 | EModelElement class | ||
1541 | ENamedElement class | ||
1542 | EPackage class | ||
1543 | " | ||
1544 | fontSize 14 | ||
1545 | fontName "Consolas" | ||
1546 | alignment "left" | ||
1547 | anchor "tl" | ||
1548 | borderDistance 6 | ||
1549 | ] | ||
1550 | ] | ||
1551 | |||
1552 | node | ||
1553 | [ | ||
1554 | id 1 | ||
1555 | graphics | ||
1556 | [ | ||
1557 | w 41.800000000000004 | ||
1558 | h 26 | ||
1559 | type "rectangle" | ||
1560 | fill "#FFFFFF" | ||
1561 | fill2 "#FFFFFF" | ||
1562 | outline "#000000" | ||
1563 | ] | ||
1564 | LabelGraphics | ||
1565 | [ | ||
1566 | text "true" | ||
1567 | outline "#000000" | ||
1568 | fill "#FFFFFF" | ||
1569 | fontSize 16 | ||
1570 | fontName "Monospace" | ||
1571 | autoSizePolicy "node_width" | ||
1572 | anchor "t" | ||
1573 | borderDistance 0.0 | ||
1574 | ] | ||
1575 | LabelGraphics | ||
1576 | [ | ||
1577 | text " | ||
1578 | " | ||
1579 | fontSize 14 | ||
1580 | fontName "Consolas" | ||
1581 | alignment "left" | ||
1582 | anchor "tl" | ||
1583 | borderDistance 6 | ||
1584 | ] | ||
1585 | ] | ||
1586 | |||
1587 | node | ||
1588 | [ | ||
1589 | id 2 | ||
1590 | graphics | ||
1591 | [ | ||
1592 | w 50.6 | ||
1593 | h 26 | ||
1594 | type "rectangle" | ||
1595 | fill "#FFFFFF" | ||
1596 | fill2 "#FFFFFF" | ||
1597 | outline "#000000" | ||
1598 | ] | ||
1599 | LabelGraphics | ||
1600 | [ | ||
1601 | text "false" | ||
1602 | outline "#000000" | ||
1603 | fill "#FFFFFF" | ||
1604 | fontSize 16 | ||
1605 | fontName "Monospace" | ||
1606 | autoSizePolicy "node_width" | ||
1607 | anchor "t" | ||
1608 | borderDistance 0.0 | ||
1609 | ] | ||
1610 | LabelGraphics | ||
1611 | [ | ||
1612 | text " | ||
1613 | " | ||
1614 | fontSize 14 | ||
1615 | fontName "Consolas" | ||
1616 | alignment "left" | ||
1617 | anchor "tl" | ||
1618 | borderDistance 6 | ||
1619 | ] | ||
1620 | ] | ||
1621 | |||
1622 | node | ||
1623 | [ | ||
1624 | id 3 | ||
1625 | graphics | ||
1626 | [ | ||
1627 | w 24.200000000000003 | ||
1628 | h 26 | ||
1629 | type "rectangle" | ||
1630 | fill "#FFFFFF" | ||
1631 | fill2 "#FFFFFF" | ||
1632 | outline "#000000" | ||
1633 | ] | ||
1634 | LabelGraphics | ||
1635 | [ | ||
1636 | text "-1" | ||
1637 | outline "#000000" | ||
1638 | fill "#FFFFFF" | ||
1639 | fontSize 16 | ||
1640 | fontName "Monospace" | ||
1641 | autoSizePolicy "node_width" | ||
1642 | anchor "t" | ||
1643 | borderDistance 0.0 | ||
1644 | ] | ||
1645 | LabelGraphics | ||
1646 | [ | ||
1647 | text " | ||
1648 | " | ||
1649 | fontSize 14 | ||
1650 | fontName "Consolas" | ||
1651 | alignment "left" | ||
1652 | anchor "tl" | ||
1653 | borderDistance 6 | ||
1654 | ] | ||
1655 | ] | ||
1656 | |||
1657 | node | ||
1658 | [ | ||
1659 | id 4 | ||
1660 | graphics | ||
1661 | [ | ||
1662 | w 15.400000000000002 | ||
1663 | h 26 | ||
1664 | type "rectangle" | ||
1665 | fill "#FFFFFF" | ||
1666 | fill2 "#FFFFFF" | ||
1667 | outline "#000000" | ||
1668 | ] | ||
1669 | LabelGraphics | ||
1670 | [ | ||
1671 | text "0" | ||
1672 | outline "#000000" | ||
1673 | fill "#FFFFFF" | ||
1674 | fontSize 16 | ||
1675 | fontName "Monospace" | ||
1676 | autoSizePolicy "node_width" | ||
1677 | anchor "t" | ||
1678 | borderDistance 0.0 | ||
1679 | ] | ||
1680 | LabelGraphics | ||
1681 | [ | ||
1682 | text " | ||
1683 | " | ||
1684 | fontSize 14 | ||
1685 | fontName "Consolas" | ||
1686 | alignment "left" | ||
1687 | anchor "tl" | ||
1688 | borderDistance 6 | ||
1689 | ] | ||
1690 | ] | ||
1691 | |||
1692 | node | ||
1693 | [ | ||
1694 | id 5 | ||
1695 | graphics | ||
1696 | [ | ||
1697 | w 15.400000000000002 | ||
1698 | h 26 | ||
1699 | type "rectangle" | ||
1700 | fill "#FFFFFF" | ||
1701 | fill2 "#FFFFFF" | ||
1702 | outline "#000000" | ||
1703 | ] | ||
1704 | LabelGraphics | ||
1705 | [ | ||
1706 | text "1" | ||
1707 | outline "#000000" | ||
1708 | fill "#FFFFFF" | ||
1709 | fontSize 16 | ||
1710 | fontName "Monospace" | ||
1711 | autoSizePolicy "node_width" | ||
1712 | anchor "t" | ||
1713 | borderDistance 0.0 | ||
1714 | ] | ||
1715 | LabelGraphics | ||
1716 | [ | ||
1717 | text " | ||
1718 | " | ||
1719 | fontSize 14 | ||
1720 | fontName "Consolas" | ||
1721 | alignment "left" | ||
1722 | anchor "tl" | ||
1723 | borderDistance 6 | ||
1724 | ] | ||
1725 | ] | ||
1726 | |||
1727 | node | ||
1728 | [ | ||
1729 | id 6 | ||
1730 | graphics | ||
1731 | [ | ||
1732 | w 33.0 | ||
1733 | h 26 | ||
1734 | type "rectangle" | ||
1735 | fill "#FFFFFF" | ||
1736 | fill2 "#FFFFFF" | ||
1737 | outline "#000000" | ||
1738 | ] | ||
1739 | LabelGraphics | ||
1740 | [ | ||
1741 | text ""A"" | ||
1742 | outline "#000000" | ||
1743 | fill "#FFFFFF" | ||
1744 | fontSize 16 | ||
1745 | fontName "Monospace" | ||
1746 | autoSizePolicy "node_width" | ||
1747 | anchor "t" | ||
1748 | borderDistance 0.0 | ||
1749 | ] | ||
1750 | LabelGraphics | ||
1751 | [ | ||
1752 | text " | ||
1753 | " | ||
1754 | fontSize 14 | ||
1755 | fontName "Consolas" | ||
1756 | alignment "left" | ||
1757 | anchor "tl" | ||
1758 | borderDistance 6 | ||
1759 | ] | ||
1760 | ] | ||
1761 | |||
1762 | node | ||
1763 | [ | ||
1764 | id 7 | ||
1765 | graphics | ||
1766 | [ | ||
1767 | w 33.0 | ||
1768 | h 26 | ||
1769 | type "rectangle" | ||
1770 | fill "#FFFFFF" | ||
1771 | fill2 "#FFFFFF" | ||
1772 | outline "#000000" | ||
1773 | ] | ||
1774 | LabelGraphics | ||
1775 | [ | ||
1776 | text ""B"" | ||
1777 | outline "#000000" | ||
1778 | fill "#FFFFFF" | ||
1779 | fontSize 16 | ||
1780 | fontName "Monospace" | ||
1781 | autoSizePolicy "node_width" | ||
1782 | anchor "t" | ||
1783 | borderDistance 0.0 | ||
1784 | ] | ||
1785 | LabelGraphics | ||
1786 | [ | ||
1787 | text " | ||
1788 | " | ||
1789 | fontSize 14 | ||
1790 | fontName "Consolas" | ||
1791 | alignment "left" | ||
1792 | anchor "tl" | ||
1793 | borderDistance 6 | ||
1794 | ] | ||
1795 | ] | ||
1796 | |||
1797 | node | ||
1798 | [ | ||
1799 | id 8 | ||
1800 | graphics | ||
1801 | [ | ||
1802 | w 94.60000000000001 | ||
1803 | h 26 | ||
1804 | type "rectangle" | ||
1805 | fill "#FFFFFF" | ||
1806 | fill2 "#FFFFFF" | ||
1807 | outline "#000000" | ||
1808 | ] | ||
1809 | LabelGraphics | ||
1810 | [ | ||
1811 | text ""nsPrefix"" | ||
1812 | outline "#000000" | ||
1813 | fill "#FFFFFF" | ||
1814 | fontSize 16 | ||
1815 | fontName "Monospace" | ||
1816 | autoSizePolicy "node_width" | ||
1817 | anchor "t" | ||
1818 | borderDistance 0.0 | ||
1819 | ] | ||
1820 | LabelGraphics | ||
1821 | [ | ||
1822 | text " | ||
1823 | " | ||
1824 | fontSize 14 | ||
1825 | fontName "Consolas" | ||
1826 | alignment "left" | ||
1827 | anchor "tl" | ||
1828 | borderDistance 6 | ||
1829 | ] | ||
1830 | ] | ||
1831 | |||
1832 | node | ||
1833 | [ | ||
1834 | id 9 | ||
1835 | graphics | ||
1836 | [ | ||
1837 | w 68.2 | ||
1838 | h 26 | ||
1839 | type "rectangle" | ||
1840 | fill "#FFFFFF" | ||
1841 | fill2 "#FFFFFF" | ||
1842 | outline "#000000" | ||
1843 | ] | ||
1844 | LabelGraphics | ||
1845 | [ | ||
1846 | text ""nsUri"" | ||
1847 | outline "#000000" | ||
1848 | fill "#FFFFFF" | ||
1849 | fontSize 16 | ||
1850 | fontName "Monospace" | ||
1851 | autoSizePolicy "node_width" | ||
1852 | anchor "t" | ||
1853 | borderDistance 0.0 | ||
1854 | ] | ||
1855 | LabelGraphics | ||
1856 | [ | ||
1857 | text " | ||
1858 | " | ||
1859 | fontSize 14 | ||
1860 | fontName "Consolas" | ||
1861 | alignment "left" | ||
1862 | anchor "tl" | ||
1863 | borderDistance 6 | ||
1864 | ] | ||
1865 | ] | ||
1866 | |||
1867 | node | ||
1868 | [ | ||
1869 | id 10 | ||
1870 | graphics | ||
1871 | [ | ||
1872 | w 121.00000000000001 | ||
1873 | h 26 | ||
1874 | type "rectangle" | ||
1875 | fill "#FFFFFF" | ||
1876 | fill2 "#FFFFFF" | ||
1877 | outline "#000000" | ||
1878 | ] | ||
1879 | LabelGraphics | ||
1880 | [ | ||
1881 | text ""packageName"" | ||
1882 | outline "#000000" | ||
1883 | fill "#FFFFFF" | ||
1884 | fontSize 16 | ||
1885 | fontName "Monospace" | ||
1886 | autoSizePolicy "node_width" | ||
1887 | anchor "t" | ||
1888 | borderDistance 0.0 | ||
1889 | ] | ||
1890 | LabelGraphics | ||
1891 | [ | ||
1892 | text " | ||
1893 | " | ||
1894 | fontSize 14 | ||
1895 | fontName "Consolas" | ||
1896 | alignment "left" | ||
1897 | anchor "tl" | ||
1898 | borderDistance 6 | ||
1899 | ] | ||
1900 | ] | ||
1901 | |||
1902 | node | ||
1903 | [ | ||
1904 | id 11 | ||
1905 | graphics | ||
1906 | [ | ||
1907 | w 269.5 | ||
1908 | h 124 | ||
1909 | type "rectangle" | ||
1910 | fill "#FFFFFF" | ||
1911 | fill2 "#FFFFFF" | ||
1912 | outline "#000000" | ||
1913 | ] | ||
1914 | LabelGraphics | ||
1915 | [ | ||
1916 | text "null" | ||
1917 | outline "#000000" | ||
1918 | fill "#FFFFFF" | ||
1919 | fontSize 16 | ||
1920 | fontName "Monospace" | ||
1921 | autoSizePolicy "node_width" | ||
1922 | anchor "t" | ||
1923 | borderDistance 0.0 | ||
1924 | ] | ||
1925 | LabelGraphics | ||
1926 | [ | ||
1927 | text " | ||
1928 | EClassifier class | ||
1929 | EDataType class | ||
1930 | EEnum class | ||
1931 | EModelElement class | ||
1932 | ENamedElement class | ||
1933 | EModelElement class UndefinedPart | ||
1934 | ENamedElement class UndefinedPart | ||
1935 | " | ||
1936 | fontSize 14 | ||
1937 | fontName "Consolas" | ||
1938 | alignment "left" | ||
1939 | anchor "tl" | ||
1940 | borderDistance 6 | ||
1941 | ] | ||
1942 | ] | ||
1943 | |||
1944 | node | ||
1945 | [ | ||
1946 | id 12 | ||
1947 | graphics | ||
1948 | [ | ||
1949 | w 269.5 | ||
1950 | h 110 | ||
1951 | type "rectangle" | ||
1952 | fill "#FFFFFF" | ||
1953 | fill2 "#FFFFFF" | ||
1954 | outline "#000000" | ||
1955 | ] | ||
1956 | LabelGraphics | ||
1957 | [ | ||
1958 | text "null" | ||
1959 | outline "#000000" | ||
1960 | fill "#FFFFFF" | ||
1961 | fontSize 16 | ||
1962 | fontName "Monospace" | ||
1963 | autoSizePolicy "node_width" | ||
1964 | anchor "t" | ||
1965 | borderDistance 0.0 | ||
1966 | ] | ||
1967 | LabelGraphics | ||
1968 | [ | ||
1969 | text " | ||
1970 | EClassifier class | ||
1971 | EDataType class | ||
1972 | EModelElement class | ||
1973 | ENamedElement class | ||
1974 | EModelElement class UndefinedPart | ||
1975 | ENamedElement class UndefinedPart | ||
1976 | " | ||
1977 | fontSize 14 | ||
1978 | fontName "Consolas" | ||
1979 | alignment "left" | ||
1980 | anchor "tl" | ||
1981 | borderDistance 6 | ||
1982 | ] | ||
1983 | ] | ||
1984 | |||
1985 | node | ||
1986 | [ | ||
1987 | id 13 | ||
1988 | graphics | ||
1989 | [ | ||
1990 | w 269.5 | ||
1991 | h 68 | ||
1992 | type "rectangle" | ||
1993 | fill "#FFFFFF" | ||
1994 | fill2 "#FFFFFF" | ||
1995 | outline "#000000" | ||
1996 | ] | ||
1997 | LabelGraphics | ||
1998 | [ | ||
1999 | text "null" | ||
2000 | outline "#000000" | ||
2001 | fill "#FFFFFF" | ||
2002 | fontSize 16 | ||
2003 | fontName "Monospace" | ||
2004 | autoSizePolicy "node_width" | ||
2005 | anchor "t" | ||
2006 | borderDistance 0.0 | ||
2007 | ] | ||
2008 | LabelGraphics | ||
2009 | [ | ||
2010 | text " | ||
2011 | EAnnotation class | ||
2012 | EModelElement class | ||
2013 | EModelElement class UndefinedPart | ||
2014 | " | ||
2015 | fontSize 14 | ||
2016 | fontName "Consolas" | ||
2017 | alignment "left" | ||
2018 | anchor "tl" | ||
2019 | borderDistance 6 | ||
2020 | ] | ||
2021 | ] | ||
2022 | |||
2023 | node | ||
2024 | [ | ||
2025 | id 14 | ||
2026 | graphics | ||
2027 | [ | ||
2028 | w 269.5 | ||
2029 | h 124 | ||
2030 | type "rectangle" | ||
2031 | fill "#FFFFFF" | ||
2032 | fill2 "#FFFFFF" | ||
2033 | outline "#000000" | ||
2034 | ] | ||
2035 | LabelGraphics | ||
2036 | [ | ||
2037 | text "null" | ||
2038 | outline "#000000" | ||
2039 | fill "#FFFFFF" | ||
2040 | fontSize 16 | ||
2041 | fontName "Monospace" | ||
2042 | autoSizePolicy "node_width" | ||
2043 | anchor "t" | ||
2044 | borderDistance 0.0 | ||
2045 | ] | ||
2046 | LabelGraphics | ||
2047 | [ | ||
2048 | text " | ||
2049 | EClassifier class | ||
2050 | EDataType class | ||
2051 | EEnum class | ||
2052 | EModelElement class | ||
2053 | ENamedElement class | ||
2054 | EModelElement class UndefinedPart | ||
2055 | ENamedElement class UndefinedPart | ||
2056 | " | ||
2057 | fontSize 14 | ||
2058 | fontName "Consolas" | ||
2059 | alignment "left" | ||
2060 | anchor "tl" | ||
2061 | borderDistance 6 | ||
2062 | ] | ||
2063 | ] | ||
2064 | |||
2065 | node | ||
2066 | [ | ||
2067 | id 15 | ||
2068 | graphics | ||
2069 | [ | ||
2070 | w 269.5 | ||
2071 | h 96 | ||
2072 | type "rectangle" | ||
2073 | fill "#FFFFFF" | ||
2074 | fill2 "#FFFFFF" | ||
2075 | outline "#000000" | ||
2076 | ] | ||
2077 | LabelGraphics | ||
2078 | [ | ||
2079 | text "null" | ||
2080 | outline "#000000" | ||
2081 | fill "#FFFFFF" | ||
2082 | fontSize 16 | ||
2083 | fontName "Monospace" | ||
2084 | autoSizePolicy "node_width" | ||
2085 | anchor "t" | ||
2086 | borderDistance 0.0 | ||
2087 | ] | ||
2088 | LabelGraphics | ||
2089 | [ | ||
2090 | text " | ||
2091 | EEnumLiteral class | ||
2092 | EModelElement class | ||
2093 | ENamedElement class | ||
2094 | EModelElement class UndefinedPart | ||
2095 | ENamedElement class UndefinedPart | ||
2096 | " | ||
2097 | fontSize 14 | ||
2098 | fontName "Consolas" | ||
2099 | alignment "left" | ||
2100 | anchor "tl" | ||
2101 | borderDistance 6 | ||
2102 | ] | ||
2103 | ] | ||
2104 | |||
2105 | node | ||
2106 | [ | ||
2107 | id 16 | ||
2108 | graphics | ||
2109 | [ | ||
2110 | w 112.2 | ||
2111 | h 26 | ||
2112 | type "rectangle" | ||
2113 | fill "#FFFFFF" | ||
2114 | fill2 "#FFFFFF" | ||
2115 | outline "#000000" | ||
2116 | ] | ||
2117 | LabelGraphics | ||
2118 | [ | ||
2119 | text "New Integers" | ||
2120 | outline "#000000" | ||
2121 | fill "#FFFFFF" | ||
2122 | fontSize 16 | ||
2123 | fontName "Monospace" | ||
2124 | autoSizePolicy "node_width" | ||
2125 | anchor "t" | ||
2126 | borderDistance 0.0 | ||
2127 | ] | ||
2128 | LabelGraphics | ||
2129 | [ | ||
2130 | text " | ||
2131 | " | ||
2132 | fontSize 14 | ||
2133 | fontName "Consolas" | ||
2134 | alignment "left" | ||
2135 | anchor "tl" | ||
2136 | borderDistance 6 | ||
2137 | ] | ||
2138 | ] | ||
2139 | |||
2140 | node | ||
2141 | [ | ||
2142 | id 17 | ||
2143 | graphics | ||
2144 | [ | ||
2145 | w 85.80000000000001 | ||
2146 | h 26 | ||
2147 | type "rectangle" | ||
2148 | fill "#FFFFFF" | ||
2149 | fill2 "#FFFFFF" | ||
2150 | outline "#000000" | ||
2151 | ] | ||
2152 | LabelGraphics | ||
2153 | [ | ||
2154 | text "New Reals" | ||
2155 | outline "#000000" | ||
2156 | fill "#FFFFFF" | ||
2157 | fontSize 16 | ||
2158 | fontName "Monospace" | ||
2159 | autoSizePolicy "node_width" | ||
2160 | anchor "t" | ||
2161 | borderDistance 0.0 | ||
2162 | ] | ||
2163 | LabelGraphics | ||
2164 | [ | ||
2165 | text " | ||
2166 | " | ||
2167 | fontSize 14 | ||
2168 | fontName "Consolas" | ||
2169 | alignment "left" | ||
2170 | anchor "tl" | ||
2171 | borderDistance 6 | ||
2172 | ] | ||
2173 | ] | ||
2174 | |||
2175 | node | ||
2176 | [ | ||
2177 | id 18 | ||
2178 | graphics | ||
2179 | [ | ||
2180 | w 103.4 | ||
2181 | h 26 | ||
2182 | type "rectangle" | ||
2183 | fill "#FFFFFF" | ||
2184 | fill2 "#FFFFFF" | ||
2185 | outline "#000000" | ||
2186 | ] | ||
2187 | LabelGraphics | ||
2188 | [ | ||
2189 | text "New Strings" | ||
2190 | outline "#000000" | ||
2191 | fill "#FFFFFF" | ||
2192 | fontSize 16 | ||
2193 | fontName "Monospace" | ||
2194 | autoSizePolicy "node_width" | ||
2195 | anchor "t" | ||
2196 | borderDistance 0.0 | ||
2197 | ] | ||
2198 | LabelGraphics | ||
2199 | [ | ||
2200 | text " | ||
2201 | " | ||
2202 | fontSize 14 | ||
2203 | fontName "Consolas" | ||
2204 | alignment "left" | ||
2205 | anchor "tl" | ||
2206 | borderDistance 6 | ||
2207 | ] | ||
2208 | ] | ||
2209 | |||
2210 | node | ||
2211 | [ | ||
2212 | id 19 | ||
2213 | graphics | ||
2214 | [ | ||
2215 | w 103.4 | ||
2216 | h 26 | ||
2217 | type "rectangle" | ||
2218 | fill "#FFFFFF" | ||
2219 | fill2 "#FFFFFF" | ||
2220 | outline "#000000" | ||
2221 | ] | ||
2222 | LabelGraphics | ||
2223 | [ | ||
2224 | text "New Objects" | ||
2225 | outline "#000000" | ||
2226 | fill "#FFFFFF" | ||
2227 | fontSize 16 | ||
2228 | fontName "Monospace" | ||
2229 | autoSizePolicy "node_width" | ||
2230 | anchor "t" | ||
2231 | borderDistance 0.0 | ||
2232 | ] | ||
2233 | LabelGraphics | ||
2234 | [ | ||
2235 | text " | ||
2236 | " | ||
2237 | fontSize 14 | ||
2238 | fontName "Consolas" | ||
2239 | alignment "left" | ||
2240 | anchor "tl" | ||
2241 | borderDistance 6 | ||
2242 | ] | ||
2243 | ] | ||
2244 | edge | ||
2245 | [ | ||
2246 | source 13 | ||
2247 | target 0 | ||
2248 | graphics | ||
2249 | [ | ||
2250 | fill "#000000" | ||
2251 | targetArrow "standard" | ||
2252 | ] | ||
2253 | LabelGraphics | ||
2254 | [ | ||
2255 | text "eModelElement reference EAnnotation" | ||
2256 | fontSize 14 | ||
2257 | fontName "Consolas" | ||
2258 | configuration "AutoFlippingLabel" | ||
2259 | model "six_pos" | ||
2260 | position "thead" | ||
2261 | ] | ||
2262 | ] | ||
2263 | edge | ||
2264 | [ | ||
2265 | source 11 | ||
2266 | target 0 | ||
2267 | graphics | ||
2268 | [ | ||
2269 | fill "#000000" | ||
2270 | targetArrow "standard" | ||
2271 | ] | ||
2272 | LabelGraphics | ||
2273 | [ | ||
2274 | text "ePackage reference EClassifier" | ||
2275 | fontSize 14 | ||
2276 | fontName "Consolas" | ||
2277 | configuration "AutoFlippingLabel" | ||
2278 | model "six_pos" | ||
2279 | position "thead" | ||
2280 | ] | ||
2281 | ] | ||
2282 | edge | ||
2283 | [ | ||
2284 | source 12 | ||
2285 | target 0 | ||
2286 | graphics | ||
2287 | [ | ||
2288 | fill "#000000" | ||
2289 | targetArrow "standard" | ||
2290 | ] | ||
2291 | LabelGraphics | ||
2292 | [ | ||
2293 | text "ePackage reference EClassifier" | ||
2294 | fontSize 14 | ||
2295 | fontName "Consolas" | ||
2296 | configuration "AutoFlippingLabel" | ||
2297 | model "six_pos" | ||
2298 | position "thead" | ||
2299 | ] | ||
2300 | ] | ||
2301 | edge | ||
2302 | [ | ||
2303 | source 14 | ||
2304 | target 0 | ||
2305 | graphics | ||
2306 | [ | ||
2307 | fill "#000000" | ||
2308 | targetArrow "standard" | ||
2309 | ] | ||
2310 | LabelGraphics | ||
2311 | [ | ||
2312 | text "ePackage reference EClassifier" | ||
2313 | fontSize 14 | ||
2314 | fontName "Consolas" | ||
2315 | configuration "AutoFlippingLabel" | ||
2316 | model "six_pos" | ||
2317 | position "thead" | ||
2318 | ] | ||
2319 | ] | ||
2320 | edge | ||
2321 | [ | ||
2322 | source 14 | ||
2323 | target 15 | ||
2324 | graphics | ||
2325 | [ | ||
2326 | fill "#000000" | ||
2327 | width 3 | ||
2328 | targetArrow "standard" | ||
2329 | ] | ||
2330 | LabelGraphics | ||
2331 | [ | ||
2332 | text "eLiterals reference EEnum" | ||
2333 | fontSize 14 | ||
2334 | fontName "Consolas" | ||
2335 | configuration "AutoFlippingLabel" | ||
2336 | model "six_pos" | ||
2337 | position "thead" | ||
2338 | ] | ||
2339 | ] | ||
2340 | edge | ||
2341 | [ | ||
2342 | source 15 | ||
2343 | target 14 | ||
2344 | graphics | ||
2345 | [ | ||
2346 | fill "#000000" | ||
2347 | targetArrow "standard" | ||
2348 | ] | ||
2349 | LabelGraphics | ||
2350 | [ | ||
2351 | text "eEnum reference EEnumLiteral" | ||
2352 | fontSize 14 | ||
2353 | fontName "Consolas" | ||
2354 | configuration "AutoFlippingLabel" | ||
2355 | model "six_pos" | ||
2356 | position "thead" | ||
2357 | ] | ||
2358 | ] | ||
2359 | edge | ||
2360 | [ | ||
2361 | source 0 | ||
2362 | target 13 | ||
2363 | graphics | ||
2364 | [ | ||
2365 | fill "#000000" | ||
2366 | width 3 | ||
2367 | targetArrow "standard" | ||
2368 | ] | ||
2369 | LabelGraphics | ||
2370 | [ | ||
2371 | text "eAnnotations reference EModelElement" | ||
2372 | fontSize 14 | ||
2373 | fontName "Consolas" | ||
2374 | configuration "AutoFlippingLabel" | ||
2375 | model "six_pos" | ||
2376 | position "thead" | ||
2377 | ] | ||
2378 | ] | ||
2379 | edge | ||
2380 | [ | ||
2381 | source 0 | ||
2382 | target 11 | ||
2383 | graphics | ||
2384 | [ | ||
2385 | fill "#000000" | ||
2386 | width 3 | ||
2387 | targetArrow "standard" | ||
2388 | ] | ||
2389 | LabelGraphics | ||
2390 | [ | ||
2391 | text "eClassifiers reference EPackage" | ||
2392 | fontSize 14 | ||
2393 | fontName "Consolas" | ||
2394 | configuration "AutoFlippingLabel" | ||
2395 | model "six_pos" | ||
2396 | position "thead" | ||
2397 | ] | ||
2398 | ] | ||
2399 | edge | ||
2400 | [ | ||
2401 | source 0 | ||
2402 | target 12 | ||
2403 | graphics | ||
2404 | [ | ||
2405 | fill "#000000" | ||
2406 | width 3 | ||
2407 | targetArrow "standard" | ||
2408 | ] | ||
2409 | LabelGraphics | ||
2410 | [ | ||
2411 | text "eClassifiers reference EPackage" | ||
2412 | fontSize 14 | ||
2413 | fontName "Consolas" | ||
2414 | configuration "AutoFlippingLabel" | ||
2415 | model "six_pos" | ||
2416 | position "thead" | ||
2417 | ] | ||
2418 | ] | ||
2419 | edge | ||
2420 | [ | ||
2421 | source 0 | ||
2422 | target 14 | ||
2423 | graphics | ||
2424 | [ | ||
2425 | fill "#000000" | ||
2426 | width 3 | ||
2427 | targetArrow "standard" | ||
2428 | ] | ||
2429 | LabelGraphics | ||
2430 | [ | ||
2431 | text "eClassifiers reference EPackage" | ||
2432 | fontSize 14 | ||
2433 | fontName "Consolas" | ||
2434 | configuration "AutoFlippingLabel" | ||
2435 | model "six_pos" | ||
2436 | position "thead" | ||
2437 | ] | ||
2438 | ] | ||
2439 | edge | ||
2440 | [ | ||
2441 | source 13 | ||
2442 | target 9 | ||
2443 | graphics | ||
2444 | [ | ||
2445 | fill "#000000" | ||
2446 | targetArrow "standard" | ||
2447 | ] | ||
2448 | LabelGraphics | ||
2449 | [ | ||
2450 | text "source attribute EAnnotation" | ||
2451 | fontSize 14 | ||
2452 | fontName "Consolas" | ||
2453 | configuration "AutoFlippingLabel" | ||
2454 | model "six_pos" | ||
2455 | position "thead" | ||
2456 | ] | ||
2457 | ] | ||
2458 | edge | ||
2459 | [ | ||
2460 | source 11 | ||
2461 | target 6 | ||
2462 | graphics | ||
2463 | [ | ||
2464 | fill "#000000" | ||
2465 | targetArrow "standard" | ||
2466 | ] | ||
2467 | LabelGraphics | ||
2468 | [ | ||
2469 | text "instanceClassName attribute EClassifier" | ||
2470 | fontSize 14 | ||
2471 | fontName "Consolas" | ||
2472 | configuration "AutoFlippingLabel" | ||
2473 | model "six_pos" | ||
2474 | position "thead" | ||
2475 | ] | ||
2476 | ] | ||
2477 | edge | ||
2478 | [ | ||
2479 | source 12 | ||
2480 | target 10 | ||
2481 | graphics | ||
2482 | [ | ||
2483 | fill "#000000" | ||
2484 | targetArrow "standard" | ||
2485 | ] | ||
2486 | LabelGraphics | ||
2487 | [ | ||
2488 | text "instanceTypeName attribute EClassifier" | ||
2489 | fontSize 14 | ||
2490 | fontName "Consolas" | ||
2491 | configuration "AutoFlippingLabel" | ||
2492 | model "six_pos" | ||
2493 | position "thead" | ||
2494 | ] | ||
2495 | ] | ||
2496 | edge | ||
2497 | [ | ||
2498 | source 14 | ||
2499 | target 8 | ||
2500 | graphics | ||
2501 | [ | ||
2502 | fill "#000000" | ||
2503 | targetArrow "standard" | ||
2504 | ] | ||
2505 | LabelGraphics | ||
2506 | [ | ||
2507 | text "instanceTypeName attribute EClassifier" | ||
2508 | fontSize 14 | ||
2509 | fontName "Consolas" | ||
2510 | configuration "AutoFlippingLabel" | ||
2511 | model "six_pos" | ||
2512 | position "thead" | ||
2513 | ] | ||
2514 | ] | ||
2515 | edge | ||
2516 | [ | ||
2517 | source 12 | ||
2518 | target 2 | ||
2519 | graphics | ||
2520 | [ | ||
2521 | fill "#000000" | ||
2522 | targetArrow "standard" | ||
2523 | ] | ||
2524 | LabelGraphics | ||
2525 | [ | ||
2526 | text "serializable attribute EDataType" | ||
2527 | fontSize 14 | ||
2528 | fontName "Consolas" | ||
2529 | configuration "AutoFlippingLabel" | ||
2530 | model "six_pos" | ||
2531 | position "thead" | ||
2532 | ] | ||
2533 | ] | ||
2534 | edge | ||
2535 | [ | ||
2536 | source 14 | ||
2537 | target 2 | ||
2538 | graphics | ||
2539 | [ | ||
2540 | fill "#000000" | ||
2541 | targetArrow "standard" | ||
2542 | ] | ||
2543 | LabelGraphics | ||
2544 | [ | ||
2545 | text "serializable attribute EDataType" | ||
2546 | fontSize 14 | ||
2547 | fontName "Consolas" | ||
2548 | configuration "AutoFlippingLabel" | ||
2549 | model "six_pos" | ||
2550 | position "thead" | ||
2551 | ] | ||
2552 | ] | ||
2553 | edge | ||
2554 | [ | ||
2555 | source 0 | ||
2556 | target 10 | ||
2557 | graphics | ||
2558 | [ | ||
2559 | fill "#000000" | ||
2560 | targetArrow "standard" | ||
2561 | ] | ||
2562 | LabelGraphics | ||
2563 | [ | ||
2564 | text "name attribute ENamedElement" | ||
2565 | fontSize 14 | ||
2566 | fontName "Consolas" | ||
2567 | configuration "AutoFlippingLabel" | ||
2568 | model "six_pos" | ||
2569 | position "thead" | ||
2570 | ] | ||
2571 | ] | ||
2572 | edge | ||
2573 | [ | ||
2574 | source 11 | ||
2575 | target 10 | ||
2576 | graphics | ||
2577 | [ | ||
2578 | fill "#000000" | ||
2579 | targetArrow "standard" | ||
2580 | ] | ||
2581 | LabelGraphics | ||
2582 | [ | ||
2583 | text "name attribute ENamedElement" | ||
2584 | fontSize 14 | ||
2585 | fontName "Consolas" | ||
2586 | configuration "AutoFlippingLabel" | ||
2587 | model "six_pos" | ||
2588 | position "thead" | ||
2589 | ] | ||
2590 | ] | ||
2591 | edge | ||
2592 | [ | ||
2593 | source 12 | ||
2594 | target 9 | ||
2595 | graphics | ||
2596 | [ | ||
2597 | fill "#000000" | ||
2598 | targetArrow "standard" | ||
2599 | ] | ||
2600 | LabelGraphics | ||
2601 | [ | ||
2602 | text "name attribute ENamedElement" | ||
2603 | fontSize 14 | ||
2604 | fontName "Consolas" | ||
2605 | configuration "AutoFlippingLabel" | ||
2606 | model "six_pos" | ||
2607 | position "thead" | ||
2608 | ] | ||
2609 | ] | ||
2610 | edge | ||
2611 | [ | ||
2612 | source 14 | ||
2613 | target 9 | ||
2614 | graphics | ||
2615 | [ | ||
2616 | fill "#000000" | ||
2617 | targetArrow "standard" | ||
2618 | ] | ||
2619 | LabelGraphics | ||
2620 | [ | ||
2621 | text "name attribute ENamedElement" | ||
2622 | fontSize 14 | ||
2623 | fontName "Consolas" | ||
2624 | configuration "AutoFlippingLabel" | ||
2625 | model "six_pos" | ||
2626 | position "thead" | ||
2627 | ] | ||
2628 | ] | ||
2629 | edge | ||
2630 | [ | ||
2631 | source 0 | ||
2632 | target 9 | ||
2633 | graphics | ||
2634 | [ | ||
2635 | fill "#000000" | ||
2636 | targetArrow "standard" | ||
2637 | ] | ||
2638 | LabelGraphics | ||
2639 | [ | ||
2640 | text "nsURI attribute EPackage" | ||
2641 | fontSize 14 | ||
2642 | fontName "Consolas" | ||
2643 | configuration "AutoFlippingLabel" | ||
2644 | model "six_pos" | ||
2645 | position "thead" | ||
2646 | ] | ||
2647 | ] | ||
2648 | edge | ||
2649 | [ | ||
2650 | source 0 | ||
2651 | target 8 | ||
2652 | graphics | ||
2653 | [ | ||
2654 | fill "#000000" | ||
2655 | targetArrow "standard" | ||
2656 | ] | ||
2657 | LabelGraphics | ||
2658 | [ | ||
2659 | text "nsPrefix attribute EPackage" | ||
2660 | fontSize 14 | ||
2661 | fontName "Consolas" | ||
2662 | configuration "AutoFlippingLabel" | ||
2663 | model "six_pos" | ||
2664 | position "thead" | ||
2665 | ] | ||
2666 | ] | ||
2667 | ] | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/2.png b/Tests/Ecore-Plugin/outputs/models/2.png new file mode 100644 index 00000000..344b27e9 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/2.png | |||
Binary files differ | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/2.xmi b/Tests/Ecore-Plugin/outputs/models/2.xmi new file mode 100644 index 00000000..e5a2408a --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/2.xmi | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> | ||
3 | <eAnnotations> | ||
4 | <details/> | ||
5 | <details/> | ||
6 | <details/> | ||
7 | <contents/> | ||
8 | </eAnnotations> | ||
9 | </ecore:EPackage> | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/3.gml b/Tests/Ecore-Plugin/outputs/models/3.gml new file mode 100644 index 00000000..eb6046af --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/3.gml | |||
@@ -0,0 +1,2705 @@ | |||
1 | graph | ||
2 | [ | ||
3 | node | ||
4 | [ | ||
5 | id 0 | ||
6 | graphics | ||
7 | [ | ||
8 | w 254.10000000000002 | ||
9 | h 110 | ||
10 | type "rectangle" | ||
11 | fill "#FFFFFF" | ||
12 | fill2 "#FFFFFF" | ||
13 | outline "#000000" | ||
14 | ] | ||
15 | LabelGraphics | ||
16 | [ | ||
17 | text "o 1" | ||
18 | outline "#000000" | ||
19 | fill "#FFFFFF" | ||
20 | fontSize 16 | ||
21 | fontName "Monospace" | ||
22 | autoSizePolicy "node_width" | ||
23 | anchor "t" | ||
24 | borderDistance 0.0 | ||
25 | ] | ||
26 | LabelGraphics | ||
27 | [ | ||
28 | text " | ||
29 | EModelElement class DefinedPart | ||
30 | ENamedElement class DefinedPart | ||
31 | EPackage class DefinedPart | ||
32 | EModelElement class | ||
33 | ENamedElement class | ||
34 | EPackage class | ||
35 | " | ||
36 | fontSize 14 | ||
37 | fontName "Consolas" | ||
38 | alignment "left" | ||
39 | anchor "tl" | ||
40 | borderDistance 6 | ||
41 | ] | ||
42 | ] | ||
43 | |||
44 | node | ||
45 | [ | ||
46 | id 1 | ||
47 | graphics | ||
48 | [ | ||
49 | w 41.800000000000004 | ||
50 | h 26 | ||
51 | type "rectangle" | ||
52 | fill "#FFFFFF" | ||
53 | fill2 "#FFFFFF" | ||
54 | outline "#000000" | ||
55 | ] | ||
56 | LabelGraphics | ||
57 | [ | ||
58 | text "true" | ||
59 | outline "#000000" | ||
60 | fill "#FFFFFF" | ||
61 | fontSize 16 | ||
62 | fontName "Monospace" | ||
63 | autoSizePolicy "node_width" | ||
64 | anchor "t" | ||
65 | borderDistance 0.0 | ||
66 | ] | ||
67 | LabelGraphics | ||
68 | [ | ||
69 | text " | ||
70 | " | ||
71 | fontSize 14 | ||
72 | fontName "Consolas" | ||
73 | alignment "left" | ||
74 | anchor "tl" | ||
75 | borderDistance 6 | ||
76 | ] | ||
77 | ] | ||
78 | |||
79 | node | ||
80 | [ | ||
81 | id 2 | ||
82 | graphics | ||
83 | [ | ||
84 | w 50.6 | ||
85 | h 26 | ||
86 | type "rectangle" | ||
87 | fill "#FFFFFF" | ||
88 | fill2 "#FFFFFF" | ||
89 | outline "#000000" | ||
90 | ] | ||
91 | LabelGraphics | ||
92 | [ | ||
93 | text "false" | ||
94 | outline "#000000" | ||
95 | fill "#FFFFFF" | ||
96 | fontSize 16 | ||
97 | fontName "Monospace" | ||
98 | autoSizePolicy "node_width" | ||
99 | anchor "t" | ||
100 | borderDistance 0.0 | ||
101 | ] | ||
102 | LabelGraphics | ||
103 | [ | ||
104 | text " | ||
105 | " | ||
106 | fontSize 14 | ||
107 | fontName "Consolas" | ||
108 | alignment "left" | ||
109 | anchor "tl" | ||
110 | borderDistance 6 | ||
111 | ] | ||
112 | ] | ||
113 | |||
114 | node | ||
115 | [ | ||
116 | id 3 | ||
117 | graphics | ||
118 | [ | ||
119 | w 24.200000000000003 | ||
120 | h 26 | ||
121 | type "rectangle" | ||
122 | fill "#FFFFFF" | ||
123 | fill2 "#FFFFFF" | ||
124 | outline "#000000" | ||
125 | ] | ||
126 | LabelGraphics | ||
127 | [ | ||
128 | text "-1" | ||
129 | outline "#000000" | ||
130 | fill "#FFFFFF" | ||
131 | fontSize 16 | ||
132 | fontName "Monospace" | ||
133 | autoSizePolicy "node_width" | ||
134 | anchor "t" | ||
135 | borderDistance 0.0 | ||
136 | ] | ||
137 | LabelGraphics | ||
138 | [ | ||
139 | text " | ||
140 | " | ||
141 | fontSize 14 | ||
142 | fontName "Consolas" | ||
143 | alignment "left" | ||
144 | anchor "tl" | ||
145 | borderDistance 6 | ||
146 | ] | ||
147 | ] | ||
148 | |||
149 | node | ||
150 | [ | ||
151 | id 4 | ||
152 | graphics | ||
153 | [ | ||
154 | w 15.400000000000002 | ||
155 | h 26 | ||
156 | type "rectangle" | ||
157 | fill "#FFFFFF" | ||
158 | fill2 "#FFFFFF" | ||
159 | outline "#000000" | ||
160 | ] | ||
161 | LabelGraphics | ||
162 | [ | ||
163 | text "0" | ||
164 | outline "#000000" | ||
165 | fill "#FFFFFF" | ||
166 | fontSize 16 | ||
167 | fontName "Monospace" | ||
168 | autoSizePolicy "node_width" | ||
169 | anchor "t" | ||
170 | borderDistance 0.0 | ||
171 | ] | ||
172 | LabelGraphics | ||
173 | [ | ||
174 | text " | ||
175 | " | ||
176 | fontSize 14 | ||
177 | fontName "Consolas" | ||
178 | alignment "left" | ||
179 | anchor "tl" | ||
180 | borderDistance 6 | ||
181 | ] | ||
182 | ] | ||
183 | |||
184 | node | ||
185 | [ | ||
186 | id 5 | ||
187 | graphics | ||
188 | [ | ||
189 | w 15.400000000000002 | ||
190 | h 26 | ||
191 | type "rectangle" | ||
192 | fill "#FFFFFF" | ||
193 | fill2 "#FFFFFF" | ||
194 | outline "#000000" | ||
195 | ] | ||
196 | LabelGraphics | ||
197 | [ | ||
198 | text "1" | ||
199 | outline "#000000" | ||
200 | fill "#FFFFFF" | ||
201 | fontSize 16 | ||
202 | fontName "Monospace" | ||
203 | autoSizePolicy "node_width" | ||
204 | anchor "t" | ||
205 | borderDistance 0.0 | ||
206 | ] | ||
207 | LabelGraphics | ||
208 | [ | ||
209 | text " | ||
210 | " | ||
211 | fontSize 14 | ||
212 | fontName "Consolas" | ||
213 | alignment "left" | ||
214 | anchor "tl" | ||
215 | borderDistance 6 | ||
216 | ] | ||
217 | ] | ||
218 | |||
219 | node | ||
220 | [ | ||
221 | id 6 | ||
222 | graphics | ||
223 | [ | ||
224 | w 33.0 | ||
225 | h 26 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text ""A"" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | " | ||
246 | fontSize 14 | ||
247 | fontName "Consolas" | ||
248 | alignment "left" | ||
249 | anchor "tl" | ||
250 | borderDistance 6 | ||
251 | ] | ||
252 | ] | ||
253 | |||
254 | node | ||
255 | [ | ||
256 | id 7 | ||
257 | graphics | ||
258 | [ | ||
259 | w 33.0 | ||
260 | h 26 | ||
261 | type "rectangle" | ||
262 | fill "#FFFFFF" | ||
263 | fill2 "#FFFFFF" | ||
264 | outline "#000000" | ||
265 | ] | ||
266 | LabelGraphics | ||
267 | [ | ||
268 | text ""B"" | ||
269 | outline "#000000" | ||
270 | fill "#FFFFFF" | ||
271 | fontSize 16 | ||
272 | fontName "Monospace" | ||
273 | autoSizePolicy "node_width" | ||
274 | anchor "t" | ||
275 | borderDistance 0.0 | ||
276 | ] | ||
277 | LabelGraphics | ||
278 | [ | ||
279 | text " | ||
280 | " | ||
281 | fontSize 14 | ||
282 | fontName "Consolas" | ||
283 | alignment "left" | ||
284 | anchor "tl" | ||
285 | borderDistance 6 | ||
286 | ] | ||
287 | ] | ||
288 | |||
289 | node | ||
290 | [ | ||
291 | id 8 | ||
292 | graphics | ||
293 | [ | ||
294 | w 269.5 | ||
295 | h 68 | ||
296 | type "rectangle" | ||
297 | fill "#FFFFFF" | ||
298 | fill2 "#FFFFFF" | ||
299 | outline "#000000" | ||
300 | ] | ||
301 | LabelGraphics | ||
302 | [ | ||
303 | text "null" | ||
304 | outline "#000000" | ||
305 | fill "#FFFFFF" | ||
306 | fontSize 16 | ||
307 | fontName "Monospace" | ||
308 | autoSizePolicy "node_width" | ||
309 | anchor "t" | ||
310 | borderDistance 0.0 | ||
311 | ] | ||
312 | LabelGraphics | ||
313 | [ | ||
314 | text " | ||
315 | EAnnotation class | ||
316 | EModelElement class | ||
317 | EModelElement class UndefinedPart | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 269.5 | ||
333 | h 124 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "null" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | EClassifier class | ||
354 | EDataType class | ||
355 | EEnum class | ||
356 | EModelElement class | ||
357 | ENamedElement class | ||
358 | EModelElement class UndefinedPart | ||
359 | ENamedElement class UndefinedPart | ||
360 | " | ||
361 | fontSize 14 | ||
362 | fontName "Consolas" | ||
363 | alignment "left" | ||
364 | anchor "tl" | ||
365 | borderDistance 6 | ||
366 | ] | ||
367 | ] | ||
368 | |||
369 | node | ||
370 | [ | ||
371 | id 10 | ||
372 | graphics | ||
373 | [ | ||
374 | w 269.5 | ||
375 | h 68 | ||
376 | type "rectangle" | ||
377 | fill "#FFFFFF" | ||
378 | fill2 "#FFFFFF" | ||
379 | outline "#000000" | ||
380 | ] | ||
381 | LabelGraphics | ||
382 | [ | ||
383 | text "null" | ||
384 | outline "#000000" | ||
385 | fill "#FFFFFF" | ||
386 | fontSize 16 | ||
387 | fontName "Monospace" | ||
388 | autoSizePolicy "node_width" | ||
389 | anchor "t" | ||
390 | borderDistance 0.0 | ||
391 | ] | ||
392 | LabelGraphics | ||
393 | [ | ||
394 | text " | ||
395 | EAnnotation class | ||
396 | EModelElement class | ||
397 | EModelElement class UndefinedPart | ||
398 | " | ||
399 | fontSize 14 | ||
400 | fontName "Consolas" | ||
401 | alignment "left" | ||
402 | anchor "tl" | ||
403 | borderDistance 6 | ||
404 | ] | ||
405 | ] | ||
406 | |||
407 | node | ||
408 | [ | ||
409 | id 11 | ||
410 | graphics | ||
411 | [ | ||
412 | w 269.5 | ||
413 | h 110 | ||
414 | type "rectangle" | ||
415 | fill "#FFFFFF" | ||
416 | fill2 "#FFFFFF" | ||
417 | outline "#000000" | ||
418 | ] | ||
419 | LabelGraphics | ||
420 | [ | ||
421 | text "null" | ||
422 | outline "#000000" | ||
423 | fill "#FFFFFF" | ||
424 | fontSize 16 | ||
425 | fontName "Monospace" | ||
426 | autoSizePolicy "node_width" | ||
427 | anchor "t" | ||
428 | borderDistance 0.0 | ||
429 | ] | ||
430 | LabelGraphics | ||
431 | [ | ||
432 | text " | ||
433 | EClass class | ||
434 | EClassifier class | ||
435 | EModelElement class | ||
436 | ENamedElement class | ||
437 | EModelElement class UndefinedPart | ||
438 | ENamedElement class UndefinedPart | ||
439 | " | ||
440 | fontSize 14 | ||
441 | fontName "Consolas" | ||
442 | alignment "left" | ||
443 | anchor "tl" | ||
444 | borderDistance 6 | ||
445 | ] | ||
446 | ] | ||
447 | |||
448 | node | ||
449 | [ | ||
450 | id 12 | ||
451 | graphics | ||
452 | [ | ||
453 | w 269.5 | ||
454 | h 124 | ||
455 | type "rectangle" | ||
456 | fill "#FFFFFF" | ||
457 | fill2 "#FFFFFF" | ||
458 | outline "#000000" | ||
459 | ] | ||
460 | LabelGraphics | ||
461 | [ | ||
462 | text "null" | ||
463 | outline "#000000" | ||
464 | fill "#FFFFFF" | ||
465 | fontSize 16 | ||
466 | fontName "Monospace" | ||
467 | autoSizePolicy "node_width" | ||
468 | anchor "t" | ||
469 | borderDistance 0.0 | ||
470 | ] | ||
471 | LabelGraphics | ||
472 | [ | ||
473 | text " | ||
474 | EModelElement class | ||
475 | ENamedElement class | ||
476 | EReference class | ||
477 | EStructuralFeature class | ||
478 | ETypedElement class | ||
479 | EModelElement class UndefinedPart | ||
480 | ENamedElement class UndefinedPart | ||
481 | " | ||
482 | fontSize 14 | ||
483 | fontName "Consolas" | ||
484 | alignment "left" | ||
485 | anchor "tl" | ||
486 | borderDistance 6 | ||
487 | ] | ||
488 | ] | ||
489 | |||
490 | node | ||
491 | [ | ||
492 | id 13 | ||
493 | graphics | ||
494 | [ | ||
495 | w 112.2 | ||
496 | h 26 | ||
497 | type "rectangle" | ||
498 | fill "#FFFFFF" | ||
499 | fill2 "#FFFFFF" | ||
500 | outline "#000000" | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text "New Integers" | ||
505 | outline "#000000" | ||
506 | fill "#FFFFFF" | ||
507 | fontSize 16 | ||
508 | fontName "Monospace" | ||
509 | autoSizePolicy "node_width" | ||
510 | anchor "t" | ||
511 | borderDistance 0.0 | ||
512 | ] | ||
513 | LabelGraphics | ||
514 | [ | ||
515 | text " | ||
516 | " | ||
517 | fontSize 14 | ||
518 | fontName "Consolas" | ||
519 | alignment "left" | ||
520 | anchor "tl" | ||
521 | borderDistance 6 | ||
522 | ] | ||
523 | ] | ||
524 | |||
525 | node | ||
526 | [ | ||
527 | id 14 | ||
528 | graphics | ||
529 | [ | ||
530 | w 85.80000000000001 | ||
531 | h 26 | ||
532 | type "rectangle" | ||
533 | fill "#FFFFFF" | ||
534 | fill2 "#FFFFFF" | ||
535 | outline "#000000" | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text "New Reals" | ||
540 | outline "#000000" | ||
541 | fill "#FFFFFF" | ||
542 | fontSize 16 | ||
543 | fontName "Monospace" | ||
544 | autoSizePolicy "node_width" | ||
545 | anchor "t" | ||
546 | borderDistance 0.0 | ||
547 | ] | ||
548 | LabelGraphics | ||
549 | [ | ||
550 | text " | ||
551 | " | ||
552 | fontSize 14 | ||
553 | fontName "Consolas" | ||
554 | alignment "left" | ||
555 | anchor "tl" | ||
556 | borderDistance 6 | ||
557 | ] | ||
558 | ] | ||
559 | |||
560 | node | ||
561 | [ | ||
562 | id 15 | ||
563 | graphics | ||
564 | [ | ||
565 | w 103.4 | ||
566 | h 26 | ||
567 | type "rectangle" | ||
568 | fill "#FFFFFF" | ||
569 | fill2 "#FFFFFF" | ||
570 | outline "#000000" | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text "New Strings" | ||
575 | outline "#000000" | ||
576 | fill "#FFFFFF" | ||
577 | fontSize 16 | ||
578 | fontName "Monospace" | ||
579 | autoSizePolicy "node_width" | ||
580 | anchor "t" | ||
581 | borderDistance 0.0 | ||
582 | ] | ||
583 | LabelGraphics | ||
584 | [ | ||
585 | text " | ||
586 | " | ||
587 | fontSize 14 | ||
588 | fontName "Consolas" | ||
589 | alignment "left" | ||
590 | anchor "tl" | ||
591 | borderDistance 6 | ||
592 | ] | ||
593 | ] | ||
594 | |||
595 | node | ||
596 | [ | ||
597 | id 16 | ||
598 | graphics | ||
599 | [ | ||
600 | w 103.4 | ||
601 | h 26 | ||
602 | type "rectangle" | ||
603 | fill "#FFFFFF" | ||
604 | fill2 "#FFFFFF" | ||
605 | outline "#000000" | ||
606 | ] | ||
607 | LabelGraphics | ||
608 | [ | ||
609 | text "New Objects" | ||
610 | outline "#000000" | ||
611 | fill "#FFFFFF" | ||
612 | fontSize 16 | ||
613 | fontName "Monospace" | ||
614 | autoSizePolicy "node_width" | ||
615 | anchor "t" | ||
616 | borderDistance 0.0 | ||
617 | ] | ||
618 | LabelGraphics | ||
619 | [ | ||
620 | text " | ||
621 | " | ||
622 | fontSize 14 | ||
623 | fontName "Consolas" | ||
624 | alignment "left" | ||
625 | anchor "tl" | ||
626 | borderDistance 6 | ||
627 | ] | ||
628 | ] | ||
629 | edge | ||
630 | [ | ||
631 | source 8 | ||
632 | target 0 | ||
633 | graphics | ||
634 | [ | ||
635 | fill "#000000" | ||
636 | targetArrow "standard" | ||
637 | ] | ||
638 | LabelGraphics | ||
639 | [ | ||
640 | text "eModelElement reference EAnnotation" | ||
641 | fontSize 14 | ||
642 | fontName "Consolas" | ||
643 | configuration "AutoFlippingLabel" | ||
644 | model "six_pos" | ||
645 | position "thead" | ||
646 | ] | ||
647 | ] | ||
648 | edge | ||
649 | [ | ||
650 | source 10 | ||
651 | target 0 | ||
652 | graphics | ||
653 | [ | ||
654 | fill "#000000" | ||
655 | targetArrow "standard" | ||
656 | ] | ||
657 | LabelGraphics | ||
658 | [ | ||
659 | text "eModelElement reference EAnnotation" | ||
660 | fontSize 14 | ||
661 | fontName "Consolas" | ||
662 | configuration "AutoFlippingLabel" | ||
663 | model "six_pos" | ||
664 | position "thead" | ||
665 | ] | ||
666 | ] | ||
667 | edge | ||
668 | [ | ||
669 | source 11 | ||
670 | target 11 | ||
671 | graphics | ||
672 | [ | ||
673 | fill "#000000" | ||
674 | targetArrow "standard" | ||
675 | ] | ||
676 | LabelGraphics | ||
677 | [ | ||
678 | text "eSuperTypes reference EClass" | ||
679 | fontSize 14 | ||
680 | fontName "Consolas" | ||
681 | configuration "AutoFlippingLabel" | ||
682 | model "six_pos" | ||
683 | position "thead" | ||
684 | ] | ||
685 | ] | ||
686 | edge | ||
687 | [ | ||
688 | source 11 | ||
689 | target 12 | ||
690 | graphics | ||
691 | [ | ||
692 | fill "#000000" | ||
693 | targetArrow "standard" | ||
694 | ] | ||
695 | LabelGraphics | ||
696 | [ | ||
697 | text "eReferences reference EClass" | ||
698 | fontSize 14 | ||
699 | fontName "Consolas" | ||
700 | configuration "AutoFlippingLabel" | ||
701 | model "six_pos" | ||
702 | position "thead" | ||
703 | ] | ||
704 | ] | ||
705 | edge | ||
706 | [ | ||
707 | source 11 | ||
708 | target 12 | ||
709 | graphics | ||
710 | [ | ||
711 | fill "#000000" | ||
712 | targetArrow "standard" | ||
713 | ] | ||
714 | LabelGraphics | ||
715 | [ | ||
716 | text "eAllContainments reference EClass" | ||
717 | fontSize 14 | ||
718 | fontName "Consolas" | ||
719 | configuration "AutoFlippingLabel" | ||
720 | model "six_pos" | ||
721 | position "thead" | ||
722 | ] | ||
723 | ] | ||
724 | edge | ||
725 | [ | ||
726 | source 11 | ||
727 | target 12 | ||
728 | graphics | ||
729 | [ | ||
730 | fill "#000000" | ||
731 | targetArrow "standard" | ||
732 | ] | ||
733 | LabelGraphics | ||
734 | [ | ||
735 | text "eAllStructuralFeatures reference EClass" | ||
736 | fontSize 14 | ||
737 | fontName "Consolas" | ||
738 | configuration "AutoFlippingLabel" | ||
739 | model "six_pos" | ||
740 | position "thead" | ||
741 | ] | ||
742 | ] | ||
743 | edge | ||
744 | [ | ||
745 | source 11 | ||
746 | target 11 | ||
747 | graphics | ||
748 | [ | ||
749 | fill "#000000" | ||
750 | targetArrow "standard" | ||
751 | ] | ||
752 | LabelGraphics | ||
753 | [ | ||
754 | text "eAllSuperTypes reference EClass" | ||
755 | fontSize 14 | ||
756 | fontName "Consolas" | ||
757 | configuration "AutoFlippingLabel" | ||
758 | model "six_pos" | ||
759 | position "thead" | ||
760 | ] | ||
761 | ] | ||
762 | edge | ||
763 | [ | ||
764 | source 11 | ||
765 | target 12 | ||
766 | graphics | ||
767 | [ | ||
768 | fill "#000000" | ||
769 | width 3 | ||
770 | targetArrow "standard" | ||
771 | ] | ||
772 | LabelGraphics | ||
773 | [ | ||
774 | text "eStructuralFeatures reference EClass" | ||
775 | fontSize 14 | ||
776 | fontName "Consolas" | ||
777 | configuration "AutoFlippingLabel" | ||
778 | model "six_pos" | ||
779 | position "thead" | ||
780 | ] | ||
781 | ] | ||
782 | edge | ||
783 | [ | ||
784 | source 9 | ||
785 | target 0 | ||
786 | graphics | ||
787 | [ | ||
788 | fill "#000000" | ||
789 | targetArrow "standard" | ||
790 | ] | ||
791 | LabelGraphics | ||
792 | [ | ||
793 | text "ePackage reference EClassifier" | ||
794 | fontSize 14 | ||
795 | fontName "Consolas" | ||
796 | configuration "AutoFlippingLabel" | ||
797 | model "six_pos" | ||
798 | position "thead" | ||
799 | ] | ||
800 | ] | ||
801 | edge | ||
802 | [ | ||
803 | source 11 | ||
804 | target 0 | ||
805 | graphics | ||
806 | [ | ||
807 | fill "#000000" | ||
808 | targetArrow "standard" | ||
809 | ] | ||
810 | LabelGraphics | ||
811 | [ | ||
812 | text "ePackage reference EClassifier" | ||
813 | fontSize 14 | ||
814 | fontName "Consolas" | ||
815 | configuration "AutoFlippingLabel" | ||
816 | model "six_pos" | ||
817 | position "thead" | ||
818 | ] | ||
819 | ] | ||
820 | edge | ||
821 | [ | ||
822 | source 0 | ||
823 | target 8 | ||
824 | graphics | ||
825 | [ | ||
826 | fill "#000000" | ||
827 | width 3 | ||
828 | targetArrow "standard" | ||
829 | ] | ||
830 | LabelGraphics | ||
831 | [ | ||
832 | text "eAnnotations reference EModelElement" | ||
833 | fontSize 14 | ||
834 | fontName "Consolas" | ||
835 | configuration "AutoFlippingLabel" | ||
836 | model "six_pos" | ||
837 | position "thead" | ||
838 | ] | ||
839 | ] | ||
840 | edge | ||
841 | [ | ||
842 | source 0 | ||
843 | target 10 | ||
844 | graphics | ||
845 | [ | ||
846 | fill "#000000" | ||
847 | width 3 | ||
848 | targetArrow "standard" | ||
849 | ] | ||
850 | LabelGraphics | ||
851 | [ | ||
852 | text "eAnnotations reference EModelElement" | ||
853 | fontSize 14 | ||
854 | fontName "Consolas" | ||
855 | configuration "AutoFlippingLabel" | ||
856 | model "six_pos" | ||
857 | position "thead" | ||
858 | ] | ||
859 | ] | ||
860 | edge | ||
861 | [ | ||
862 | source 0 | ||
863 | target 9 | ||
864 | graphics | ||
865 | [ | ||
866 | fill "#000000" | ||
867 | width 3 | ||
868 | targetArrow "standard" | ||
869 | ] | ||
870 | LabelGraphics | ||
871 | [ | ||
872 | text "eClassifiers reference EPackage" | ||
873 | fontSize 14 | ||
874 | fontName "Consolas" | ||
875 | configuration "AutoFlippingLabel" | ||
876 | model "six_pos" | ||
877 | position "thead" | ||
878 | ] | ||
879 | ] | ||
880 | edge | ||
881 | [ | ||
882 | source 0 | ||
883 | target 11 | ||
884 | graphics | ||
885 | [ | ||
886 | fill "#000000" | ||
887 | width 3 | ||
888 | targetArrow "standard" | ||
889 | ] | ||
890 | LabelGraphics | ||
891 | [ | ||
892 | text "eClassifiers reference EPackage" | ||
893 | fontSize 14 | ||
894 | fontName "Consolas" | ||
895 | configuration "AutoFlippingLabel" | ||
896 | model "six_pos" | ||
897 | position "thead" | ||
898 | ] | ||
899 | ] | ||
900 | edge | ||
901 | [ | ||
902 | source 12 | ||
903 | target 12 | ||
904 | graphics | ||
905 | [ | ||
906 | fill "#000000" | ||
907 | targetArrow "standard" | ||
908 | ] | ||
909 | LabelGraphics | ||
910 | [ | ||
911 | text "eOpposite reference EReference" | ||
912 | fontSize 14 | ||
913 | fontName "Consolas" | ||
914 | configuration "AutoFlippingLabel" | ||
915 | model "six_pos" | ||
916 | position "thead" | ||
917 | ] | ||
918 | ] | ||
919 | edge | ||
920 | [ | ||
921 | source 12 | ||
922 | target 11 | ||
923 | graphics | ||
924 | [ | ||
925 | fill "#000000" | ||
926 | targetArrow "standard" | ||
927 | ] | ||
928 | LabelGraphics | ||
929 | [ | ||
930 | text "eReferenceType reference EReference" | ||
931 | fontSize 14 | ||
932 | fontName "Consolas" | ||
933 | configuration "AutoFlippingLabel" | ||
934 | model "six_pos" | ||
935 | position "thead" | ||
936 | ] | ||
937 | ] | ||
938 | edge | ||
939 | [ | ||
940 | source 12 | ||
941 | target 11 | ||
942 | graphics | ||
943 | [ | ||
944 | fill "#000000" | ||
945 | targetArrow "standard" | ||
946 | ] | ||
947 | LabelGraphics | ||
948 | [ | ||
949 | text "eContainingClass reference EStructuralFeature" | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | configuration "AutoFlippingLabel" | ||
953 | model "six_pos" | ||
954 | position "thead" | ||
955 | ] | ||
956 | ] | ||
957 | edge | ||
958 | [ | ||
959 | source 12 | ||
960 | target 11 | ||
961 | graphics | ||
962 | [ | ||
963 | fill "#000000" | ||
964 | targetArrow "standard" | ||
965 | ] | ||
966 | LabelGraphics | ||
967 | [ | ||
968 | text "eType reference ETypedElement" | ||
969 | fontSize 14 | ||
970 | fontName "Consolas" | ||
971 | configuration "AutoFlippingLabel" | ||
972 | model "six_pos" | ||
973 | position "thead" | ||
974 | ] | ||
975 | ] | ||
976 | edge | ||
977 | [ | ||
978 | source 8 | ||
979 | target 7 | ||
980 | graphics | ||
981 | [ | ||
982 | fill "#000000" | ||
983 | targetArrow "standard" | ||
984 | ] | ||
985 | LabelGraphics | ||
986 | [ | ||
987 | text "source attribute EAnnotation" | ||
988 | fontSize 14 | ||
989 | fontName "Consolas" | ||
990 | configuration "AutoFlippingLabel" | ||
991 | model "six_pos" | ||
992 | position "thead" | ||
993 | ] | ||
994 | ] | ||
995 | edge | ||
996 | [ | ||
997 | source 10 | ||
998 | target 6 | ||
999 | graphics | ||
1000 | [ | ||
1001 | fill "#000000" | ||
1002 | targetArrow "standard" | ||
1003 | ] | ||
1004 | LabelGraphics | ||
1005 | [ | ||
1006 | text "source attribute EAnnotation" | ||
1007 | fontSize 14 | ||
1008 | fontName "Consolas" | ||
1009 | configuration "AutoFlippingLabel" | ||
1010 | model "six_pos" | ||
1011 | position "thead" | ||
1012 | ] | ||
1013 | ] | ||
1014 | edge | ||
1015 | [ | ||
1016 | source 11 | ||
1017 | target 2 | ||
1018 | graphics | ||
1019 | [ | ||
1020 | fill "#000000" | ||
1021 | targetArrow "standard" | ||
1022 | ] | ||
1023 | LabelGraphics | ||
1024 | [ | ||
1025 | text "abstract attribute EClass" | ||
1026 | fontSize 14 | ||
1027 | fontName "Consolas" | ||
1028 | configuration "AutoFlippingLabel" | ||
1029 | model "six_pos" | ||
1030 | position "thead" | ||
1031 | ] | ||
1032 | ] | ||
1033 | edge | ||
1034 | [ | ||
1035 | source 11 | ||
1036 | target 1 | ||
1037 | graphics | ||
1038 | [ | ||
1039 | fill "#000000" | ||
1040 | targetArrow "standard" | ||
1041 | ] | ||
1042 | LabelGraphics | ||
1043 | [ | ||
1044 | text "interface attribute EClass" | ||
1045 | fontSize 14 | ||
1046 | fontName "Consolas" | ||
1047 | configuration "AutoFlippingLabel" | ||
1048 | model "six_pos" | ||
1049 | position "thead" | ||
1050 | ] | ||
1051 | ] | ||
1052 | edge | ||
1053 | [ | ||
1054 | source 11 | ||
1055 | target 7 | ||
1056 | graphics | ||
1057 | [ | ||
1058 | fill "#000000" | ||
1059 | targetArrow "standard" | ||
1060 | ] | ||
1061 | LabelGraphics | ||
1062 | [ | ||
1063 | text "instanceClassName attribute EClassifier" | ||
1064 | fontSize 14 | ||
1065 | fontName "Consolas" | ||
1066 | configuration "AutoFlippingLabel" | ||
1067 | model "six_pos" | ||
1068 | position "thead" | ||
1069 | ] | ||
1070 | ] | ||
1071 | edge | ||
1072 | [ | ||
1073 | source 11 | ||
1074 | target 7 | ||
1075 | graphics | ||
1076 | [ | ||
1077 | fill "#000000" | ||
1078 | targetArrow "standard" | ||
1079 | ] | ||
1080 | LabelGraphics | ||
1081 | [ | ||
1082 | text "instanceTypeName attribute EClassifier" | ||
1083 | fontSize 14 | ||
1084 | fontName "Consolas" | ||
1085 | configuration "AutoFlippingLabel" | ||
1086 | model "six_pos" | ||
1087 | position "thead" | ||
1088 | ] | ||
1089 | ] | ||
1090 | edge | ||
1091 | [ | ||
1092 | source 9 | ||
1093 | target 7 | ||
1094 | graphics | ||
1095 | [ | ||
1096 | fill "#000000" | ||
1097 | targetArrow "standard" | ||
1098 | ] | ||
1099 | LabelGraphics | ||
1100 | [ | ||
1101 | text "instanceTypeName attribute EClassifier" | ||
1102 | fontSize 14 | ||
1103 | fontName "Consolas" | ||
1104 | configuration "AutoFlippingLabel" | ||
1105 | model "six_pos" | ||
1106 | position "thead" | ||
1107 | ] | ||
1108 | ] | ||
1109 | edge | ||
1110 | [ | ||
1111 | source 9 | ||
1112 | target 2 | ||
1113 | graphics | ||
1114 | [ | ||
1115 | fill "#000000" | ||
1116 | targetArrow "standard" | ||
1117 | ] | ||
1118 | LabelGraphics | ||
1119 | [ | ||
1120 | text "serializable attribute EDataType" | ||
1121 | fontSize 14 | ||
1122 | fontName "Consolas" | ||
1123 | configuration "AutoFlippingLabel" | ||
1124 | model "six_pos" | ||
1125 | position "thead" | ||
1126 | ] | ||
1127 | ] | ||
1128 | edge | ||
1129 | [ | ||
1130 | source 0 | ||
1131 | target 7 | ||
1132 | graphics | ||
1133 | [ | ||
1134 | fill "#000000" | ||
1135 | targetArrow "standard" | ||
1136 | ] | ||
1137 | LabelGraphics | ||
1138 | [ | ||
1139 | text "name attribute ENamedElement" | ||
1140 | fontSize 14 | ||
1141 | fontName "Consolas" | ||
1142 | configuration "AutoFlippingLabel" | ||
1143 | model "six_pos" | ||
1144 | position "thead" | ||
1145 | ] | ||
1146 | ] | ||
1147 | edge | ||
1148 | [ | ||
1149 | source 12 | ||
1150 | target 6 | ||
1151 | graphics | ||
1152 | [ | ||
1153 | fill "#000000" | ||
1154 | targetArrow "standard" | ||
1155 | ] | ||
1156 | LabelGraphics | ||
1157 | [ | ||
1158 | text "name attribute ENamedElement" | ||
1159 | fontSize 14 | ||
1160 | fontName "Consolas" | ||
1161 | configuration "AutoFlippingLabel" | ||
1162 | model "six_pos" | ||
1163 | position "thead" | ||
1164 | ] | ||
1165 | ] | ||
1166 | edge | ||
1167 | [ | ||
1168 | source 11 | ||
1169 | target 7 | ||
1170 | graphics | ||
1171 | [ | ||
1172 | fill "#000000" | ||
1173 | targetArrow "standard" | ||
1174 | ] | ||
1175 | LabelGraphics | ||
1176 | [ | ||
1177 | text "name attribute ENamedElement" | ||
1178 | fontSize 14 | ||
1179 | fontName "Consolas" | ||
1180 | configuration "AutoFlippingLabel" | ||
1181 | model "six_pos" | ||
1182 | position "thead" | ||
1183 | ] | ||
1184 | ] | ||
1185 | edge | ||
1186 | [ | ||
1187 | source 9 | ||
1188 | target 7 | ||
1189 | graphics | ||
1190 | [ | ||
1191 | fill "#000000" | ||
1192 | targetArrow "standard" | ||
1193 | ] | ||
1194 | LabelGraphics | ||
1195 | [ | ||
1196 | text "name attribute ENamedElement" | ||
1197 | fontSize 14 | ||
1198 | fontName "Consolas" | ||
1199 | configuration "AutoFlippingLabel" | ||
1200 | model "six_pos" | ||
1201 | position "thead" | ||
1202 | ] | ||
1203 | ] | ||
1204 | edge | ||
1205 | [ | ||
1206 | source 0 | ||
1207 | target 7 | ||
1208 | graphics | ||
1209 | [ | ||
1210 | fill "#000000" | ||
1211 | targetArrow "standard" | ||
1212 | ] | ||
1213 | LabelGraphics | ||
1214 | [ | ||
1215 | text "nsURI attribute EPackage" | ||
1216 | fontSize 14 | ||
1217 | fontName "Consolas" | ||
1218 | configuration "AutoFlippingLabel" | ||
1219 | model "six_pos" | ||
1220 | position "thead" | ||
1221 | ] | ||
1222 | ] | ||
1223 | edge | ||
1224 | [ | ||
1225 | source 0 | ||
1226 | target 7 | ||
1227 | graphics | ||
1228 | [ | ||
1229 | fill "#000000" | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "nsPrefix attribute EPackage" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 12 | ||
1245 | target 2 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | targetArrow "standard" | ||
1250 | ] | ||
1251 | LabelGraphics | ||
1252 | [ | ||
1253 | text "containment attribute EReference" | ||
1254 | fontSize 14 | ||
1255 | fontName "Consolas" | ||
1256 | configuration "AutoFlippingLabel" | ||
1257 | model "six_pos" | ||
1258 | position "thead" | ||
1259 | ] | ||
1260 | ] | ||
1261 | edge | ||
1262 | [ | ||
1263 | source 12 | ||
1264 | target 2 | ||
1265 | graphics | ||
1266 | [ | ||
1267 | fill "#000000" | ||
1268 | targetArrow "standard" | ||
1269 | ] | ||
1270 | LabelGraphics | ||
1271 | [ | ||
1272 | text "container attribute EReference" | ||
1273 | fontSize 14 | ||
1274 | fontName "Consolas" | ||
1275 | configuration "AutoFlippingLabel" | ||
1276 | model "six_pos" | ||
1277 | position "thead" | ||
1278 | ] | ||
1279 | ] | ||
1280 | edge | ||
1281 | [ | ||
1282 | source 12 | ||
1283 | target 2 | ||
1284 | graphics | ||
1285 | [ | ||
1286 | fill "#000000" | ||
1287 | targetArrow "standard" | ||
1288 | ] | ||
1289 | LabelGraphics | ||
1290 | [ | ||
1291 | text "resolveProxies attribute EReference" | ||
1292 | fontSize 14 | ||
1293 | fontName "Consolas" | ||
1294 | configuration "AutoFlippingLabel" | ||
1295 | model "six_pos" | ||
1296 | position "thead" | ||
1297 | ] | ||
1298 | ] | ||
1299 | edge | ||
1300 | [ | ||
1301 | source 12 | ||
1302 | target 2 | ||
1303 | graphics | ||
1304 | [ | ||
1305 | fill "#000000" | ||
1306 | targetArrow "standard" | ||
1307 | ] | ||
1308 | LabelGraphics | ||
1309 | [ | ||
1310 | text "changeable attribute EStructuralFeature" | ||
1311 | fontSize 14 | ||
1312 | fontName "Consolas" | ||
1313 | configuration "AutoFlippingLabel" | ||
1314 | model "six_pos" | ||
1315 | position "thead" | ||
1316 | ] | ||
1317 | ] | ||
1318 | edge | ||
1319 | [ | ||
1320 | source 12 | ||
1321 | target 2 | ||
1322 | graphics | ||
1323 | [ | ||
1324 | fill "#000000" | ||
1325 | targetArrow "standard" | ||
1326 | ] | ||
1327 | LabelGraphics | ||
1328 | [ | ||
1329 | text "volatile attribute EStructuralFeature" | ||
1330 | fontSize 14 | ||
1331 | fontName "Consolas" | ||
1332 | configuration "AutoFlippingLabel" | ||
1333 | model "six_pos" | ||
1334 | position "thead" | ||
1335 | ] | ||
1336 | ] | ||
1337 | edge | ||
1338 | [ | ||
1339 | source 12 | ||
1340 | target 1 | ||
1341 | graphics | ||
1342 | [ | ||
1343 | fill "#000000" | ||
1344 | targetArrow "standard" | ||
1345 | ] | ||
1346 | LabelGraphics | ||
1347 | [ | ||
1348 | text "transient attribute EStructuralFeature" | ||
1349 | fontSize 14 | ||
1350 | fontName "Consolas" | ||
1351 | configuration "AutoFlippingLabel" | ||
1352 | model "six_pos" | ||
1353 | position "thead" | ||
1354 | ] | ||
1355 | ] | ||
1356 | edge | ||
1357 | [ | ||
1358 | source 12 | ||
1359 | target 7 | ||
1360 | graphics | ||
1361 | [ | ||
1362 | fill "#000000" | ||
1363 | targetArrow "standard" | ||
1364 | ] | ||
1365 | LabelGraphics | ||
1366 | [ | ||
1367 | text "defaultValueLiteral attribute EStructuralFeature" | ||
1368 | fontSize 14 | ||
1369 | fontName "Consolas" | ||
1370 | configuration "AutoFlippingLabel" | ||
1371 | model "six_pos" | ||
1372 | position "thead" | ||
1373 | ] | ||
1374 | ] | ||
1375 | edge | ||
1376 | [ | ||
1377 | source 12 | ||
1378 | target 2 | ||
1379 | graphics | ||
1380 | [ | ||
1381 | fill "#000000" | ||
1382 | targetArrow "standard" | ||
1383 | ] | ||
1384 | LabelGraphics | ||
1385 | [ | ||
1386 | text "unsettable attribute EStructuralFeature" | ||
1387 | fontSize 14 | ||
1388 | fontName "Consolas" | ||
1389 | configuration "AutoFlippingLabel" | ||
1390 | model "six_pos" | ||
1391 | position "thead" | ||
1392 | ] | ||
1393 | ] | ||
1394 | edge | ||
1395 | [ | ||
1396 | source 12 | ||
1397 | target 1 | ||
1398 | graphics | ||
1399 | [ | ||
1400 | fill "#000000" | ||
1401 | targetArrow "standard" | ||
1402 | ] | ||
1403 | LabelGraphics | ||
1404 | [ | ||
1405 | text "derived attribute EStructuralFeature" | ||
1406 | fontSize 14 | ||
1407 | fontName "Consolas" | ||
1408 | configuration "AutoFlippingLabel" | ||
1409 | model "six_pos" | ||
1410 | position "thead" | ||
1411 | ] | ||
1412 | ] | ||
1413 | edge | ||
1414 | [ | ||
1415 | source 12 | ||
1416 | target 1 | ||
1417 | graphics | ||
1418 | [ | ||
1419 | fill "#000000" | ||
1420 | targetArrow "standard" | ||
1421 | ] | ||
1422 | LabelGraphics | ||
1423 | [ | ||
1424 | text "ordered attribute ETypedElement" | ||
1425 | fontSize 14 | ||
1426 | fontName "Consolas" | ||
1427 | configuration "AutoFlippingLabel" | ||
1428 | model "six_pos" | ||
1429 | position "thead" | ||
1430 | ] | ||
1431 | ] | ||
1432 | edge | ||
1433 | [ | ||
1434 | source 12 | ||
1435 | target 1 | ||
1436 | graphics | ||
1437 | [ | ||
1438 | fill "#000000" | ||
1439 | targetArrow "standard" | ||
1440 | ] | ||
1441 | LabelGraphics | ||
1442 | [ | ||
1443 | text "unique attribute ETypedElement" | ||
1444 | fontSize 14 | ||
1445 | fontName "Consolas" | ||
1446 | configuration "AutoFlippingLabel" | ||
1447 | model "six_pos" | ||
1448 | position "thead" | ||
1449 | ] | ||
1450 | ] | ||
1451 | edge | ||
1452 | [ | ||
1453 | source 12 | ||
1454 | target 4 | ||
1455 | graphics | ||
1456 | [ | ||
1457 | fill "#000000" | ||
1458 | targetArrow "standard" | ||
1459 | ] | ||
1460 | LabelGraphics | ||
1461 | [ | ||
1462 | text "lowerBound attribute ETypedElement" | ||
1463 | fontSize 14 | ||
1464 | fontName "Consolas" | ||
1465 | configuration "AutoFlippingLabel" | ||
1466 | model "six_pos" | ||
1467 | position "thead" | ||
1468 | ] | ||
1469 | ] | ||
1470 | edge | ||
1471 | [ | ||
1472 | source 12 | ||
1473 | target 5 | ||
1474 | graphics | ||
1475 | [ | ||
1476 | fill "#000000" | ||
1477 | targetArrow "standard" | ||
1478 | ] | ||
1479 | LabelGraphics | ||
1480 | [ | ||
1481 | text "upperBound attribute ETypedElement" | ||
1482 | fontSize 14 | ||
1483 | fontName "Consolas" | ||
1484 | configuration "AutoFlippingLabel" | ||
1485 | model "six_pos" | ||
1486 | position "thead" | ||
1487 | ] | ||
1488 | ] | ||
1489 | edge | ||
1490 | [ | ||
1491 | source 12 | ||
1492 | target 1 | ||
1493 | graphics | ||
1494 | [ | ||
1495 | fill "#000000" | ||
1496 | targetArrow "standard" | ||
1497 | ] | ||
1498 | LabelGraphics | ||
1499 | [ | ||
1500 | text "many attribute ETypedElement" | ||
1501 | fontSize 14 | ||
1502 | fontName "Consolas" | ||
1503 | configuration "AutoFlippingLabel" | ||
1504 | model "six_pos" | ||
1505 | position "thead" | ||
1506 | ] | ||
1507 | ] | ||
1508 | edge | ||
1509 | [ | ||
1510 | source 12 | ||
1511 | target 2 | ||
1512 | graphics | ||
1513 | [ | ||
1514 | fill "#000000" | ||
1515 | targetArrow "standard" | ||
1516 | ] | ||
1517 | LabelGraphics | ||
1518 | [ | ||
1519 | text "required attribute ETypedElement" | ||
1520 | fontSize 14 | ||
1521 | fontName "Consolas" | ||
1522 | configuration "AutoFlippingLabel" | ||
1523 | model "six_pos" | ||
1524 | position "thead" | ||
1525 | ] | ||
1526 | ] | ||
1527 | ] | ||
1528 | graph | ||
1529 | [ | ||
1530 | node | ||
1531 | [ | ||
1532 | id 0 | ||
1533 | graphics | ||
1534 | [ | ||
1535 | w 254.10000000000002 | ||
1536 | h 110 | ||
1537 | type "rectangle" | ||
1538 | fill "#FFFFFF" | ||
1539 | fill2 "#FFFFFF" | ||
1540 | outline "#000000" | ||
1541 | ] | ||
1542 | LabelGraphics | ||
1543 | [ | ||
1544 | text "o 1" | ||
1545 | outline "#000000" | ||
1546 | fill "#FFFFFF" | ||
1547 | fontSize 16 | ||
1548 | fontName "Monospace" | ||
1549 | autoSizePolicy "node_width" | ||
1550 | anchor "t" | ||
1551 | borderDistance 0.0 | ||
1552 | ] | ||
1553 | LabelGraphics | ||
1554 | [ | ||
1555 | text " | ||
1556 | EModelElement class DefinedPart | ||
1557 | ENamedElement class DefinedPart | ||
1558 | EPackage class DefinedPart | ||
1559 | EModelElement class | ||
1560 | ENamedElement class | ||
1561 | EPackage class | ||
1562 | " | ||
1563 | fontSize 14 | ||
1564 | fontName "Consolas" | ||
1565 | alignment "left" | ||
1566 | anchor "tl" | ||
1567 | borderDistance 6 | ||
1568 | ] | ||
1569 | ] | ||
1570 | |||
1571 | node | ||
1572 | [ | ||
1573 | id 1 | ||
1574 | graphics | ||
1575 | [ | ||
1576 | w 41.800000000000004 | ||
1577 | h 26 | ||
1578 | type "rectangle" | ||
1579 | fill "#FFFFFF" | ||
1580 | fill2 "#FFFFFF" | ||
1581 | outline "#000000" | ||
1582 | ] | ||
1583 | LabelGraphics | ||
1584 | [ | ||
1585 | text "true" | ||
1586 | outline "#000000" | ||
1587 | fill "#FFFFFF" | ||
1588 | fontSize 16 | ||
1589 | fontName "Monospace" | ||
1590 | autoSizePolicy "node_width" | ||
1591 | anchor "t" | ||
1592 | borderDistance 0.0 | ||
1593 | ] | ||
1594 | LabelGraphics | ||
1595 | [ | ||
1596 | text " | ||
1597 | " | ||
1598 | fontSize 14 | ||
1599 | fontName "Consolas" | ||
1600 | alignment "left" | ||
1601 | anchor "tl" | ||
1602 | borderDistance 6 | ||
1603 | ] | ||
1604 | ] | ||
1605 | |||
1606 | node | ||
1607 | [ | ||
1608 | id 2 | ||
1609 | graphics | ||
1610 | [ | ||
1611 | w 50.6 | ||
1612 | h 26 | ||
1613 | type "rectangle" | ||
1614 | fill "#FFFFFF" | ||
1615 | fill2 "#FFFFFF" | ||
1616 | outline "#000000" | ||
1617 | ] | ||
1618 | LabelGraphics | ||
1619 | [ | ||
1620 | text "false" | ||
1621 | outline "#000000" | ||
1622 | fill "#FFFFFF" | ||
1623 | fontSize 16 | ||
1624 | fontName "Monospace" | ||
1625 | autoSizePolicy "node_width" | ||
1626 | anchor "t" | ||
1627 | borderDistance 0.0 | ||
1628 | ] | ||
1629 | LabelGraphics | ||
1630 | [ | ||
1631 | text " | ||
1632 | " | ||
1633 | fontSize 14 | ||
1634 | fontName "Consolas" | ||
1635 | alignment "left" | ||
1636 | anchor "tl" | ||
1637 | borderDistance 6 | ||
1638 | ] | ||
1639 | ] | ||
1640 | |||
1641 | node | ||
1642 | [ | ||
1643 | id 3 | ||
1644 | graphics | ||
1645 | [ | ||
1646 | w 24.200000000000003 | ||
1647 | h 26 | ||
1648 | type "rectangle" | ||
1649 | fill "#FFFFFF" | ||
1650 | fill2 "#FFFFFF" | ||
1651 | outline "#000000" | ||
1652 | ] | ||
1653 | LabelGraphics | ||
1654 | [ | ||
1655 | text "-1" | ||
1656 | outline "#000000" | ||
1657 | fill "#FFFFFF" | ||
1658 | fontSize 16 | ||
1659 | fontName "Monospace" | ||
1660 | autoSizePolicy "node_width" | ||
1661 | anchor "t" | ||
1662 | borderDistance 0.0 | ||
1663 | ] | ||
1664 | LabelGraphics | ||
1665 | [ | ||
1666 | text " | ||
1667 | " | ||
1668 | fontSize 14 | ||
1669 | fontName "Consolas" | ||
1670 | alignment "left" | ||
1671 | anchor "tl" | ||
1672 | borderDistance 6 | ||
1673 | ] | ||
1674 | ] | ||
1675 | |||
1676 | node | ||
1677 | [ | ||
1678 | id 4 | ||
1679 | graphics | ||
1680 | [ | ||
1681 | w 15.400000000000002 | ||
1682 | h 26 | ||
1683 | type "rectangle" | ||
1684 | fill "#FFFFFF" | ||
1685 | fill2 "#FFFFFF" | ||
1686 | outline "#000000" | ||
1687 | ] | ||
1688 | LabelGraphics | ||
1689 | [ | ||
1690 | text "0" | ||
1691 | outline "#000000" | ||
1692 | fill "#FFFFFF" | ||
1693 | fontSize 16 | ||
1694 | fontName "Monospace" | ||
1695 | autoSizePolicy "node_width" | ||
1696 | anchor "t" | ||
1697 | borderDistance 0.0 | ||
1698 | ] | ||
1699 | LabelGraphics | ||
1700 | [ | ||
1701 | text " | ||
1702 | " | ||
1703 | fontSize 14 | ||
1704 | fontName "Consolas" | ||
1705 | alignment "left" | ||
1706 | anchor "tl" | ||
1707 | borderDistance 6 | ||
1708 | ] | ||
1709 | ] | ||
1710 | |||
1711 | node | ||
1712 | [ | ||
1713 | id 5 | ||
1714 | graphics | ||
1715 | [ | ||
1716 | w 15.400000000000002 | ||
1717 | h 26 | ||
1718 | type "rectangle" | ||
1719 | fill "#FFFFFF" | ||
1720 | fill2 "#FFFFFF" | ||
1721 | outline "#000000" | ||
1722 | ] | ||
1723 | LabelGraphics | ||
1724 | [ | ||
1725 | text "1" | ||
1726 | outline "#000000" | ||
1727 | fill "#FFFFFF" | ||
1728 | fontSize 16 | ||
1729 | fontName "Monospace" | ||
1730 | autoSizePolicy "node_width" | ||
1731 | anchor "t" | ||
1732 | borderDistance 0.0 | ||
1733 | ] | ||
1734 | LabelGraphics | ||
1735 | [ | ||
1736 | text " | ||
1737 | " | ||
1738 | fontSize 14 | ||
1739 | fontName "Consolas" | ||
1740 | alignment "left" | ||
1741 | anchor "tl" | ||
1742 | borderDistance 6 | ||
1743 | ] | ||
1744 | ] | ||
1745 | |||
1746 | node | ||
1747 | [ | ||
1748 | id 6 | ||
1749 | graphics | ||
1750 | [ | ||
1751 | w 33.0 | ||
1752 | h 26 | ||
1753 | type "rectangle" | ||
1754 | fill "#FFFFFF" | ||
1755 | fill2 "#FFFFFF" | ||
1756 | outline "#000000" | ||
1757 | ] | ||
1758 | LabelGraphics | ||
1759 | [ | ||
1760 | text ""A"" | ||
1761 | outline "#000000" | ||
1762 | fill "#FFFFFF" | ||
1763 | fontSize 16 | ||
1764 | fontName "Monospace" | ||
1765 | autoSizePolicy "node_width" | ||
1766 | anchor "t" | ||
1767 | borderDistance 0.0 | ||
1768 | ] | ||
1769 | LabelGraphics | ||
1770 | [ | ||
1771 | text " | ||
1772 | " | ||
1773 | fontSize 14 | ||
1774 | fontName "Consolas" | ||
1775 | alignment "left" | ||
1776 | anchor "tl" | ||
1777 | borderDistance 6 | ||
1778 | ] | ||
1779 | ] | ||
1780 | |||
1781 | node | ||
1782 | [ | ||
1783 | id 7 | ||
1784 | graphics | ||
1785 | [ | ||
1786 | w 33.0 | ||
1787 | h 26 | ||
1788 | type "rectangle" | ||
1789 | fill "#FFFFFF" | ||
1790 | fill2 "#FFFFFF" | ||
1791 | outline "#000000" | ||
1792 | ] | ||
1793 | LabelGraphics | ||
1794 | [ | ||
1795 | text ""B"" | ||
1796 | outline "#000000" | ||
1797 | fill "#FFFFFF" | ||
1798 | fontSize 16 | ||
1799 | fontName "Monospace" | ||
1800 | autoSizePolicy "node_width" | ||
1801 | anchor "t" | ||
1802 | borderDistance 0.0 | ||
1803 | ] | ||
1804 | LabelGraphics | ||
1805 | [ | ||
1806 | text " | ||
1807 | " | ||
1808 | fontSize 14 | ||
1809 | fontName "Consolas" | ||
1810 | alignment "left" | ||
1811 | anchor "tl" | ||
1812 | borderDistance 6 | ||
1813 | ] | ||
1814 | ] | ||
1815 | |||
1816 | node | ||
1817 | [ | ||
1818 | id 8 | ||
1819 | graphics | ||
1820 | [ | ||
1821 | w 94.60000000000001 | ||
1822 | h 26 | ||
1823 | type "rectangle" | ||
1824 | fill "#FFFFFF" | ||
1825 | fill2 "#FFFFFF" | ||
1826 | outline "#000000" | ||
1827 | ] | ||
1828 | LabelGraphics | ||
1829 | [ | ||
1830 | text ""nsPrefix"" | ||
1831 | outline "#000000" | ||
1832 | fill "#FFFFFF" | ||
1833 | fontSize 16 | ||
1834 | fontName "Monospace" | ||
1835 | autoSizePolicy "node_width" | ||
1836 | anchor "t" | ||
1837 | borderDistance 0.0 | ||
1838 | ] | ||
1839 | LabelGraphics | ||
1840 | [ | ||
1841 | text " | ||
1842 | " | ||
1843 | fontSize 14 | ||
1844 | fontName "Consolas" | ||
1845 | alignment "left" | ||
1846 | anchor "tl" | ||
1847 | borderDistance 6 | ||
1848 | ] | ||
1849 | ] | ||
1850 | |||
1851 | node | ||
1852 | [ | ||
1853 | id 9 | ||
1854 | graphics | ||
1855 | [ | ||
1856 | w 68.2 | ||
1857 | h 26 | ||
1858 | type "rectangle" | ||
1859 | fill "#FFFFFF" | ||
1860 | fill2 "#FFFFFF" | ||
1861 | outline "#000000" | ||
1862 | ] | ||
1863 | LabelGraphics | ||
1864 | [ | ||
1865 | text ""nsUri"" | ||
1866 | outline "#000000" | ||
1867 | fill "#FFFFFF" | ||
1868 | fontSize 16 | ||
1869 | fontName "Monospace" | ||
1870 | autoSizePolicy "node_width" | ||
1871 | anchor "t" | ||
1872 | borderDistance 0.0 | ||
1873 | ] | ||
1874 | LabelGraphics | ||
1875 | [ | ||
1876 | text " | ||
1877 | " | ||
1878 | fontSize 14 | ||
1879 | fontName "Consolas" | ||
1880 | alignment "left" | ||
1881 | anchor "tl" | ||
1882 | borderDistance 6 | ||
1883 | ] | ||
1884 | ] | ||
1885 | |||
1886 | node | ||
1887 | [ | ||
1888 | id 10 | ||
1889 | graphics | ||
1890 | [ | ||
1891 | w 121.00000000000001 | ||
1892 | h 26 | ||
1893 | type "rectangle" | ||
1894 | fill "#FFFFFF" | ||
1895 | fill2 "#FFFFFF" | ||
1896 | outline "#000000" | ||
1897 | ] | ||
1898 | LabelGraphics | ||
1899 | [ | ||
1900 | text ""packageName"" | ||
1901 | outline "#000000" | ||
1902 | fill "#FFFFFF" | ||
1903 | fontSize 16 | ||
1904 | fontName "Monospace" | ||
1905 | autoSizePolicy "node_width" | ||
1906 | anchor "t" | ||
1907 | borderDistance 0.0 | ||
1908 | ] | ||
1909 | LabelGraphics | ||
1910 | [ | ||
1911 | text " | ||
1912 | " | ||
1913 | fontSize 14 | ||
1914 | fontName "Consolas" | ||
1915 | alignment "left" | ||
1916 | anchor "tl" | ||
1917 | borderDistance 6 | ||
1918 | ] | ||
1919 | ] | ||
1920 | |||
1921 | node | ||
1922 | [ | ||
1923 | id 11 | ||
1924 | graphics | ||
1925 | [ | ||
1926 | w 269.5 | ||
1927 | h 124 | ||
1928 | type "rectangle" | ||
1929 | fill "#FFFFFF" | ||
1930 | fill2 "#FFFFFF" | ||
1931 | outline "#000000" | ||
1932 | ] | ||
1933 | LabelGraphics | ||
1934 | [ | ||
1935 | text "null" | ||
1936 | outline "#000000" | ||
1937 | fill "#FFFFFF" | ||
1938 | fontSize 16 | ||
1939 | fontName "Monospace" | ||
1940 | autoSizePolicy "node_width" | ||
1941 | anchor "t" | ||
1942 | borderDistance 0.0 | ||
1943 | ] | ||
1944 | LabelGraphics | ||
1945 | [ | ||
1946 | text " | ||
1947 | EClassifier class | ||
1948 | EDataType class | ||
1949 | EEnum class | ||
1950 | EModelElement class | ||
1951 | ENamedElement class | ||
1952 | EModelElement class UndefinedPart | ||
1953 | ENamedElement class UndefinedPart | ||
1954 | " | ||
1955 | fontSize 14 | ||
1956 | fontName "Consolas" | ||
1957 | alignment "left" | ||
1958 | anchor "tl" | ||
1959 | borderDistance 6 | ||
1960 | ] | ||
1961 | ] | ||
1962 | |||
1963 | node | ||
1964 | [ | ||
1965 | id 12 | ||
1966 | graphics | ||
1967 | [ | ||
1968 | w 269.5 | ||
1969 | h 110 | ||
1970 | type "rectangle" | ||
1971 | fill "#FFFFFF" | ||
1972 | fill2 "#FFFFFF" | ||
1973 | outline "#000000" | ||
1974 | ] | ||
1975 | LabelGraphics | ||
1976 | [ | ||
1977 | text "null" | ||
1978 | outline "#000000" | ||
1979 | fill "#FFFFFF" | ||
1980 | fontSize 16 | ||
1981 | fontName "Monospace" | ||
1982 | autoSizePolicy "node_width" | ||
1983 | anchor "t" | ||
1984 | borderDistance 0.0 | ||
1985 | ] | ||
1986 | LabelGraphics | ||
1987 | [ | ||
1988 | text " | ||
1989 | EClassifier class | ||
1990 | EDataType class | ||
1991 | EModelElement class | ||
1992 | ENamedElement class | ||
1993 | EModelElement class UndefinedPart | ||
1994 | ENamedElement class UndefinedPart | ||
1995 | " | ||
1996 | fontSize 14 | ||
1997 | fontName "Consolas" | ||
1998 | alignment "left" | ||
1999 | anchor "tl" | ||
2000 | borderDistance 6 | ||
2001 | ] | ||
2002 | ] | ||
2003 | |||
2004 | node | ||
2005 | [ | ||
2006 | id 13 | ||
2007 | graphics | ||
2008 | [ | ||
2009 | w 269.5 | ||
2010 | h 68 | ||
2011 | type "rectangle" | ||
2012 | fill "#FFFFFF" | ||
2013 | fill2 "#FFFFFF" | ||
2014 | outline "#000000" | ||
2015 | ] | ||
2016 | LabelGraphics | ||
2017 | [ | ||
2018 | text "null" | ||
2019 | outline "#000000" | ||
2020 | fill "#FFFFFF" | ||
2021 | fontSize 16 | ||
2022 | fontName "Monospace" | ||
2023 | autoSizePolicy "node_width" | ||
2024 | anchor "t" | ||
2025 | borderDistance 0.0 | ||
2026 | ] | ||
2027 | LabelGraphics | ||
2028 | [ | ||
2029 | text " | ||
2030 | EAnnotation class | ||
2031 | EModelElement class | ||
2032 | EModelElement class UndefinedPart | ||
2033 | " | ||
2034 | fontSize 14 | ||
2035 | fontName "Consolas" | ||
2036 | alignment "left" | ||
2037 | anchor "tl" | ||
2038 | borderDistance 6 | ||
2039 | ] | ||
2040 | ] | ||
2041 | |||
2042 | node | ||
2043 | [ | ||
2044 | id 14 | ||
2045 | graphics | ||
2046 | [ | ||
2047 | w 269.5 | ||
2048 | h 124 | ||
2049 | type "rectangle" | ||
2050 | fill "#FFFFFF" | ||
2051 | fill2 "#FFFFFF" | ||
2052 | outline "#000000" | ||
2053 | ] | ||
2054 | LabelGraphics | ||
2055 | [ | ||
2056 | text "null" | ||
2057 | outline "#000000" | ||
2058 | fill "#FFFFFF" | ||
2059 | fontSize 16 | ||
2060 | fontName "Monospace" | ||
2061 | autoSizePolicy "node_width" | ||
2062 | anchor "t" | ||
2063 | borderDistance 0.0 | ||
2064 | ] | ||
2065 | LabelGraphics | ||
2066 | [ | ||
2067 | text " | ||
2068 | EClassifier class | ||
2069 | EDataType class | ||
2070 | EEnum class | ||
2071 | EModelElement class | ||
2072 | ENamedElement class | ||
2073 | EModelElement class UndefinedPart | ||
2074 | ENamedElement class UndefinedPart | ||
2075 | " | ||
2076 | fontSize 14 | ||
2077 | fontName "Consolas" | ||
2078 | alignment "left" | ||
2079 | anchor "tl" | ||
2080 | borderDistance 6 | ||
2081 | ] | ||
2082 | ] | ||
2083 | |||
2084 | node | ||
2085 | [ | ||
2086 | id 15 | ||
2087 | graphics | ||
2088 | [ | ||
2089 | w 269.5 | ||
2090 | h 96 | ||
2091 | type "rectangle" | ||
2092 | fill "#FFFFFF" | ||
2093 | fill2 "#FFFFFF" | ||
2094 | outline "#000000" | ||
2095 | ] | ||
2096 | LabelGraphics | ||
2097 | [ | ||
2098 | text "null" | ||
2099 | outline "#000000" | ||
2100 | fill "#FFFFFF" | ||
2101 | fontSize 16 | ||
2102 | fontName "Monospace" | ||
2103 | autoSizePolicy "node_width" | ||
2104 | anchor "t" | ||
2105 | borderDistance 0.0 | ||
2106 | ] | ||
2107 | LabelGraphics | ||
2108 | [ | ||
2109 | text " | ||
2110 | EEnumLiteral class | ||
2111 | EModelElement class | ||
2112 | ENamedElement class | ||
2113 | EModelElement class UndefinedPart | ||
2114 | ENamedElement class UndefinedPart | ||
2115 | " | ||
2116 | fontSize 14 | ||
2117 | fontName "Consolas" | ||
2118 | alignment "left" | ||
2119 | anchor "tl" | ||
2120 | borderDistance 6 | ||
2121 | ] | ||
2122 | ] | ||
2123 | |||
2124 | node | ||
2125 | [ | ||
2126 | id 16 | ||
2127 | graphics | ||
2128 | [ | ||
2129 | w 112.2 | ||
2130 | h 26 | ||
2131 | type "rectangle" | ||
2132 | fill "#FFFFFF" | ||
2133 | fill2 "#FFFFFF" | ||
2134 | outline "#000000" | ||
2135 | ] | ||
2136 | LabelGraphics | ||
2137 | [ | ||
2138 | text "New Integers" | ||
2139 | outline "#000000" | ||
2140 | fill "#FFFFFF" | ||
2141 | fontSize 16 | ||
2142 | fontName "Monospace" | ||
2143 | autoSizePolicy "node_width" | ||
2144 | anchor "t" | ||
2145 | borderDistance 0.0 | ||
2146 | ] | ||
2147 | LabelGraphics | ||
2148 | [ | ||
2149 | text " | ||
2150 | " | ||
2151 | fontSize 14 | ||
2152 | fontName "Consolas" | ||
2153 | alignment "left" | ||
2154 | anchor "tl" | ||
2155 | borderDistance 6 | ||
2156 | ] | ||
2157 | ] | ||
2158 | |||
2159 | node | ||
2160 | [ | ||
2161 | id 17 | ||
2162 | graphics | ||
2163 | [ | ||
2164 | w 85.80000000000001 | ||
2165 | h 26 | ||
2166 | type "rectangle" | ||
2167 | fill "#FFFFFF" | ||
2168 | fill2 "#FFFFFF" | ||
2169 | outline "#000000" | ||
2170 | ] | ||
2171 | LabelGraphics | ||
2172 | [ | ||
2173 | text "New Reals" | ||
2174 | outline "#000000" | ||
2175 | fill "#FFFFFF" | ||
2176 | fontSize 16 | ||
2177 | fontName "Monospace" | ||
2178 | autoSizePolicy "node_width" | ||
2179 | anchor "t" | ||
2180 | borderDistance 0.0 | ||
2181 | ] | ||
2182 | LabelGraphics | ||
2183 | [ | ||
2184 | text " | ||
2185 | " | ||
2186 | fontSize 14 | ||
2187 | fontName "Consolas" | ||
2188 | alignment "left" | ||
2189 | anchor "tl" | ||
2190 | borderDistance 6 | ||
2191 | ] | ||
2192 | ] | ||
2193 | |||
2194 | node | ||
2195 | [ | ||
2196 | id 18 | ||
2197 | graphics | ||
2198 | [ | ||
2199 | w 103.4 | ||
2200 | h 26 | ||
2201 | type "rectangle" | ||
2202 | fill "#FFFFFF" | ||
2203 | fill2 "#FFFFFF" | ||
2204 | outline "#000000" | ||
2205 | ] | ||
2206 | LabelGraphics | ||
2207 | [ | ||
2208 | text "New Strings" | ||
2209 | outline "#000000" | ||
2210 | fill "#FFFFFF" | ||
2211 | fontSize 16 | ||
2212 | fontName "Monospace" | ||
2213 | autoSizePolicy "node_width" | ||
2214 | anchor "t" | ||
2215 | borderDistance 0.0 | ||
2216 | ] | ||
2217 | LabelGraphics | ||
2218 | [ | ||
2219 | text " | ||
2220 | " | ||
2221 | fontSize 14 | ||
2222 | fontName "Consolas" | ||
2223 | alignment "left" | ||
2224 | anchor "tl" | ||
2225 | borderDistance 6 | ||
2226 | ] | ||
2227 | ] | ||
2228 | |||
2229 | node | ||
2230 | [ | ||
2231 | id 19 | ||
2232 | graphics | ||
2233 | [ | ||
2234 | w 103.4 | ||
2235 | h 26 | ||
2236 | type "rectangle" | ||
2237 | fill "#FFFFFF" | ||
2238 | fill2 "#FFFFFF" | ||
2239 | outline "#000000" | ||
2240 | ] | ||
2241 | LabelGraphics | ||
2242 | [ | ||
2243 | text "New Objects" | ||
2244 | outline "#000000" | ||
2245 | fill "#FFFFFF" | ||
2246 | fontSize 16 | ||
2247 | fontName "Monospace" | ||
2248 | autoSizePolicy "node_width" | ||
2249 | anchor "t" | ||
2250 | borderDistance 0.0 | ||
2251 | ] | ||
2252 | LabelGraphics | ||
2253 | [ | ||
2254 | text " | ||
2255 | " | ||
2256 | fontSize 14 | ||
2257 | fontName "Consolas" | ||
2258 | alignment "left" | ||
2259 | anchor "tl" | ||
2260 | borderDistance 6 | ||
2261 | ] | ||
2262 | ] | ||
2263 | edge | ||
2264 | [ | ||
2265 | source 13 | ||
2266 | target 0 | ||
2267 | graphics | ||
2268 | [ | ||
2269 | fill "#000000" | ||
2270 | targetArrow "standard" | ||
2271 | ] | ||
2272 | LabelGraphics | ||
2273 | [ | ||
2274 | text "eModelElement reference EAnnotation" | ||
2275 | fontSize 14 | ||
2276 | fontName "Consolas" | ||
2277 | configuration "AutoFlippingLabel" | ||
2278 | model "six_pos" | ||
2279 | position "thead" | ||
2280 | ] | ||
2281 | ] | ||
2282 | edge | ||
2283 | [ | ||
2284 | source 11 | ||
2285 | target 0 | ||
2286 | graphics | ||
2287 | [ | ||
2288 | fill "#000000" | ||
2289 | targetArrow "standard" | ||
2290 | ] | ||
2291 | LabelGraphics | ||
2292 | [ | ||
2293 | text "ePackage reference EClassifier" | ||
2294 | fontSize 14 | ||
2295 | fontName "Consolas" | ||
2296 | configuration "AutoFlippingLabel" | ||
2297 | model "six_pos" | ||
2298 | position "thead" | ||
2299 | ] | ||
2300 | ] | ||
2301 | edge | ||
2302 | [ | ||
2303 | source 12 | ||
2304 | target 0 | ||
2305 | graphics | ||
2306 | [ | ||
2307 | fill "#000000" | ||
2308 | targetArrow "standard" | ||
2309 | ] | ||
2310 | LabelGraphics | ||
2311 | [ | ||
2312 | text "ePackage reference EClassifier" | ||
2313 | fontSize 14 | ||
2314 | fontName "Consolas" | ||
2315 | configuration "AutoFlippingLabel" | ||
2316 | model "six_pos" | ||
2317 | position "thead" | ||
2318 | ] | ||
2319 | ] | ||
2320 | edge | ||
2321 | [ | ||
2322 | source 14 | ||
2323 | target 0 | ||
2324 | graphics | ||
2325 | [ | ||
2326 | fill "#000000" | ||
2327 | targetArrow "standard" | ||
2328 | ] | ||
2329 | LabelGraphics | ||
2330 | [ | ||
2331 | text "ePackage reference EClassifier" | ||
2332 | fontSize 14 | ||
2333 | fontName "Consolas" | ||
2334 | configuration "AutoFlippingLabel" | ||
2335 | model "six_pos" | ||
2336 | position "thead" | ||
2337 | ] | ||
2338 | ] | ||
2339 | edge | ||
2340 | [ | ||
2341 | source 14 | ||
2342 | target 15 | ||
2343 | graphics | ||
2344 | [ | ||
2345 | fill "#000000" | ||
2346 | width 3 | ||
2347 | targetArrow "standard" | ||
2348 | ] | ||
2349 | LabelGraphics | ||
2350 | [ | ||
2351 | text "eLiterals reference EEnum" | ||
2352 | fontSize 14 | ||
2353 | fontName "Consolas" | ||
2354 | configuration "AutoFlippingLabel" | ||
2355 | model "six_pos" | ||
2356 | position "thead" | ||
2357 | ] | ||
2358 | ] | ||
2359 | edge | ||
2360 | [ | ||
2361 | source 15 | ||
2362 | target 14 | ||
2363 | graphics | ||
2364 | [ | ||
2365 | fill "#000000" | ||
2366 | targetArrow "standard" | ||
2367 | ] | ||
2368 | LabelGraphics | ||
2369 | [ | ||
2370 | text "eEnum reference EEnumLiteral" | ||
2371 | fontSize 14 | ||
2372 | fontName "Consolas" | ||
2373 | configuration "AutoFlippingLabel" | ||
2374 | model "six_pos" | ||
2375 | position "thead" | ||
2376 | ] | ||
2377 | ] | ||
2378 | edge | ||
2379 | [ | ||
2380 | source 0 | ||
2381 | target 13 | ||
2382 | graphics | ||
2383 | [ | ||
2384 | fill "#000000" | ||
2385 | width 3 | ||
2386 | targetArrow "standard" | ||
2387 | ] | ||
2388 | LabelGraphics | ||
2389 | [ | ||
2390 | text "eAnnotations reference EModelElement" | ||
2391 | fontSize 14 | ||
2392 | fontName "Consolas" | ||
2393 | configuration "AutoFlippingLabel" | ||
2394 | model "six_pos" | ||
2395 | position "thead" | ||
2396 | ] | ||
2397 | ] | ||
2398 | edge | ||
2399 | [ | ||
2400 | source 0 | ||
2401 | target 11 | ||
2402 | graphics | ||
2403 | [ | ||
2404 | fill "#000000" | ||
2405 | width 3 | ||
2406 | targetArrow "standard" | ||
2407 | ] | ||
2408 | LabelGraphics | ||
2409 | [ | ||
2410 | text "eClassifiers reference EPackage" | ||
2411 | fontSize 14 | ||
2412 | fontName "Consolas" | ||
2413 | configuration "AutoFlippingLabel" | ||
2414 | model "six_pos" | ||
2415 | position "thead" | ||
2416 | ] | ||
2417 | ] | ||
2418 | edge | ||
2419 | [ | ||
2420 | source 0 | ||
2421 | target 12 | ||
2422 | graphics | ||
2423 | [ | ||
2424 | fill "#000000" | ||
2425 | width 3 | ||
2426 | targetArrow "standard" | ||
2427 | ] | ||
2428 | LabelGraphics | ||
2429 | [ | ||
2430 | text "eClassifiers reference EPackage" | ||
2431 | fontSize 14 | ||
2432 | fontName "Consolas" | ||
2433 | configuration "AutoFlippingLabel" | ||
2434 | model "six_pos" | ||
2435 | position "thead" | ||
2436 | ] | ||
2437 | ] | ||
2438 | edge | ||
2439 | [ | ||
2440 | source 0 | ||
2441 | target 14 | ||
2442 | graphics | ||
2443 | [ | ||
2444 | fill "#000000" | ||
2445 | width 3 | ||
2446 | targetArrow "standard" | ||
2447 | ] | ||
2448 | LabelGraphics | ||
2449 | [ | ||
2450 | text "eClassifiers reference EPackage" | ||
2451 | fontSize 14 | ||
2452 | fontName "Consolas" | ||
2453 | configuration "AutoFlippingLabel" | ||
2454 | model "six_pos" | ||
2455 | position "thead" | ||
2456 | ] | ||
2457 | ] | ||
2458 | edge | ||
2459 | [ | ||
2460 | source 13 | ||
2461 | target 9 | ||
2462 | graphics | ||
2463 | [ | ||
2464 | fill "#000000" | ||
2465 | targetArrow "standard" | ||
2466 | ] | ||
2467 | LabelGraphics | ||
2468 | [ | ||
2469 | text "source attribute EAnnotation" | ||
2470 | fontSize 14 | ||
2471 | fontName "Consolas" | ||
2472 | configuration "AutoFlippingLabel" | ||
2473 | model "six_pos" | ||
2474 | position "thead" | ||
2475 | ] | ||
2476 | ] | ||
2477 | edge | ||
2478 | [ | ||
2479 | source 11 | ||
2480 | target 6 | ||
2481 | graphics | ||
2482 | [ | ||
2483 | fill "#000000" | ||
2484 | targetArrow "standard" | ||
2485 | ] | ||
2486 | LabelGraphics | ||
2487 | [ | ||
2488 | text "instanceClassName attribute EClassifier" | ||
2489 | fontSize 14 | ||
2490 | fontName "Consolas" | ||
2491 | configuration "AutoFlippingLabel" | ||
2492 | model "six_pos" | ||
2493 | position "thead" | ||
2494 | ] | ||
2495 | ] | ||
2496 | edge | ||
2497 | [ | ||
2498 | source 12 | ||
2499 | target 10 | ||
2500 | graphics | ||
2501 | [ | ||
2502 | fill "#000000" | ||
2503 | targetArrow "standard" | ||
2504 | ] | ||
2505 | LabelGraphics | ||
2506 | [ | ||
2507 | text "instanceTypeName attribute EClassifier" | ||
2508 | fontSize 14 | ||
2509 | fontName "Consolas" | ||
2510 | configuration "AutoFlippingLabel" | ||
2511 | model "six_pos" | ||
2512 | position "thead" | ||
2513 | ] | ||
2514 | ] | ||
2515 | edge | ||
2516 | [ | ||
2517 | source 14 | ||
2518 | target 8 | ||
2519 | graphics | ||
2520 | [ | ||
2521 | fill "#000000" | ||
2522 | targetArrow "standard" | ||
2523 | ] | ||
2524 | LabelGraphics | ||
2525 | [ | ||
2526 | text "instanceTypeName attribute EClassifier" | ||
2527 | fontSize 14 | ||
2528 | fontName "Consolas" | ||
2529 | configuration "AutoFlippingLabel" | ||
2530 | model "six_pos" | ||
2531 | position "thead" | ||
2532 | ] | ||
2533 | ] | ||
2534 | edge | ||
2535 | [ | ||
2536 | source 12 | ||
2537 | target 2 | ||
2538 | graphics | ||
2539 | [ | ||
2540 | fill "#000000" | ||
2541 | targetArrow "standard" | ||
2542 | ] | ||
2543 | LabelGraphics | ||
2544 | [ | ||
2545 | text "serializable attribute EDataType" | ||
2546 | fontSize 14 | ||
2547 | fontName "Consolas" | ||
2548 | configuration "AutoFlippingLabel" | ||
2549 | model "six_pos" | ||
2550 | position "thead" | ||
2551 | ] | ||
2552 | ] | ||
2553 | edge | ||
2554 | [ | ||
2555 | source 14 | ||
2556 | target 2 | ||
2557 | graphics | ||
2558 | [ | ||
2559 | fill "#000000" | ||
2560 | targetArrow "standard" | ||
2561 | ] | ||
2562 | LabelGraphics | ||
2563 | [ | ||
2564 | text "serializable attribute EDataType" | ||
2565 | fontSize 14 | ||
2566 | fontName "Consolas" | ||
2567 | configuration "AutoFlippingLabel" | ||
2568 | model "six_pos" | ||
2569 | position "thead" | ||
2570 | ] | ||
2571 | ] | ||
2572 | edge | ||
2573 | [ | ||
2574 | source 15 | ||
2575 | target 8 | ||
2576 | graphics | ||
2577 | [ | ||
2578 | fill "#000000" | ||
2579 | targetArrow "standard" | ||
2580 | ] | ||
2581 | LabelGraphics | ||
2582 | [ | ||
2583 | text "literal attribute EEnumLiteral" | ||
2584 | fontSize 14 | ||
2585 | fontName "Consolas" | ||
2586 | configuration "AutoFlippingLabel" | ||
2587 | model "six_pos" | ||
2588 | position "thead" | ||
2589 | ] | ||
2590 | ] | ||
2591 | edge | ||
2592 | [ | ||
2593 | source 0 | ||
2594 | target 10 | ||
2595 | graphics | ||
2596 | [ | ||
2597 | fill "#000000" | ||
2598 | targetArrow "standard" | ||
2599 | ] | ||
2600 | LabelGraphics | ||
2601 | [ | ||
2602 | text "name attribute ENamedElement" | ||
2603 | fontSize 14 | ||
2604 | fontName "Consolas" | ||
2605 | configuration "AutoFlippingLabel" | ||
2606 | model "six_pos" | ||
2607 | position "thead" | ||
2608 | ] | ||
2609 | ] | ||
2610 | edge | ||
2611 | [ | ||
2612 | source 11 | ||
2613 | target 10 | ||
2614 | graphics | ||
2615 | [ | ||
2616 | fill "#000000" | ||
2617 | targetArrow "standard" | ||
2618 | ] | ||
2619 | LabelGraphics | ||
2620 | [ | ||
2621 | text "name attribute ENamedElement" | ||
2622 | fontSize 14 | ||
2623 | fontName "Consolas" | ||
2624 | configuration "AutoFlippingLabel" | ||
2625 | model "six_pos" | ||
2626 | position "thead" | ||
2627 | ] | ||
2628 | ] | ||
2629 | edge | ||
2630 | [ | ||
2631 | source 12 | ||
2632 | target 9 | ||
2633 | graphics | ||
2634 | [ | ||
2635 | fill "#000000" | ||
2636 | targetArrow "standard" | ||
2637 | ] | ||
2638 | LabelGraphics | ||
2639 | [ | ||
2640 | text "name attribute ENamedElement" | ||
2641 | fontSize 14 | ||
2642 | fontName "Consolas" | ||
2643 | configuration "AutoFlippingLabel" | ||
2644 | model "six_pos" | ||
2645 | position "thead" | ||
2646 | ] | ||
2647 | ] | ||
2648 | edge | ||
2649 | [ | ||
2650 | source 14 | ||
2651 | target 9 | ||
2652 | graphics | ||
2653 | [ | ||
2654 | fill "#000000" | ||
2655 | targetArrow "standard" | ||
2656 | ] | ||
2657 | LabelGraphics | ||
2658 | [ | ||
2659 | text "name attribute ENamedElement" | ||
2660 | fontSize 14 | ||
2661 | fontName "Consolas" | ||
2662 | configuration "AutoFlippingLabel" | ||
2663 | model "six_pos" | ||
2664 | position "thead" | ||
2665 | ] | ||
2666 | ] | ||
2667 | edge | ||
2668 | [ | ||
2669 | source 0 | ||
2670 | target 9 | ||
2671 | graphics | ||
2672 | [ | ||
2673 | fill "#000000" | ||
2674 | targetArrow "standard" | ||
2675 | ] | ||
2676 | LabelGraphics | ||
2677 | [ | ||
2678 | text "nsURI attribute EPackage" | ||
2679 | fontSize 14 | ||
2680 | fontName "Consolas" | ||
2681 | configuration "AutoFlippingLabel" | ||
2682 | model "six_pos" | ||
2683 | position "thead" | ||
2684 | ] | ||
2685 | ] | ||
2686 | edge | ||
2687 | [ | ||
2688 | source 0 | ||
2689 | target 8 | ||
2690 | graphics | ||
2691 | [ | ||
2692 | fill "#000000" | ||
2693 | targetArrow "standard" | ||
2694 | ] | ||
2695 | LabelGraphics | ||
2696 | [ | ||
2697 | text "nsPrefix attribute EPackage" | ||
2698 | fontSize 14 | ||
2699 | fontName "Consolas" | ||
2700 | configuration "AutoFlippingLabel" | ||
2701 | model "six_pos" | ||
2702 | position "thead" | ||
2703 | ] | ||
2704 | ] | ||
2705 | ] | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/3.png b/Tests/Ecore-Plugin/outputs/models/3.png new file mode 100644 index 00000000..7044ba5e --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/3.png | |||
Binary files differ | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/3.xmi b/Tests/Ecore-Plugin/outputs/models/3.xmi new file mode 100644 index 00000000..fcf98122 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/3.xmi | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> | ||
3 | <eAnnotations references="//%%%/@contents.0"> | ||
4 | <details/> | ||
5 | <details/> | ||
6 | <details/> | ||
7 | <contents/> | ||
8 | </eAnnotations> | ||
9 | </ecore:EPackage> | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/4.gml b/Tests/Ecore-Plugin/outputs/models/4.gml new file mode 100644 index 00000000..5a17812b --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/4.gml | |||
@@ -0,0 +1,2743 @@ | |||
1 | graph | ||
2 | [ | ||
3 | node | ||
4 | [ | ||
5 | id 0 | ||
6 | graphics | ||
7 | [ | ||
8 | w 254.10000000000002 | ||
9 | h 110 | ||
10 | type "rectangle" | ||
11 | fill "#FFFFFF" | ||
12 | fill2 "#FFFFFF" | ||
13 | outline "#000000" | ||
14 | ] | ||
15 | LabelGraphics | ||
16 | [ | ||
17 | text "o 1" | ||
18 | outline "#000000" | ||
19 | fill "#FFFFFF" | ||
20 | fontSize 16 | ||
21 | fontName "Monospace" | ||
22 | autoSizePolicy "node_width" | ||
23 | anchor "t" | ||
24 | borderDistance 0.0 | ||
25 | ] | ||
26 | LabelGraphics | ||
27 | [ | ||
28 | text " | ||
29 | EModelElement class DefinedPart | ||
30 | ENamedElement class DefinedPart | ||
31 | EPackage class DefinedPart | ||
32 | EModelElement class | ||
33 | ENamedElement class | ||
34 | EPackage class | ||
35 | " | ||
36 | fontSize 14 | ||
37 | fontName "Consolas" | ||
38 | alignment "left" | ||
39 | anchor "tl" | ||
40 | borderDistance 6 | ||
41 | ] | ||
42 | ] | ||
43 | |||
44 | node | ||
45 | [ | ||
46 | id 1 | ||
47 | graphics | ||
48 | [ | ||
49 | w 41.800000000000004 | ||
50 | h 26 | ||
51 | type "rectangle" | ||
52 | fill "#FFFFFF" | ||
53 | fill2 "#FFFFFF" | ||
54 | outline "#000000" | ||
55 | ] | ||
56 | LabelGraphics | ||
57 | [ | ||
58 | text "true" | ||
59 | outline "#000000" | ||
60 | fill "#FFFFFF" | ||
61 | fontSize 16 | ||
62 | fontName "Monospace" | ||
63 | autoSizePolicy "node_width" | ||
64 | anchor "t" | ||
65 | borderDistance 0.0 | ||
66 | ] | ||
67 | LabelGraphics | ||
68 | [ | ||
69 | text " | ||
70 | " | ||
71 | fontSize 14 | ||
72 | fontName "Consolas" | ||
73 | alignment "left" | ||
74 | anchor "tl" | ||
75 | borderDistance 6 | ||
76 | ] | ||
77 | ] | ||
78 | |||
79 | node | ||
80 | [ | ||
81 | id 2 | ||
82 | graphics | ||
83 | [ | ||
84 | w 50.6 | ||
85 | h 26 | ||
86 | type "rectangle" | ||
87 | fill "#FFFFFF" | ||
88 | fill2 "#FFFFFF" | ||
89 | outline "#000000" | ||
90 | ] | ||
91 | LabelGraphics | ||
92 | [ | ||
93 | text "false" | ||
94 | outline "#000000" | ||
95 | fill "#FFFFFF" | ||
96 | fontSize 16 | ||
97 | fontName "Monospace" | ||
98 | autoSizePolicy "node_width" | ||
99 | anchor "t" | ||
100 | borderDistance 0.0 | ||
101 | ] | ||
102 | LabelGraphics | ||
103 | [ | ||
104 | text " | ||
105 | " | ||
106 | fontSize 14 | ||
107 | fontName "Consolas" | ||
108 | alignment "left" | ||
109 | anchor "tl" | ||
110 | borderDistance 6 | ||
111 | ] | ||
112 | ] | ||
113 | |||
114 | node | ||
115 | [ | ||
116 | id 3 | ||
117 | graphics | ||
118 | [ | ||
119 | w 24.200000000000003 | ||
120 | h 26 | ||
121 | type "rectangle" | ||
122 | fill "#FFFFFF" | ||
123 | fill2 "#FFFFFF" | ||
124 | outline "#000000" | ||
125 | ] | ||
126 | LabelGraphics | ||
127 | [ | ||
128 | text "-1" | ||
129 | outline "#000000" | ||
130 | fill "#FFFFFF" | ||
131 | fontSize 16 | ||
132 | fontName "Monospace" | ||
133 | autoSizePolicy "node_width" | ||
134 | anchor "t" | ||
135 | borderDistance 0.0 | ||
136 | ] | ||
137 | LabelGraphics | ||
138 | [ | ||
139 | text " | ||
140 | " | ||
141 | fontSize 14 | ||
142 | fontName "Consolas" | ||
143 | alignment "left" | ||
144 | anchor "tl" | ||
145 | borderDistance 6 | ||
146 | ] | ||
147 | ] | ||
148 | |||
149 | node | ||
150 | [ | ||
151 | id 4 | ||
152 | graphics | ||
153 | [ | ||
154 | w 15.400000000000002 | ||
155 | h 26 | ||
156 | type "rectangle" | ||
157 | fill "#FFFFFF" | ||
158 | fill2 "#FFFFFF" | ||
159 | outline "#000000" | ||
160 | ] | ||
161 | LabelGraphics | ||
162 | [ | ||
163 | text "0" | ||
164 | outline "#000000" | ||
165 | fill "#FFFFFF" | ||
166 | fontSize 16 | ||
167 | fontName "Monospace" | ||
168 | autoSizePolicy "node_width" | ||
169 | anchor "t" | ||
170 | borderDistance 0.0 | ||
171 | ] | ||
172 | LabelGraphics | ||
173 | [ | ||
174 | text " | ||
175 | " | ||
176 | fontSize 14 | ||
177 | fontName "Consolas" | ||
178 | alignment "left" | ||
179 | anchor "tl" | ||
180 | borderDistance 6 | ||
181 | ] | ||
182 | ] | ||
183 | |||
184 | node | ||
185 | [ | ||
186 | id 5 | ||
187 | graphics | ||
188 | [ | ||
189 | w 15.400000000000002 | ||
190 | h 26 | ||
191 | type "rectangle" | ||
192 | fill "#FFFFFF" | ||
193 | fill2 "#FFFFFF" | ||
194 | outline "#000000" | ||
195 | ] | ||
196 | LabelGraphics | ||
197 | [ | ||
198 | text "1" | ||
199 | outline "#000000" | ||
200 | fill "#FFFFFF" | ||
201 | fontSize 16 | ||
202 | fontName "Monospace" | ||
203 | autoSizePolicy "node_width" | ||
204 | anchor "t" | ||
205 | borderDistance 0.0 | ||
206 | ] | ||
207 | LabelGraphics | ||
208 | [ | ||
209 | text " | ||
210 | " | ||
211 | fontSize 14 | ||
212 | fontName "Consolas" | ||
213 | alignment "left" | ||
214 | anchor "tl" | ||
215 | borderDistance 6 | ||
216 | ] | ||
217 | ] | ||
218 | |||
219 | node | ||
220 | [ | ||
221 | id 6 | ||
222 | graphics | ||
223 | [ | ||
224 | w 33.0 | ||
225 | h 26 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text ""A"" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | " | ||
246 | fontSize 14 | ||
247 | fontName "Consolas" | ||
248 | alignment "left" | ||
249 | anchor "tl" | ||
250 | borderDistance 6 | ||
251 | ] | ||
252 | ] | ||
253 | |||
254 | node | ||
255 | [ | ||
256 | id 7 | ||
257 | graphics | ||
258 | [ | ||
259 | w 33.0 | ||
260 | h 26 | ||
261 | type "rectangle" | ||
262 | fill "#FFFFFF" | ||
263 | fill2 "#FFFFFF" | ||
264 | outline "#000000" | ||
265 | ] | ||
266 | LabelGraphics | ||
267 | [ | ||
268 | text ""B"" | ||
269 | outline "#000000" | ||
270 | fill "#FFFFFF" | ||
271 | fontSize 16 | ||
272 | fontName "Monospace" | ||
273 | autoSizePolicy "node_width" | ||
274 | anchor "t" | ||
275 | borderDistance 0.0 | ||
276 | ] | ||
277 | LabelGraphics | ||
278 | [ | ||
279 | text " | ||
280 | " | ||
281 | fontSize 14 | ||
282 | fontName "Consolas" | ||
283 | alignment "left" | ||
284 | anchor "tl" | ||
285 | borderDistance 6 | ||
286 | ] | ||
287 | ] | ||
288 | |||
289 | node | ||
290 | [ | ||
291 | id 8 | ||
292 | graphics | ||
293 | [ | ||
294 | w 269.5 | ||
295 | h 68 | ||
296 | type "rectangle" | ||
297 | fill "#FFFFFF" | ||
298 | fill2 "#FFFFFF" | ||
299 | outline "#000000" | ||
300 | ] | ||
301 | LabelGraphics | ||
302 | [ | ||
303 | text "null" | ||
304 | outline "#000000" | ||
305 | fill "#FFFFFF" | ||
306 | fontSize 16 | ||
307 | fontName "Monospace" | ||
308 | autoSizePolicy "node_width" | ||
309 | anchor "t" | ||
310 | borderDistance 0.0 | ||
311 | ] | ||
312 | LabelGraphics | ||
313 | [ | ||
314 | text " | ||
315 | EAnnotation class | ||
316 | EModelElement class | ||
317 | EModelElement class UndefinedPart | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 269.5 | ||
333 | h 124 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "null" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | EClassifier class | ||
354 | EDataType class | ||
355 | EEnum class | ||
356 | EModelElement class | ||
357 | ENamedElement class | ||
358 | EModelElement class UndefinedPart | ||
359 | ENamedElement class UndefinedPart | ||
360 | " | ||
361 | fontSize 14 | ||
362 | fontName "Consolas" | ||
363 | alignment "left" | ||
364 | anchor "tl" | ||
365 | borderDistance 6 | ||
366 | ] | ||
367 | ] | ||
368 | |||
369 | node | ||
370 | [ | ||
371 | id 10 | ||
372 | graphics | ||
373 | [ | ||
374 | w 269.5 | ||
375 | h 68 | ||
376 | type "rectangle" | ||
377 | fill "#FFFFFF" | ||
378 | fill2 "#FFFFFF" | ||
379 | outline "#000000" | ||
380 | ] | ||
381 | LabelGraphics | ||
382 | [ | ||
383 | text "null" | ||
384 | outline "#000000" | ||
385 | fill "#FFFFFF" | ||
386 | fontSize 16 | ||
387 | fontName "Monospace" | ||
388 | autoSizePolicy "node_width" | ||
389 | anchor "t" | ||
390 | borderDistance 0.0 | ||
391 | ] | ||
392 | LabelGraphics | ||
393 | [ | ||
394 | text " | ||
395 | EAnnotation class | ||
396 | EModelElement class | ||
397 | EModelElement class UndefinedPart | ||
398 | " | ||
399 | fontSize 14 | ||
400 | fontName "Consolas" | ||
401 | alignment "left" | ||
402 | anchor "tl" | ||
403 | borderDistance 6 | ||
404 | ] | ||
405 | ] | ||
406 | |||
407 | node | ||
408 | [ | ||
409 | id 11 | ||
410 | graphics | ||
411 | [ | ||
412 | w 269.5 | ||
413 | h 110 | ||
414 | type "rectangle" | ||
415 | fill "#FFFFFF" | ||
416 | fill2 "#FFFFFF" | ||
417 | outline "#000000" | ||
418 | ] | ||
419 | LabelGraphics | ||
420 | [ | ||
421 | text "null" | ||
422 | outline "#000000" | ||
423 | fill "#FFFFFF" | ||
424 | fontSize 16 | ||
425 | fontName "Monospace" | ||
426 | autoSizePolicy "node_width" | ||
427 | anchor "t" | ||
428 | borderDistance 0.0 | ||
429 | ] | ||
430 | LabelGraphics | ||
431 | [ | ||
432 | text " | ||
433 | EClass class | ||
434 | EClassifier class | ||
435 | EModelElement class | ||
436 | ENamedElement class | ||
437 | EModelElement class UndefinedPart | ||
438 | ENamedElement class UndefinedPart | ||
439 | " | ||
440 | fontSize 14 | ||
441 | fontName "Consolas" | ||
442 | alignment "left" | ||
443 | anchor "tl" | ||
444 | borderDistance 6 | ||
445 | ] | ||
446 | ] | ||
447 | |||
448 | node | ||
449 | [ | ||
450 | id 12 | ||
451 | graphics | ||
452 | [ | ||
453 | w 269.5 | ||
454 | h 124 | ||
455 | type "rectangle" | ||
456 | fill "#FFFFFF" | ||
457 | fill2 "#FFFFFF" | ||
458 | outline "#000000" | ||
459 | ] | ||
460 | LabelGraphics | ||
461 | [ | ||
462 | text "null" | ||
463 | outline "#000000" | ||
464 | fill "#FFFFFF" | ||
465 | fontSize 16 | ||
466 | fontName "Monospace" | ||
467 | autoSizePolicy "node_width" | ||
468 | anchor "t" | ||
469 | borderDistance 0.0 | ||
470 | ] | ||
471 | LabelGraphics | ||
472 | [ | ||
473 | text " | ||
474 | EModelElement class | ||
475 | ENamedElement class | ||
476 | EReference class | ||
477 | EStructuralFeature class | ||
478 | ETypedElement class | ||
479 | EModelElement class UndefinedPart | ||
480 | ENamedElement class UndefinedPart | ||
481 | " | ||
482 | fontSize 14 | ||
483 | fontName "Consolas" | ||
484 | alignment "left" | ||
485 | anchor "tl" | ||
486 | borderDistance 6 | ||
487 | ] | ||
488 | ] | ||
489 | |||
490 | node | ||
491 | [ | ||
492 | id 13 | ||
493 | graphics | ||
494 | [ | ||
495 | w 112.2 | ||
496 | h 26 | ||
497 | type "rectangle" | ||
498 | fill "#FFFFFF" | ||
499 | fill2 "#FFFFFF" | ||
500 | outline "#000000" | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text "New Integers" | ||
505 | outline "#000000" | ||
506 | fill "#FFFFFF" | ||
507 | fontSize 16 | ||
508 | fontName "Monospace" | ||
509 | autoSizePolicy "node_width" | ||
510 | anchor "t" | ||
511 | borderDistance 0.0 | ||
512 | ] | ||
513 | LabelGraphics | ||
514 | [ | ||
515 | text " | ||
516 | " | ||
517 | fontSize 14 | ||
518 | fontName "Consolas" | ||
519 | alignment "left" | ||
520 | anchor "tl" | ||
521 | borderDistance 6 | ||
522 | ] | ||
523 | ] | ||
524 | |||
525 | node | ||
526 | [ | ||
527 | id 14 | ||
528 | graphics | ||
529 | [ | ||
530 | w 85.80000000000001 | ||
531 | h 26 | ||
532 | type "rectangle" | ||
533 | fill "#FFFFFF" | ||
534 | fill2 "#FFFFFF" | ||
535 | outline "#000000" | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text "New Reals" | ||
540 | outline "#000000" | ||
541 | fill "#FFFFFF" | ||
542 | fontSize 16 | ||
543 | fontName "Monospace" | ||
544 | autoSizePolicy "node_width" | ||
545 | anchor "t" | ||
546 | borderDistance 0.0 | ||
547 | ] | ||
548 | LabelGraphics | ||
549 | [ | ||
550 | text " | ||
551 | " | ||
552 | fontSize 14 | ||
553 | fontName "Consolas" | ||
554 | alignment "left" | ||
555 | anchor "tl" | ||
556 | borderDistance 6 | ||
557 | ] | ||
558 | ] | ||
559 | |||
560 | node | ||
561 | [ | ||
562 | id 15 | ||
563 | graphics | ||
564 | [ | ||
565 | w 103.4 | ||
566 | h 26 | ||
567 | type "rectangle" | ||
568 | fill "#FFFFFF" | ||
569 | fill2 "#FFFFFF" | ||
570 | outline "#000000" | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text "New Strings" | ||
575 | outline "#000000" | ||
576 | fill "#FFFFFF" | ||
577 | fontSize 16 | ||
578 | fontName "Monospace" | ||
579 | autoSizePolicy "node_width" | ||
580 | anchor "t" | ||
581 | borderDistance 0.0 | ||
582 | ] | ||
583 | LabelGraphics | ||
584 | [ | ||
585 | text " | ||
586 | " | ||
587 | fontSize 14 | ||
588 | fontName "Consolas" | ||
589 | alignment "left" | ||
590 | anchor "tl" | ||
591 | borderDistance 6 | ||
592 | ] | ||
593 | ] | ||
594 | |||
595 | node | ||
596 | [ | ||
597 | id 16 | ||
598 | graphics | ||
599 | [ | ||
600 | w 103.4 | ||
601 | h 26 | ||
602 | type "rectangle" | ||
603 | fill "#FFFFFF" | ||
604 | fill2 "#FFFFFF" | ||
605 | outline "#000000" | ||
606 | ] | ||
607 | LabelGraphics | ||
608 | [ | ||
609 | text "New Objects" | ||
610 | outline "#000000" | ||
611 | fill "#FFFFFF" | ||
612 | fontSize 16 | ||
613 | fontName "Monospace" | ||
614 | autoSizePolicy "node_width" | ||
615 | anchor "t" | ||
616 | borderDistance 0.0 | ||
617 | ] | ||
618 | LabelGraphics | ||
619 | [ | ||
620 | text " | ||
621 | " | ||
622 | fontSize 14 | ||
623 | fontName "Consolas" | ||
624 | alignment "left" | ||
625 | anchor "tl" | ||
626 | borderDistance 6 | ||
627 | ] | ||
628 | ] | ||
629 | edge | ||
630 | [ | ||
631 | source 8 | ||
632 | target 0 | ||
633 | graphics | ||
634 | [ | ||
635 | fill "#000000" | ||
636 | targetArrow "standard" | ||
637 | ] | ||
638 | LabelGraphics | ||
639 | [ | ||
640 | text "eModelElement reference EAnnotation" | ||
641 | fontSize 14 | ||
642 | fontName "Consolas" | ||
643 | configuration "AutoFlippingLabel" | ||
644 | model "six_pos" | ||
645 | position "thead" | ||
646 | ] | ||
647 | ] | ||
648 | edge | ||
649 | [ | ||
650 | source 10 | ||
651 | target 0 | ||
652 | graphics | ||
653 | [ | ||
654 | fill "#000000" | ||
655 | targetArrow "standard" | ||
656 | ] | ||
657 | LabelGraphics | ||
658 | [ | ||
659 | text "eModelElement reference EAnnotation" | ||
660 | fontSize 14 | ||
661 | fontName "Consolas" | ||
662 | configuration "AutoFlippingLabel" | ||
663 | model "six_pos" | ||
664 | position "thead" | ||
665 | ] | ||
666 | ] | ||
667 | edge | ||
668 | [ | ||
669 | source 11 | ||
670 | target 11 | ||
671 | graphics | ||
672 | [ | ||
673 | fill "#000000" | ||
674 | targetArrow "standard" | ||
675 | ] | ||
676 | LabelGraphics | ||
677 | [ | ||
678 | text "eSuperTypes reference EClass" | ||
679 | fontSize 14 | ||
680 | fontName "Consolas" | ||
681 | configuration "AutoFlippingLabel" | ||
682 | model "six_pos" | ||
683 | position "thead" | ||
684 | ] | ||
685 | ] | ||
686 | edge | ||
687 | [ | ||
688 | source 11 | ||
689 | target 12 | ||
690 | graphics | ||
691 | [ | ||
692 | fill "#000000" | ||
693 | targetArrow "standard" | ||
694 | ] | ||
695 | LabelGraphics | ||
696 | [ | ||
697 | text "eAllReferences reference EClass" | ||
698 | fontSize 14 | ||
699 | fontName "Consolas" | ||
700 | configuration "AutoFlippingLabel" | ||
701 | model "six_pos" | ||
702 | position "thead" | ||
703 | ] | ||
704 | ] | ||
705 | edge | ||
706 | [ | ||
707 | source 11 | ||
708 | target 12 | ||
709 | graphics | ||
710 | [ | ||
711 | fill "#000000" | ||
712 | targetArrow "standard" | ||
713 | ] | ||
714 | LabelGraphics | ||
715 | [ | ||
716 | text "eReferences reference EClass" | ||
717 | fontSize 14 | ||
718 | fontName "Consolas" | ||
719 | configuration "AutoFlippingLabel" | ||
720 | model "six_pos" | ||
721 | position "thead" | ||
722 | ] | ||
723 | ] | ||
724 | edge | ||
725 | [ | ||
726 | source 11 | ||
727 | target 12 | ||
728 | graphics | ||
729 | [ | ||
730 | fill "#000000" | ||
731 | targetArrow "standard" | ||
732 | ] | ||
733 | LabelGraphics | ||
734 | [ | ||
735 | text "eAllContainments reference EClass" | ||
736 | fontSize 14 | ||
737 | fontName "Consolas" | ||
738 | configuration "AutoFlippingLabel" | ||
739 | model "six_pos" | ||
740 | position "thead" | ||
741 | ] | ||
742 | ] | ||
743 | edge | ||
744 | [ | ||
745 | source 11 | ||
746 | target 12 | ||
747 | graphics | ||
748 | [ | ||
749 | fill "#000000" | ||
750 | targetArrow "standard" | ||
751 | ] | ||
752 | LabelGraphics | ||
753 | [ | ||
754 | text "eAllStructuralFeatures reference EClass" | ||
755 | fontSize 14 | ||
756 | fontName "Consolas" | ||
757 | configuration "AutoFlippingLabel" | ||
758 | model "six_pos" | ||
759 | position "thead" | ||
760 | ] | ||
761 | ] | ||
762 | edge | ||
763 | [ | ||
764 | source 11 | ||
765 | target 11 | ||
766 | graphics | ||
767 | [ | ||
768 | fill "#000000" | ||
769 | targetArrow "standard" | ||
770 | ] | ||
771 | LabelGraphics | ||
772 | [ | ||
773 | text "eAllSuperTypes reference EClass" | ||
774 | fontSize 14 | ||
775 | fontName "Consolas" | ||
776 | configuration "AutoFlippingLabel" | ||
777 | model "six_pos" | ||
778 | position "thead" | ||
779 | ] | ||
780 | ] | ||
781 | edge | ||
782 | [ | ||
783 | source 11 | ||
784 | target 12 | ||
785 | graphics | ||
786 | [ | ||
787 | fill "#000000" | ||
788 | width 3 | ||
789 | targetArrow "standard" | ||
790 | ] | ||
791 | LabelGraphics | ||
792 | [ | ||
793 | text "eStructuralFeatures reference EClass" | ||
794 | fontSize 14 | ||
795 | fontName "Consolas" | ||
796 | configuration "AutoFlippingLabel" | ||
797 | model "six_pos" | ||
798 | position "thead" | ||
799 | ] | ||
800 | ] | ||
801 | edge | ||
802 | [ | ||
803 | source 9 | ||
804 | target 0 | ||
805 | graphics | ||
806 | [ | ||
807 | fill "#000000" | ||
808 | targetArrow "standard" | ||
809 | ] | ||
810 | LabelGraphics | ||
811 | [ | ||
812 | text "ePackage reference EClassifier" | ||
813 | fontSize 14 | ||
814 | fontName "Consolas" | ||
815 | configuration "AutoFlippingLabel" | ||
816 | model "six_pos" | ||
817 | position "thead" | ||
818 | ] | ||
819 | ] | ||
820 | edge | ||
821 | [ | ||
822 | source 11 | ||
823 | target 0 | ||
824 | graphics | ||
825 | [ | ||
826 | fill "#000000" | ||
827 | targetArrow "standard" | ||
828 | ] | ||
829 | LabelGraphics | ||
830 | [ | ||
831 | text "ePackage reference EClassifier" | ||
832 | fontSize 14 | ||
833 | fontName "Consolas" | ||
834 | configuration "AutoFlippingLabel" | ||
835 | model "six_pos" | ||
836 | position "thead" | ||
837 | ] | ||
838 | ] | ||
839 | edge | ||
840 | [ | ||
841 | source 0 | ||
842 | target 8 | ||
843 | graphics | ||
844 | [ | ||
845 | fill "#000000" | ||
846 | width 3 | ||
847 | targetArrow "standard" | ||
848 | ] | ||
849 | LabelGraphics | ||
850 | [ | ||
851 | text "eAnnotations reference EModelElement" | ||
852 | fontSize 14 | ||
853 | fontName "Consolas" | ||
854 | configuration "AutoFlippingLabel" | ||
855 | model "six_pos" | ||
856 | position "thead" | ||
857 | ] | ||
858 | ] | ||
859 | edge | ||
860 | [ | ||
861 | source 0 | ||
862 | target 10 | ||
863 | graphics | ||
864 | [ | ||
865 | fill "#000000" | ||
866 | width 3 | ||
867 | targetArrow "standard" | ||
868 | ] | ||
869 | LabelGraphics | ||
870 | [ | ||
871 | text "eAnnotations reference EModelElement" | ||
872 | fontSize 14 | ||
873 | fontName "Consolas" | ||
874 | configuration "AutoFlippingLabel" | ||
875 | model "six_pos" | ||
876 | position "thead" | ||
877 | ] | ||
878 | ] | ||
879 | edge | ||
880 | [ | ||
881 | source 0 | ||
882 | target 9 | ||
883 | graphics | ||
884 | [ | ||
885 | fill "#000000" | ||
886 | width 3 | ||
887 | targetArrow "standard" | ||
888 | ] | ||
889 | LabelGraphics | ||
890 | [ | ||
891 | text "eClassifiers reference EPackage" | ||
892 | fontSize 14 | ||
893 | fontName "Consolas" | ||
894 | configuration "AutoFlippingLabel" | ||
895 | model "six_pos" | ||
896 | position "thead" | ||
897 | ] | ||
898 | ] | ||
899 | edge | ||
900 | [ | ||
901 | source 0 | ||
902 | target 11 | ||
903 | graphics | ||
904 | [ | ||
905 | fill "#000000" | ||
906 | width 3 | ||
907 | targetArrow "standard" | ||
908 | ] | ||
909 | LabelGraphics | ||
910 | [ | ||
911 | text "eClassifiers reference EPackage" | ||
912 | fontSize 14 | ||
913 | fontName "Consolas" | ||
914 | configuration "AutoFlippingLabel" | ||
915 | model "six_pos" | ||
916 | position "thead" | ||
917 | ] | ||
918 | ] | ||
919 | edge | ||
920 | [ | ||
921 | source 12 | ||
922 | target 12 | ||
923 | graphics | ||
924 | [ | ||
925 | fill "#000000" | ||
926 | targetArrow "standard" | ||
927 | ] | ||
928 | LabelGraphics | ||
929 | [ | ||
930 | text "eOpposite reference EReference" | ||
931 | fontSize 14 | ||
932 | fontName "Consolas" | ||
933 | configuration "AutoFlippingLabel" | ||
934 | model "six_pos" | ||
935 | position "thead" | ||
936 | ] | ||
937 | ] | ||
938 | edge | ||
939 | [ | ||
940 | source 12 | ||
941 | target 11 | ||
942 | graphics | ||
943 | [ | ||
944 | fill "#000000" | ||
945 | targetArrow "standard" | ||
946 | ] | ||
947 | LabelGraphics | ||
948 | [ | ||
949 | text "eReferenceType reference EReference" | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | configuration "AutoFlippingLabel" | ||
953 | model "six_pos" | ||
954 | position "thead" | ||
955 | ] | ||
956 | ] | ||
957 | edge | ||
958 | [ | ||
959 | source 12 | ||
960 | target 11 | ||
961 | graphics | ||
962 | [ | ||
963 | fill "#000000" | ||
964 | targetArrow "standard" | ||
965 | ] | ||
966 | LabelGraphics | ||
967 | [ | ||
968 | text "eContainingClass reference EStructuralFeature" | ||
969 | fontSize 14 | ||
970 | fontName "Consolas" | ||
971 | configuration "AutoFlippingLabel" | ||
972 | model "six_pos" | ||
973 | position "thead" | ||
974 | ] | ||
975 | ] | ||
976 | edge | ||
977 | [ | ||
978 | source 12 | ||
979 | target 11 | ||
980 | graphics | ||
981 | [ | ||
982 | fill "#000000" | ||
983 | targetArrow "standard" | ||
984 | ] | ||
985 | LabelGraphics | ||
986 | [ | ||
987 | text "eType reference ETypedElement" | ||
988 | fontSize 14 | ||
989 | fontName "Consolas" | ||
990 | configuration "AutoFlippingLabel" | ||
991 | model "six_pos" | ||
992 | position "thead" | ||
993 | ] | ||
994 | ] | ||
995 | edge | ||
996 | [ | ||
997 | source 8 | ||
998 | target 7 | ||
999 | graphics | ||
1000 | [ | ||
1001 | fill "#000000" | ||
1002 | targetArrow "standard" | ||
1003 | ] | ||
1004 | LabelGraphics | ||
1005 | [ | ||
1006 | text "source attribute EAnnotation" | ||
1007 | fontSize 14 | ||
1008 | fontName "Consolas" | ||
1009 | configuration "AutoFlippingLabel" | ||
1010 | model "six_pos" | ||
1011 | position "thead" | ||
1012 | ] | ||
1013 | ] | ||
1014 | edge | ||
1015 | [ | ||
1016 | source 10 | ||
1017 | target 6 | ||
1018 | graphics | ||
1019 | [ | ||
1020 | fill "#000000" | ||
1021 | targetArrow "standard" | ||
1022 | ] | ||
1023 | LabelGraphics | ||
1024 | [ | ||
1025 | text "source attribute EAnnotation" | ||
1026 | fontSize 14 | ||
1027 | fontName "Consolas" | ||
1028 | configuration "AutoFlippingLabel" | ||
1029 | model "six_pos" | ||
1030 | position "thead" | ||
1031 | ] | ||
1032 | ] | ||
1033 | edge | ||
1034 | [ | ||
1035 | source 11 | ||
1036 | target 2 | ||
1037 | graphics | ||
1038 | [ | ||
1039 | fill "#000000" | ||
1040 | targetArrow "standard" | ||
1041 | ] | ||
1042 | LabelGraphics | ||
1043 | [ | ||
1044 | text "abstract attribute EClass" | ||
1045 | fontSize 14 | ||
1046 | fontName "Consolas" | ||
1047 | configuration "AutoFlippingLabel" | ||
1048 | model "six_pos" | ||
1049 | position "thead" | ||
1050 | ] | ||
1051 | ] | ||
1052 | edge | ||
1053 | [ | ||
1054 | source 11 | ||
1055 | target 1 | ||
1056 | graphics | ||
1057 | [ | ||
1058 | fill "#000000" | ||
1059 | targetArrow "standard" | ||
1060 | ] | ||
1061 | LabelGraphics | ||
1062 | [ | ||
1063 | text "interface attribute EClass" | ||
1064 | fontSize 14 | ||
1065 | fontName "Consolas" | ||
1066 | configuration "AutoFlippingLabel" | ||
1067 | model "six_pos" | ||
1068 | position "thead" | ||
1069 | ] | ||
1070 | ] | ||
1071 | edge | ||
1072 | [ | ||
1073 | source 11 | ||
1074 | target 7 | ||
1075 | graphics | ||
1076 | [ | ||
1077 | fill "#000000" | ||
1078 | targetArrow "standard" | ||
1079 | ] | ||
1080 | LabelGraphics | ||
1081 | [ | ||
1082 | text "instanceClassName attribute EClassifier" | ||
1083 | fontSize 14 | ||
1084 | fontName "Consolas" | ||
1085 | configuration "AutoFlippingLabel" | ||
1086 | model "six_pos" | ||
1087 | position "thead" | ||
1088 | ] | ||
1089 | ] | ||
1090 | edge | ||
1091 | [ | ||
1092 | source 11 | ||
1093 | target 7 | ||
1094 | graphics | ||
1095 | [ | ||
1096 | fill "#000000" | ||
1097 | targetArrow "standard" | ||
1098 | ] | ||
1099 | LabelGraphics | ||
1100 | [ | ||
1101 | text "instanceTypeName attribute EClassifier" | ||
1102 | fontSize 14 | ||
1103 | fontName "Consolas" | ||
1104 | configuration "AutoFlippingLabel" | ||
1105 | model "six_pos" | ||
1106 | position "thead" | ||
1107 | ] | ||
1108 | ] | ||
1109 | edge | ||
1110 | [ | ||
1111 | source 9 | ||
1112 | target 7 | ||
1113 | graphics | ||
1114 | [ | ||
1115 | fill "#000000" | ||
1116 | targetArrow "standard" | ||
1117 | ] | ||
1118 | LabelGraphics | ||
1119 | [ | ||
1120 | text "instanceTypeName attribute EClassifier" | ||
1121 | fontSize 14 | ||
1122 | fontName "Consolas" | ||
1123 | configuration "AutoFlippingLabel" | ||
1124 | model "six_pos" | ||
1125 | position "thead" | ||
1126 | ] | ||
1127 | ] | ||
1128 | edge | ||
1129 | [ | ||
1130 | source 9 | ||
1131 | target 2 | ||
1132 | graphics | ||
1133 | [ | ||
1134 | fill "#000000" | ||
1135 | targetArrow "standard" | ||
1136 | ] | ||
1137 | LabelGraphics | ||
1138 | [ | ||
1139 | text "serializable attribute EDataType" | ||
1140 | fontSize 14 | ||
1141 | fontName "Consolas" | ||
1142 | configuration "AutoFlippingLabel" | ||
1143 | model "six_pos" | ||
1144 | position "thead" | ||
1145 | ] | ||
1146 | ] | ||
1147 | edge | ||
1148 | [ | ||
1149 | source 0 | ||
1150 | target 7 | ||
1151 | graphics | ||
1152 | [ | ||
1153 | fill "#000000" | ||
1154 | targetArrow "standard" | ||
1155 | ] | ||
1156 | LabelGraphics | ||
1157 | [ | ||
1158 | text "name attribute ENamedElement" | ||
1159 | fontSize 14 | ||
1160 | fontName "Consolas" | ||
1161 | configuration "AutoFlippingLabel" | ||
1162 | model "six_pos" | ||
1163 | position "thead" | ||
1164 | ] | ||
1165 | ] | ||
1166 | edge | ||
1167 | [ | ||
1168 | source 12 | ||
1169 | target 6 | ||
1170 | graphics | ||
1171 | [ | ||
1172 | fill "#000000" | ||
1173 | targetArrow "standard" | ||
1174 | ] | ||
1175 | LabelGraphics | ||
1176 | [ | ||
1177 | text "name attribute ENamedElement" | ||
1178 | fontSize 14 | ||
1179 | fontName "Consolas" | ||
1180 | configuration "AutoFlippingLabel" | ||
1181 | model "six_pos" | ||
1182 | position "thead" | ||
1183 | ] | ||
1184 | ] | ||
1185 | edge | ||
1186 | [ | ||
1187 | source 11 | ||
1188 | target 7 | ||
1189 | graphics | ||
1190 | [ | ||
1191 | fill "#000000" | ||
1192 | targetArrow "standard" | ||
1193 | ] | ||
1194 | LabelGraphics | ||
1195 | [ | ||
1196 | text "name attribute ENamedElement" | ||
1197 | fontSize 14 | ||
1198 | fontName "Consolas" | ||
1199 | configuration "AutoFlippingLabel" | ||
1200 | model "six_pos" | ||
1201 | position "thead" | ||
1202 | ] | ||
1203 | ] | ||
1204 | edge | ||
1205 | [ | ||
1206 | source 9 | ||
1207 | target 7 | ||
1208 | graphics | ||
1209 | [ | ||
1210 | fill "#000000" | ||
1211 | targetArrow "standard" | ||
1212 | ] | ||
1213 | LabelGraphics | ||
1214 | [ | ||
1215 | text "name attribute ENamedElement" | ||
1216 | fontSize 14 | ||
1217 | fontName "Consolas" | ||
1218 | configuration "AutoFlippingLabel" | ||
1219 | model "six_pos" | ||
1220 | position "thead" | ||
1221 | ] | ||
1222 | ] | ||
1223 | edge | ||
1224 | [ | ||
1225 | source 0 | ||
1226 | target 7 | ||
1227 | graphics | ||
1228 | [ | ||
1229 | fill "#000000" | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "nsURI attribute EPackage" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 0 | ||
1245 | target 7 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | targetArrow "standard" | ||
1250 | ] | ||
1251 | LabelGraphics | ||
1252 | [ | ||
1253 | text "nsPrefix attribute EPackage" | ||
1254 | fontSize 14 | ||
1255 | fontName "Consolas" | ||
1256 | configuration "AutoFlippingLabel" | ||
1257 | model "six_pos" | ||
1258 | position "thead" | ||
1259 | ] | ||
1260 | ] | ||
1261 | edge | ||
1262 | [ | ||
1263 | source 12 | ||
1264 | target 2 | ||
1265 | graphics | ||
1266 | [ | ||
1267 | fill "#000000" | ||
1268 | targetArrow "standard" | ||
1269 | ] | ||
1270 | LabelGraphics | ||
1271 | [ | ||
1272 | text "containment attribute EReference" | ||
1273 | fontSize 14 | ||
1274 | fontName "Consolas" | ||
1275 | configuration "AutoFlippingLabel" | ||
1276 | model "six_pos" | ||
1277 | position "thead" | ||
1278 | ] | ||
1279 | ] | ||
1280 | edge | ||
1281 | [ | ||
1282 | source 12 | ||
1283 | target 2 | ||
1284 | graphics | ||
1285 | [ | ||
1286 | fill "#000000" | ||
1287 | targetArrow "standard" | ||
1288 | ] | ||
1289 | LabelGraphics | ||
1290 | [ | ||
1291 | text "container attribute EReference" | ||
1292 | fontSize 14 | ||
1293 | fontName "Consolas" | ||
1294 | configuration "AutoFlippingLabel" | ||
1295 | model "six_pos" | ||
1296 | position "thead" | ||
1297 | ] | ||
1298 | ] | ||
1299 | edge | ||
1300 | [ | ||
1301 | source 12 | ||
1302 | target 2 | ||
1303 | graphics | ||
1304 | [ | ||
1305 | fill "#000000" | ||
1306 | targetArrow "standard" | ||
1307 | ] | ||
1308 | LabelGraphics | ||
1309 | [ | ||
1310 | text "resolveProxies attribute EReference" | ||
1311 | fontSize 14 | ||
1312 | fontName "Consolas" | ||
1313 | configuration "AutoFlippingLabel" | ||
1314 | model "six_pos" | ||
1315 | position "thead" | ||
1316 | ] | ||
1317 | ] | ||
1318 | edge | ||
1319 | [ | ||
1320 | source 12 | ||
1321 | target 2 | ||
1322 | graphics | ||
1323 | [ | ||
1324 | fill "#000000" | ||
1325 | targetArrow "standard" | ||
1326 | ] | ||
1327 | LabelGraphics | ||
1328 | [ | ||
1329 | text "changeable attribute EStructuralFeature" | ||
1330 | fontSize 14 | ||
1331 | fontName "Consolas" | ||
1332 | configuration "AutoFlippingLabel" | ||
1333 | model "six_pos" | ||
1334 | position "thead" | ||
1335 | ] | ||
1336 | ] | ||
1337 | edge | ||
1338 | [ | ||
1339 | source 12 | ||
1340 | target 2 | ||
1341 | graphics | ||
1342 | [ | ||
1343 | fill "#000000" | ||
1344 | targetArrow "standard" | ||
1345 | ] | ||
1346 | LabelGraphics | ||
1347 | [ | ||
1348 | text "volatile attribute EStructuralFeature" | ||
1349 | fontSize 14 | ||
1350 | fontName "Consolas" | ||
1351 | configuration "AutoFlippingLabel" | ||
1352 | model "six_pos" | ||
1353 | position "thead" | ||
1354 | ] | ||
1355 | ] | ||
1356 | edge | ||
1357 | [ | ||
1358 | source 12 | ||
1359 | target 1 | ||
1360 | graphics | ||
1361 | [ | ||
1362 | fill "#000000" | ||
1363 | targetArrow "standard" | ||
1364 | ] | ||
1365 | LabelGraphics | ||
1366 | [ | ||
1367 | text "transient attribute EStructuralFeature" | ||
1368 | fontSize 14 | ||
1369 | fontName "Consolas" | ||
1370 | configuration "AutoFlippingLabel" | ||
1371 | model "six_pos" | ||
1372 | position "thead" | ||
1373 | ] | ||
1374 | ] | ||
1375 | edge | ||
1376 | [ | ||
1377 | source 12 | ||
1378 | target 7 | ||
1379 | graphics | ||
1380 | [ | ||
1381 | fill "#000000" | ||
1382 | targetArrow "standard" | ||
1383 | ] | ||
1384 | LabelGraphics | ||
1385 | [ | ||
1386 | text "defaultValueLiteral attribute EStructuralFeature" | ||
1387 | fontSize 14 | ||
1388 | fontName "Consolas" | ||
1389 | configuration "AutoFlippingLabel" | ||
1390 | model "six_pos" | ||
1391 | position "thead" | ||
1392 | ] | ||
1393 | ] | ||
1394 | edge | ||
1395 | [ | ||
1396 | source 12 | ||
1397 | target 2 | ||
1398 | graphics | ||
1399 | [ | ||
1400 | fill "#000000" | ||
1401 | targetArrow "standard" | ||
1402 | ] | ||
1403 | LabelGraphics | ||
1404 | [ | ||
1405 | text "unsettable attribute EStructuralFeature" | ||
1406 | fontSize 14 | ||
1407 | fontName "Consolas" | ||
1408 | configuration "AutoFlippingLabel" | ||
1409 | model "six_pos" | ||
1410 | position "thead" | ||
1411 | ] | ||
1412 | ] | ||
1413 | edge | ||
1414 | [ | ||
1415 | source 12 | ||
1416 | target 1 | ||
1417 | graphics | ||
1418 | [ | ||
1419 | fill "#000000" | ||
1420 | targetArrow "standard" | ||
1421 | ] | ||
1422 | LabelGraphics | ||
1423 | [ | ||
1424 | text "derived attribute EStructuralFeature" | ||
1425 | fontSize 14 | ||
1426 | fontName "Consolas" | ||
1427 | configuration "AutoFlippingLabel" | ||
1428 | model "six_pos" | ||
1429 | position "thead" | ||
1430 | ] | ||
1431 | ] | ||
1432 | edge | ||
1433 | [ | ||
1434 | source 12 | ||
1435 | target 1 | ||
1436 | graphics | ||
1437 | [ | ||
1438 | fill "#000000" | ||
1439 | targetArrow "standard" | ||
1440 | ] | ||
1441 | LabelGraphics | ||
1442 | [ | ||
1443 | text "ordered attribute ETypedElement" | ||
1444 | fontSize 14 | ||
1445 | fontName "Consolas" | ||
1446 | configuration "AutoFlippingLabel" | ||
1447 | model "six_pos" | ||
1448 | position "thead" | ||
1449 | ] | ||
1450 | ] | ||
1451 | edge | ||
1452 | [ | ||
1453 | source 12 | ||
1454 | target 1 | ||
1455 | graphics | ||
1456 | [ | ||
1457 | fill "#000000" | ||
1458 | targetArrow "standard" | ||
1459 | ] | ||
1460 | LabelGraphics | ||
1461 | [ | ||
1462 | text "unique attribute ETypedElement" | ||
1463 | fontSize 14 | ||
1464 | fontName "Consolas" | ||
1465 | configuration "AutoFlippingLabel" | ||
1466 | model "six_pos" | ||
1467 | position "thead" | ||
1468 | ] | ||
1469 | ] | ||
1470 | edge | ||
1471 | [ | ||
1472 | source 12 | ||
1473 | target 4 | ||
1474 | graphics | ||
1475 | [ | ||
1476 | fill "#000000" | ||
1477 | targetArrow "standard" | ||
1478 | ] | ||
1479 | LabelGraphics | ||
1480 | [ | ||
1481 | text "lowerBound attribute ETypedElement" | ||
1482 | fontSize 14 | ||
1483 | fontName "Consolas" | ||
1484 | configuration "AutoFlippingLabel" | ||
1485 | model "six_pos" | ||
1486 | position "thead" | ||
1487 | ] | ||
1488 | ] | ||
1489 | edge | ||
1490 | [ | ||
1491 | source 12 | ||
1492 | target 5 | ||
1493 | graphics | ||
1494 | [ | ||
1495 | fill "#000000" | ||
1496 | targetArrow "standard" | ||
1497 | ] | ||
1498 | LabelGraphics | ||
1499 | [ | ||
1500 | text "upperBound attribute ETypedElement" | ||
1501 | fontSize 14 | ||
1502 | fontName "Consolas" | ||
1503 | configuration "AutoFlippingLabel" | ||
1504 | model "six_pos" | ||
1505 | position "thead" | ||
1506 | ] | ||
1507 | ] | ||
1508 | edge | ||
1509 | [ | ||
1510 | source 12 | ||
1511 | target 1 | ||
1512 | graphics | ||
1513 | [ | ||
1514 | fill "#000000" | ||
1515 | targetArrow "standard" | ||
1516 | ] | ||
1517 | LabelGraphics | ||
1518 | [ | ||
1519 | text "many attribute ETypedElement" | ||
1520 | fontSize 14 | ||
1521 | fontName "Consolas" | ||
1522 | configuration "AutoFlippingLabel" | ||
1523 | model "six_pos" | ||
1524 | position "thead" | ||
1525 | ] | ||
1526 | ] | ||
1527 | edge | ||
1528 | [ | ||
1529 | source 12 | ||
1530 | target 2 | ||
1531 | graphics | ||
1532 | [ | ||
1533 | fill "#000000" | ||
1534 | targetArrow "standard" | ||
1535 | ] | ||
1536 | LabelGraphics | ||
1537 | [ | ||
1538 | text "required attribute ETypedElement" | ||
1539 | fontSize 14 | ||
1540 | fontName "Consolas" | ||
1541 | configuration "AutoFlippingLabel" | ||
1542 | model "six_pos" | ||
1543 | position "thead" | ||
1544 | ] | ||
1545 | ] | ||
1546 | ] | ||
1547 | graph | ||
1548 | [ | ||
1549 | node | ||
1550 | [ | ||
1551 | id 0 | ||
1552 | graphics | ||
1553 | [ | ||
1554 | w 254.10000000000002 | ||
1555 | h 110 | ||
1556 | type "rectangle" | ||
1557 | fill "#FFFFFF" | ||
1558 | fill2 "#FFFFFF" | ||
1559 | outline "#000000" | ||
1560 | ] | ||
1561 | LabelGraphics | ||
1562 | [ | ||
1563 | text "o 1" | ||
1564 | outline "#000000" | ||
1565 | fill "#FFFFFF" | ||
1566 | fontSize 16 | ||
1567 | fontName "Monospace" | ||
1568 | autoSizePolicy "node_width" | ||
1569 | anchor "t" | ||
1570 | borderDistance 0.0 | ||
1571 | ] | ||
1572 | LabelGraphics | ||
1573 | [ | ||
1574 | text " | ||
1575 | EModelElement class DefinedPart | ||
1576 | ENamedElement class DefinedPart | ||
1577 | EPackage class DefinedPart | ||
1578 | EModelElement class | ||
1579 | ENamedElement class | ||
1580 | EPackage class | ||
1581 | " | ||
1582 | fontSize 14 | ||
1583 | fontName "Consolas" | ||
1584 | alignment "left" | ||
1585 | anchor "tl" | ||
1586 | borderDistance 6 | ||
1587 | ] | ||
1588 | ] | ||
1589 | |||
1590 | node | ||
1591 | [ | ||
1592 | id 1 | ||
1593 | graphics | ||
1594 | [ | ||
1595 | w 41.800000000000004 | ||
1596 | h 26 | ||
1597 | type "rectangle" | ||
1598 | fill "#FFFFFF" | ||
1599 | fill2 "#FFFFFF" | ||
1600 | outline "#000000" | ||
1601 | ] | ||
1602 | LabelGraphics | ||
1603 | [ | ||
1604 | text "true" | ||
1605 | outline "#000000" | ||
1606 | fill "#FFFFFF" | ||
1607 | fontSize 16 | ||
1608 | fontName "Monospace" | ||
1609 | autoSizePolicy "node_width" | ||
1610 | anchor "t" | ||
1611 | borderDistance 0.0 | ||
1612 | ] | ||
1613 | LabelGraphics | ||
1614 | [ | ||
1615 | text " | ||
1616 | " | ||
1617 | fontSize 14 | ||
1618 | fontName "Consolas" | ||
1619 | alignment "left" | ||
1620 | anchor "tl" | ||
1621 | borderDistance 6 | ||
1622 | ] | ||
1623 | ] | ||
1624 | |||
1625 | node | ||
1626 | [ | ||
1627 | id 2 | ||
1628 | graphics | ||
1629 | [ | ||
1630 | w 50.6 | ||
1631 | h 26 | ||
1632 | type "rectangle" | ||
1633 | fill "#FFFFFF" | ||
1634 | fill2 "#FFFFFF" | ||
1635 | outline "#000000" | ||
1636 | ] | ||
1637 | LabelGraphics | ||
1638 | [ | ||
1639 | text "false" | ||
1640 | outline "#000000" | ||
1641 | fill "#FFFFFF" | ||
1642 | fontSize 16 | ||
1643 | fontName "Monospace" | ||
1644 | autoSizePolicy "node_width" | ||
1645 | anchor "t" | ||
1646 | borderDistance 0.0 | ||
1647 | ] | ||
1648 | LabelGraphics | ||
1649 | [ | ||
1650 | text " | ||
1651 | " | ||
1652 | fontSize 14 | ||
1653 | fontName "Consolas" | ||
1654 | alignment "left" | ||
1655 | anchor "tl" | ||
1656 | borderDistance 6 | ||
1657 | ] | ||
1658 | ] | ||
1659 | |||
1660 | node | ||
1661 | [ | ||
1662 | id 3 | ||
1663 | graphics | ||
1664 | [ | ||
1665 | w 24.200000000000003 | ||
1666 | h 26 | ||
1667 | type "rectangle" | ||
1668 | fill "#FFFFFF" | ||
1669 | fill2 "#FFFFFF" | ||
1670 | outline "#000000" | ||
1671 | ] | ||
1672 | LabelGraphics | ||
1673 | [ | ||
1674 | text "-1" | ||
1675 | outline "#000000" | ||
1676 | fill "#FFFFFF" | ||
1677 | fontSize 16 | ||
1678 | fontName "Monospace" | ||
1679 | autoSizePolicy "node_width" | ||
1680 | anchor "t" | ||
1681 | borderDistance 0.0 | ||
1682 | ] | ||
1683 | LabelGraphics | ||
1684 | [ | ||
1685 | text " | ||
1686 | " | ||
1687 | fontSize 14 | ||
1688 | fontName "Consolas" | ||
1689 | alignment "left" | ||
1690 | anchor "tl" | ||
1691 | borderDistance 6 | ||
1692 | ] | ||
1693 | ] | ||
1694 | |||
1695 | node | ||
1696 | [ | ||
1697 | id 4 | ||
1698 | graphics | ||
1699 | [ | ||
1700 | w 15.400000000000002 | ||
1701 | h 26 | ||
1702 | type "rectangle" | ||
1703 | fill "#FFFFFF" | ||
1704 | fill2 "#FFFFFF" | ||
1705 | outline "#000000" | ||
1706 | ] | ||
1707 | LabelGraphics | ||
1708 | [ | ||
1709 | text "0" | ||
1710 | outline "#000000" | ||
1711 | fill "#FFFFFF" | ||
1712 | fontSize 16 | ||
1713 | fontName "Monospace" | ||
1714 | autoSizePolicy "node_width" | ||
1715 | anchor "t" | ||
1716 | borderDistance 0.0 | ||
1717 | ] | ||
1718 | LabelGraphics | ||
1719 | [ | ||
1720 | text " | ||
1721 | " | ||
1722 | fontSize 14 | ||
1723 | fontName "Consolas" | ||
1724 | alignment "left" | ||
1725 | anchor "tl" | ||
1726 | borderDistance 6 | ||
1727 | ] | ||
1728 | ] | ||
1729 | |||
1730 | node | ||
1731 | [ | ||
1732 | id 5 | ||
1733 | graphics | ||
1734 | [ | ||
1735 | w 15.400000000000002 | ||
1736 | h 26 | ||
1737 | type "rectangle" | ||
1738 | fill "#FFFFFF" | ||
1739 | fill2 "#FFFFFF" | ||
1740 | outline "#000000" | ||
1741 | ] | ||
1742 | LabelGraphics | ||
1743 | [ | ||
1744 | text "1" | ||
1745 | outline "#000000" | ||
1746 | fill "#FFFFFF" | ||
1747 | fontSize 16 | ||
1748 | fontName "Monospace" | ||
1749 | autoSizePolicy "node_width" | ||
1750 | anchor "t" | ||
1751 | borderDistance 0.0 | ||
1752 | ] | ||
1753 | LabelGraphics | ||
1754 | [ | ||
1755 | text " | ||
1756 | " | ||
1757 | fontSize 14 | ||
1758 | fontName "Consolas" | ||
1759 | alignment "left" | ||
1760 | anchor "tl" | ||
1761 | borderDistance 6 | ||
1762 | ] | ||
1763 | ] | ||
1764 | |||
1765 | node | ||
1766 | [ | ||
1767 | id 6 | ||
1768 | graphics | ||
1769 | [ | ||
1770 | w 33.0 | ||
1771 | h 26 | ||
1772 | type "rectangle" | ||
1773 | fill "#FFFFFF" | ||
1774 | fill2 "#FFFFFF" | ||
1775 | outline "#000000" | ||
1776 | ] | ||
1777 | LabelGraphics | ||
1778 | [ | ||
1779 | text ""A"" | ||
1780 | outline "#000000" | ||
1781 | fill "#FFFFFF" | ||
1782 | fontSize 16 | ||
1783 | fontName "Monospace" | ||
1784 | autoSizePolicy "node_width" | ||
1785 | anchor "t" | ||
1786 | borderDistance 0.0 | ||
1787 | ] | ||
1788 | LabelGraphics | ||
1789 | [ | ||
1790 | text " | ||
1791 | " | ||
1792 | fontSize 14 | ||
1793 | fontName "Consolas" | ||
1794 | alignment "left" | ||
1795 | anchor "tl" | ||
1796 | borderDistance 6 | ||
1797 | ] | ||
1798 | ] | ||
1799 | |||
1800 | node | ||
1801 | [ | ||
1802 | id 7 | ||
1803 | graphics | ||
1804 | [ | ||
1805 | w 33.0 | ||
1806 | h 26 | ||
1807 | type "rectangle" | ||
1808 | fill "#FFFFFF" | ||
1809 | fill2 "#FFFFFF" | ||
1810 | outline "#000000" | ||
1811 | ] | ||
1812 | LabelGraphics | ||
1813 | [ | ||
1814 | text ""B"" | ||
1815 | outline "#000000" | ||
1816 | fill "#FFFFFF" | ||
1817 | fontSize 16 | ||
1818 | fontName "Monospace" | ||
1819 | autoSizePolicy "node_width" | ||
1820 | anchor "t" | ||
1821 | borderDistance 0.0 | ||
1822 | ] | ||
1823 | LabelGraphics | ||
1824 | [ | ||
1825 | text " | ||
1826 | " | ||
1827 | fontSize 14 | ||
1828 | fontName "Consolas" | ||
1829 | alignment "left" | ||
1830 | anchor "tl" | ||
1831 | borderDistance 6 | ||
1832 | ] | ||
1833 | ] | ||
1834 | |||
1835 | node | ||
1836 | [ | ||
1837 | id 8 | ||
1838 | graphics | ||
1839 | [ | ||
1840 | w 94.60000000000001 | ||
1841 | h 26 | ||
1842 | type "rectangle" | ||
1843 | fill "#FFFFFF" | ||
1844 | fill2 "#FFFFFF" | ||
1845 | outline "#000000" | ||
1846 | ] | ||
1847 | LabelGraphics | ||
1848 | [ | ||
1849 | text ""nsPrefix"" | ||
1850 | outline "#000000" | ||
1851 | fill "#FFFFFF" | ||
1852 | fontSize 16 | ||
1853 | fontName "Monospace" | ||
1854 | autoSizePolicy "node_width" | ||
1855 | anchor "t" | ||
1856 | borderDistance 0.0 | ||
1857 | ] | ||
1858 | LabelGraphics | ||
1859 | [ | ||
1860 | text " | ||
1861 | " | ||
1862 | fontSize 14 | ||
1863 | fontName "Consolas" | ||
1864 | alignment "left" | ||
1865 | anchor "tl" | ||
1866 | borderDistance 6 | ||
1867 | ] | ||
1868 | ] | ||
1869 | |||
1870 | node | ||
1871 | [ | ||
1872 | id 9 | ||
1873 | graphics | ||
1874 | [ | ||
1875 | w 68.2 | ||
1876 | h 26 | ||
1877 | type "rectangle" | ||
1878 | fill "#FFFFFF" | ||
1879 | fill2 "#FFFFFF" | ||
1880 | outline "#000000" | ||
1881 | ] | ||
1882 | LabelGraphics | ||
1883 | [ | ||
1884 | text ""nsUri"" | ||
1885 | outline "#000000" | ||
1886 | fill "#FFFFFF" | ||
1887 | fontSize 16 | ||
1888 | fontName "Monospace" | ||
1889 | autoSizePolicy "node_width" | ||
1890 | anchor "t" | ||
1891 | borderDistance 0.0 | ||
1892 | ] | ||
1893 | LabelGraphics | ||
1894 | [ | ||
1895 | text " | ||
1896 | " | ||
1897 | fontSize 14 | ||
1898 | fontName "Consolas" | ||
1899 | alignment "left" | ||
1900 | anchor "tl" | ||
1901 | borderDistance 6 | ||
1902 | ] | ||
1903 | ] | ||
1904 | |||
1905 | node | ||
1906 | [ | ||
1907 | id 10 | ||
1908 | graphics | ||
1909 | [ | ||
1910 | w 121.00000000000001 | ||
1911 | h 26 | ||
1912 | type "rectangle" | ||
1913 | fill "#FFFFFF" | ||
1914 | fill2 "#FFFFFF" | ||
1915 | outline "#000000" | ||
1916 | ] | ||
1917 | LabelGraphics | ||
1918 | [ | ||
1919 | text ""packageName"" | ||
1920 | outline "#000000" | ||
1921 | fill "#FFFFFF" | ||
1922 | fontSize 16 | ||
1923 | fontName "Monospace" | ||
1924 | autoSizePolicy "node_width" | ||
1925 | anchor "t" | ||
1926 | borderDistance 0.0 | ||
1927 | ] | ||
1928 | LabelGraphics | ||
1929 | [ | ||
1930 | text " | ||
1931 | " | ||
1932 | fontSize 14 | ||
1933 | fontName "Consolas" | ||
1934 | alignment "left" | ||
1935 | anchor "tl" | ||
1936 | borderDistance 6 | ||
1937 | ] | ||
1938 | ] | ||
1939 | |||
1940 | node | ||
1941 | [ | ||
1942 | id 11 | ||
1943 | graphics | ||
1944 | [ | ||
1945 | w 269.5 | ||
1946 | h 124 | ||
1947 | type "rectangle" | ||
1948 | fill "#FFFFFF" | ||
1949 | fill2 "#FFFFFF" | ||
1950 | outline "#000000" | ||
1951 | ] | ||
1952 | LabelGraphics | ||
1953 | [ | ||
1954 | text "null" | ||
1955 | outline "#000000" | ||
1956 | fill "#FFFFFF" | ||
1957 | fontSize 16 | ||
1958 | fontName "Monospace" | ||
1959 | autoSizePolicy "node_width" | ||
1960 | anchor "t" | ||
1961 | borderDistance 0.0 | ||
1962 | ] | ||
1963 | LabelGraphics | ||
1964 | [ | ||
1965 | text " | ||
1966 | EClassifier class | ||
1967 | EDataType class | ||
1968 | EEnum class | ||
1969 | EModelElement class | ||
1970 | ENamedElement class | ||
1971 | EModelElement class UndefinedPart | ||
1972 | ENamedElement class UndefinedPart | ||
1973 | " | ||
1974 | fontSize 14 | ||
1975 | fontName "Consolas" | ||
1976 | alignment "left" | ||
1977 | anchor "tl" | ||
1978 | borderDistance 6 | ||
1979 | ] | ||
1980 | ] | ||
1981 | |||
1982 | node | ||
1983 | [ | ||
1984 | id 12 | ||
1985 | graphics | ||
1986 | [ | ||
1987 | w 269.5 | ||
1988 | h 110 | ||
1989 | type "rectangle" | ||
1990 | fill "#FFFFFF" | ||
1991 | fill2 "#FFFFFF" | ||
1992 | outline "#000000" | ||
1993 | ] | ||
1994 | LabelGraphics | ||
1995 | [ | ||
1996 | text "null" | ||
1997 | outline "#000000" | ||
1998 | fill "#FFFFFF" | ||
1999 | fontSize 16 | ||
2000 | fontName "Monospace" | ||
2001 | autoSizePolicy "node_width" | ||
2002 | anchor "t" | ||
2003 | borderDistance 0.0 | ||
2004 | ] | ||
2005 | LabelGraphics | ||
2006 | [ | ||
2007 | text " | ||
2008 | EClassifier class | ||
2009 | EDataType class | ||
2010 | EModelElement class | ||
2011 | ENamedElement class | ||
2012 | EModelElement class UndefinedPart | ||
2013 | ENamedElement class UndefinedPart | ||
2014 | " | ||
2015 | fontSize 14 | ||
2016 | fontName "Consolas" | ||
2017 | alignment "left" | ||
2018 | anchor "tl" | ||
2019 | borderDistance 6 | ||
2020 | ] | ||
2021 | ] | ||
2022 | |||
2023 | node | ||
2024 | [ | ||
2025 | id 13 | ||
2026 | graphics | ||
2027 | [ | ||
2028 | w 269.5 | ||
2029 | h 68 | ||
2030 | type "rectangle" | ||
2031 | fill "#FFFFFF" | ||
2032 | fill2 "#FFFFFF" | ||
2033 | outline "#000000" | ||
2034 | ] | ||
2035 | LabelGraphics | ||
2036 | [ | ||
2037 | text "null" | ||
2038 | outline "#000000" | ||
2039 | fill "#FFFFFF" | ||
2040 | fontSize 16 | ||
2041 | fontName "Monospace" | ||
2042 | autoSizePolicy "node_width" | ||
2043 | anchor "t" | ||
2044 | borderDistance 0.0 | ||
2045 | ] | ||
2046 | LabelGraphics | ||
2047 | [ | ||
2048 | text " | ||
2049 | EAnnotation class | ||
2050 | EModelElement class | ||
2051 | EModelElement class UndefinedPart | ||
2052 | " | ||
2053 | fontSize 14 | ||
2054 | fontName "Consolas" | ||
2055 | alignment "left" | ||
2056 | anchor "tl" | ||
2057 | borderDistance 6 | ||
2058 | ] | ||
2059 | ] | ||
2060 | |||
2061 | node | ||
2062 | [ | ||
2063 | id 14 | ||
2064 | graphics | ||
2065 | [ | ||
2066 | w 269.5 | ||
2067 | h 124 | ||
2068 | type "rectangle" | ||
2069 | fill "#FFFFFF" | ||
2070 | fill2 "#FFFFFF" | ||
2071 | outline "#000000" | ||
2072 | ] | ||
2073 | LabelGraphics | ||
2074 | [ | ||
2075 | text "null" | ||
2076 | outline "#000000" | ||
2077 | fill "#FFFFFF" | ||
2078 | fontSize 16 | ||
2079 | fontName "Monospace" | ||
2080 | autoSizePolicy "node_width" | ||
2081 | anchor "t" | ||
2082 | borderDistance 0.0 | ||
2083 | ] | ||
2084 | LabelGraphics | ||
2085 | [ | ||
2086 | text " | ||
2087 | EClassifier class | ||
2088 | EDataType class | ||
2089 | EEnum class | ||
2090 | EModelElement class | ||
2091 | ENamedElement class | ||
2092 | EModelElement class UndefinedPart | ||
2093 | ENamedElement class UndefinedPart | ||
2094 | " | ||
2095 | fontSize 14 | ||
2096 | fontName "Consolas" | ||
2097 | alignment "left" | ||
2098 | anchor "tl" | ||
2099 | borderDistance 6 | ||
2100 | ] | ||
2101 | ] | ||
2102 | |||
2103 | node | ||
2104 | [ | ||
2105 | id 15 | ||
2106 | graphics | ||
2107 | [ | ||
2108 | w 269.5 | ||
2109 | h 96 | ||
2110 | type "rectangle" | ||
2111 | fill "#FFFFFF" | ||
2112 | fill2 "#FFFFFF" | ||
2113 | outline "#000000" | ||
2114 | ] | ||
2115 | LabelGraphics | ||
2116 | [ | ||
2117 | text "null" | ||
2118 | outline "#000000" | ||
2119 | fill "#FFFFFF" | ||
2120 | fontSize 16 | ||
2121 | fontName "Monospace" | ||
2122 | autoSizePolicy "node_width" | ||
2123 | anchor "t" | ||
2124 | borderDistance 0.0 | ||
2125 | ] | ||
2126 | LabelGraphics | ||
2127 | [ | ||
2128 | text " | ||
2129 | EEnumLiteral class | ||
2130 | EModelElement class | ||
2131 | ENamedElement class | ||
2132 | EModelElement class UndefinedPart | ||
2133 | ENamedElement class UndefinedPart | ||
2134 | " | ||
2135 | fontSize 14 | ||
2136 | fontName "Consolas" | ||
2137 | alignment "left" | ||
2138 | anchor "tl" | ||
2139 | borderDistance 6 | ||
2140 | ] | ||
2141 | ] | ||
2142 | |||
2143 | node | ||
2144 | [ | ||
2145 | id 16 | ||
2146 | graphics | ||
2147 | [ | ||
2148 | w 112.2 | ||
2149 | h 26 | ||
2150 | type "rectangle" | ||
2151 | fill "#FFFFFF" | ||
2152 | fill2 "#FFFFFF" | ||
2153 | outline "#000000" | ||
2154 | ] | ||
2155 | LabelGraphics | ||
2156 | [ | ||
2157 | text "New Integers" | ||
2158 | outline "#000000" | ||
2159 | fill "#FFFFFF" | ||
2160 | fontSize 16 | ||
2161 | fontName "Monospace" | ||
2162 | autoSizePolicy "node_width" | ||
2163 | anchor "t" | ||
2164 | borderDistance 0.0 | ||
2165 | ] | ||
2166 | LabelGraphics | ||
2167 | [ | ||
2168 | text " | ||
2169 | " | ||
2170 | fontSize 14 | ||
2171 | fontName "Consolas" | ||
2172 | alignment "left" | ||
2173 | anchor "tl" | ||
2174 | borderDistance 6 | ||
2175 | ] | ||
2176 | ] | ||
2177 | |||
2178 | node | ||
2179 | [ | ||
2180 | id 17 | ||
2181 | graphics | ||
2182 | [ | ||
2183 | w 85.80000000000001 | ||
2184 | h 26 | ||
2185 | type "rectangle" | ||
2186 | fill "#FFFFFF" | ||
2187 | fill2 "#FFFFFF" | ||
2188 | outline "#000000" | ||
2189 | ] | ||
2190 | LabelGraphics | ||
2191 | [ | ||
2192 | text "New Reals" | ||
2193 | outline "#000000" | ||
2194 | fill "#FFFFFF" | ||
2195 | fontSize 16 | ||
2196 | fontName "Monospace" | ||
2197 | autoSizePolicy "node_width" | ||
2198 | anchor "t" | ||
2199 | borderDistance 0.0 | ||
2200 | ] | ||
2201 | LabelGraphics | ||
2202 | [ | ||
2203 | text " | ||
2204 | " | ||
2205 | fontSize 14 | ||
2206 | fontName "Consolas" | ||
2207 | alignment "left" | ||
2208 | anchor "tl" | ||
2209 | borderDistance 6 | ||
2210 | ] | ||
2211 | ] | ||
2212 | |||
2213 | node | ||
2214 | [ | ||
2215 | id 18 | ||
2216 | graphics | ||
2217 | [ | ||
2218 | w 103.4 | ||
2219 | h 26 | ||
2220 | type "rectangle" | ||
2221 | fill "#FFFFFF" | ||
2222 | fill2 "#FFFFFF" | ||
2223 | outline "#000000" | ||
2224 | ] | ||
2225 | LabelGraphics | ||
2226 | [ | ||
2227 | text "New Strings" | ||
2228 | outline "#000000" | ||
2229 | fill "#FFFFFF" | ||
2230 | fontSize 16 | ||
2231 | fontName "Monospace" | ||
2232 | autoSizePolicy "node_width" | ||
2233 | anchor "t" | ||
2234 | borderDistance 0.0 | ||
2235 | ] | ||
2236 | LabelGraphics | ||
2237 | [ | ||
2238 | text " | ||
2239 | " | ||
2240 | fontSize 14 | ||
2241 | fontName "Consolas" | ||
2242 | alignment "left" | ||
2243 | anchor "tl" | ||
2244 | borderDistance 6 | ||
2245 | ] | ||
2246 | ] | ||
2247 | |||
2248 | node | ||
2249 | [ | ||
2250 | id 19 | ||
2251 | graphics | ||
2252 | [ | ||
2253 | w 103.4 | ||
2254 | h 26 | ||
2255 | type "rectangle" | ||
2256 | fill "#FFFFFF" | ||
2257 | fill2 "#FFFFFF" | ||
2258 | outline "#000000" | ||
2259 | ] | ||
2260 | LabelGraphics | ||
2261 | [ | ||
2262 | text "New Objects" | ||
2263 | outline "#000000" | ||
2264 | fill "#FFFFFF" | ||
2265 | fontSize 16 | ||
2266 | fontName "Monospace" | ||
2267 | autoSizePolicy "node_width" | ||
2268 | anchor "t" | ||
2269 | borderDistance 0.0 | ||
2270 | ] | ||
2271 | LabelGraphics | ||
2272 | [ | ||
2273 | text " | ||
2274 | " | ||
2275 | fontSize 14 | ||
2276 | fontName "Consolas" | ||
2277 | alignment "left" | ||
2278 | anchor "tl" | ||
2279 | borderDistance 6 | ||
2280 | ] | ||
2281 | ] | ||
2282 | edge | ||
2283 | [ | ||
2284 | source 13 | ||
2285 | target 0 | ||
2286 | graphics | ||
2287 | [ | ||
2288 | fill "#000000" | ||
2289 | targetArrow "standard" | ||
2290 | ] | ||
2291 | LabelGraphics | ||
2292 | [ | ||
2293 | text "eModelElement reference EAnnotation" | ||
2294 | fontSize 14 | ||
2295 | fontName "Consolas" | ||
2296 | configuration "AutoFlippingLabel" | ||
2297 | model "six_pos" | ||
2298 | position "thead" | ||
2299 | ] | ||
2300 | ] | ||
2301 | edge | ||
2302 | [ | ||
2303 | source 11 | ||
2304 | target 0 | ||
2305 | graphics | ||
2306 | [ | ||
2307 | fill "#000000" | ||
2308 | targetArrow "standard" | ||
2309 | ] | ||
2310 | LabelGraphics | ||
2311 | [ | ||
2312 | text "ePackage reference EClassifier" | ||
2313 | fontSize 14 | ||
2314 | fontName "Consolas" | ||
2315 | configuration "AutoFlippingLabel" | ||
2316 | model "six_pos" | ||
2317 | position "thead" | ||
2318 | ] | ||
2319 | ] | ||
2320 | edge | ||
2321 | [ | ||
2322 | source 12 | ||
2323 | target 0 | ||
2324 | graphics | ||
2325 | [ | ||
2326 | fill "#000000" | ||
2327 | targetArrow "standard" | ||
2328 | ] | ||
2329 | LabelGraphics | ||
2330 | [ | ||
2331 | text "ePackage reference EClassifier" | ||
2332 | fontSize 14 | ||
2333 | fontName "Consolas" | ||
2334 | configuration "AutoFlippingLabel" | ||
2335 | model "six_pos" | ||
2336 | position "thead" | ||
2337 | ] | ||
2338 | ] | ||
2339 | edge | ||
2340 | [ | ||
2341 | source 14 | ||
2342 | target 0 | ||
2343 | graphics | ||
2344 | [ | ||
2345 | fill "#000000" | ||
2346 | targetArrow "standard" | ||
2347 | ] | ||
2348 | LabelGraphics | ||
2349 | [ | ||
2350 | text "ePackage reference EClassifier" | ||
2351 | fontSize 14 | ||
2352 | fontName "Consolas" | ||
2353 | configuration "AutoFlippingLabel" | ||
2354 | model "six_pos" | ||
2355 | position "thead" | ||
2356 | ] | ||
2357 | ] | ||
2358 | edge | ||
2359 | [ | ||
2360 | source 14 | ||
2361 | target 15 | ||
2362 | graphics | ||
2363 | [ | ||
2364 | fill "#000000" | ||
2365 | width 3 | ||
2366 | targetArrow "standard" | ||
2367 | ] | ||
2368 | LabelGraphics | ||
2369 | [ | ||
2370 | text "eLiterals reference EEnum" | ||
2371 | fontSize 14 | ||
2372 | fontName "Consolas" | ||
2373 | configuration "AutoFlippingLabel" | ||
2374 | model "six_pos" | ||
2375 | position "thead" | ||
2376 | ] | ||
2377 | ] | ||
2378 | edge | ||
2379 | [ | ||
2380 | source 15 | ||
2381 | target 14 | ||
2382 | graphics | ||
2383 | [ | ||
2384 | fill "#000000" | ||
2385 | targetArrow "standard" | ||
2386 | ] | ||
2387 | LabelGraphics | ||
2388 | [ | ||
2389 | text "eEnum reference EEnumLiteral" | ||
2390 | fontSize 14 | ||
2391 | fontName "Consolas" | ||
2392 | configuration "AutoFlippingLabel" | ||
2393 | model "six_pos" | ||
2394 | position "thead" | ||
2395 | ] | ||
2396 | ] | ||
2397 | edge | ||
2398 | [ | ||
2399 | source 0 | ||
2400 | target 13 | ||
2401 | graphics | ||
2402 | [ | ||
2403 | fill "#000000" | ||
2404 | width 3 | ||
2405 | targetArrow "standard" | ||
2406 | ] | ||
2407 | LabelGraphics | ||
2408 | [ | ||
2409 | text "eAnnotations reference EModelElement" | ||
2410 | fontSize 14 | ||
2411 | fontName "Consolas" | ||
2412 | configuration "AutoFlippingLabel" | ||
2413 | model "six_pos" | ||
2414 | position "thead" | ||
2415 | ] | ||
2416 | ] | ||
2417 | edge | ||
2418 | [ | ||
2419 | source 0 | ||
2420 | target 11 | ||
2421 | graphics | ||
2422 | [ | ||
2423 | fill "#000000" | ||
2424 | width 3 | ||
2425 | targetArrow "standard" | ||
2426 | ] | ||
2427 | LabelGraphics | ||
2428 | [ | ||
2429 | text "eClassifiers reference EPackage" | ||
2430 | fontSize 14 | ||
2431 | fontName "Consolas" | ||
2432 | configuration "AutoFlippingLabel" | ||
2433 | model "six_pos" | ||
2434 | position "thead" | ||
2435 | ] | ||
2436 | ] | ||
2437 | edge | ||
2438 | [ | ||
2439 | source 0 | ||
2440 | target 12 | ||
2441 | graphics | ||
2442 | [ | ||
2443 | fill "#000000" | ||
2444 | width 3 | ||
2445 | targetArrow "standard" | ||
2446 | ] | ||
2447 | LabelGraphics | ||
2448 | [ | ||
2449 | text "eClassifiers reference EPackage" | ||
2450 | fontSize 14 | ||
2451 | fontName "Consolas" | ||
2452 | configuration "AutoFlippingLabel" | ||
2453 | model "six_pos" | ||
2454 | position "thead" | ||
2455 | ] | ||
2456 | ] | ||
2457 | edge | ||
2458 | [ | ||
2459 | source 0 | ||
2460 | target 14 | ||
2461 | graphics | ||
2462 | [ | ||
2463 | fill "#000000" | ||
2464 | width 3 | ||
2465 | targetArrow "standard" | ||
2466 | ] | ||
2467 | LabelGraphics | ||
2468 | [ | ||
2469 | text "eClassifiers reference EPackage" | ||
2470 | fontSize 14 | ||
2471 | fontName "Consolas" | ||
2472 | configuration "AutoFlippingLabel" | ||
2473 | model "six_pos" | ||
2474 | position "thead" | ||
2475 | ] | ||
2476 | ] | ||
2477 | edge | ||
2478 | [ | ||
2479 | source 13 | ||
2480 | target 9 | ||
2481 | graphics | ||
2482 | [ | ||
2483 | fill "#000000" | ||
2484 | targetArrow "standard" | ||
2485 | ] | ||
2486 | LabelGraphics | ||
2487 | [ | ||
2488 | text "source attribute EAnnotation" | ||
2489 | fontSize 14 | ||
2490 | fontName "Consolas" | ||
2491 | configuration "AutoFlippingLabel" | ||
2492 | model "six_pos" | ||
2493 | position "thead" | ||
2494 | ] | ||
2495 | ] | ||
2496 | edge | ||
2497 | [ | ||
2498 | source 11 | ||
2499 | target 6 | ||
2500 | graphics | ||
2501 | [ | ||
2502 | fill "#000000" | ||
2503 | targetArrow "standard" | ||
2504 | ] | ||
2505 | LabelGraphics | ||
2506 | [ | ||
2507 | text "instanceClassName attribute EClassifier" | ||
2508 | fontSize 14 | ||
2509 | fontName "Consolas" | ||
2510 | configuration "AutoFlippingLabel" | ||
2511 | model "six_pos" | ||
2512 | position "thead" | ||
2513 | ] | ||
2514 | ] | ||
2515 | edge | ||
2516 | [ | ||
2517 | source 12 | ||
2518 | target 10 | ||
2519 | graphics | ||
2520 | [ | ||
2521 | fill "#000000" | ||
2522 | targetArrow "standard" | ||
2523 | ] | ||
2524 | LabelGraphics | ||
2525 | [ | ||
2526 | text "instanceTypeName attribute EClassifier" | ||
2527 | fontSize 14 | ||
2528 | fontName "Consolas" | ||
2529 | configuration "AutoFlippingLabel" | ||
2530 | model "six_pos" | ||
2531 | position "thead" | ||
2532 | ] | ||
2533 | ] | ||
2534 | edge | ||
2535 | [ | ||
2536 | source 14 | ||
2537 | target 8 | ||
2538 | graphics | ||
2539 | [ | ||
2540 | fill "#000000" | ||
2541 | targetArrow "standard" | ||
2542 | ] | ||
2543 | LabelGraphics | ||
2544 | [ | ||
2545 | text "instanceTypeName attribute EClassifier" | ||
2546 | fontSize 14 | ||
2547 | fontName "Consolas" | ||
2548 | configuration "AutoFlippingLabel" | ||
2549 | model "six_pos" | ||
2550 | position "thead" | ||
2551 | ] | ||
2552 | ] | ||
2553 | edge | ||
2554 | [ | ||
2555 | source 12 | ||
2556 | target 2 | ||
2557 | graphics | ||
2558 | [ | ||
2559 | fill "#000000" | ||
2560 | targetArrow "standard" | ||
2561 | ] | ||
2562 | LabelGraphics | ||
2563 | [ | ||
2564 | text "serializable attribute EDataType" | ||
2565 | fontSize 14 | ||
2566 | fontName "Consolas" | ||
2567 | configuration "AutoFlippingLabel" | ||
2568 | model "six_pos" | ||
2569 | position "thead" | ||
2570 | ] | ||
2571 | ] | ||
2572 | edge | ||
2573 | [ | ||
2574 | source 14 | ||
2575 | target 2 | ||
2576 | graphics | ||
2577 | [ | ||
2578 | fill "#000000" | ||
2579 | targetArrow "standard" | ||
2580 | ] | ||
2581 | LabelGraphics | ||
2582 | [ | ||
2583 | text "serializable attribute EDataType" | ||
2584 | fontSize 14 | ||
2585 | fontName "Consolas" | ||
2586 | configuration "AutoFlippingLabel" | ||
2587 | model "six_pos" | ||
2588 | position "thead" | ||
2589 | ] | ||
2590 | ] | ||
2591 | edge | ||
2592 | [ | ||
2593 | source 11 | ||
2594 | target 1 | ||
2595 | graphics | ||
2596 | [ | ||
2597 | fill "#000000" | ||
2598 | targetArrow "standard" | ||
2599 | ] | ||
2600 | LabelGraphics | ||
2601 | [ | ||
2602 | text "serializable attribute EDataType" | ||
2603 | fontSize 14 | ||
2604 | fontName "Consolas" | ||
2605 | configuration "AutoFlippingLabel" | ||
2606 | model "six_pos" | ||
2607 | position "thead" | ||
2608 | ] | ||
2609 | ] | ||
2610 | edge | ||
2611 | [ | ||
2612 | source 15 | ||
2613 | target 8 | ||
2614 | graphics | ||
2615 | [ | ||
2616 | fill "#000000" | ||
2617 | targetArrow "standard" | ||
2618 | ] | ||
2619 | LabelGraphics | ||
2620 | [ | ||
2621 | text "literal attribute EEnumLiteral" | ||
2622 | fontSize 14 | ||
2623 | fontName "Consolas" | ||
2624 | configuration "AutoFlippingLabel" | ||
2625 | model "six_pos" | ||
2626 | position "thead" | ||
2627 | ] | ||
2628 | ] | ||
2629 | edge | ||
2630 | [ | ||
2631 | source 0 | ||
2632 | target 10 | ||
2633 | graphics | ||
2634 | [ | ||
2635 | fill "#000000" | ||
2636 | targetArrow "standard" | ||
2637 | ] | ||
2638 | LabelGraphics | ||
2639 | [ | ||
2640 | text "name attribute ENamedElement" | ||
2641 | fontSize 14 | ||
2642 | fontName "Consolas" | ||
2643 | configuration "AutoFlippingLabel" | ||
2644 | model "six_pos" | ||
2645 | position "thead" | ||
2646 | ] | ||
2647 | ] | ||
2648 | edge | ||
2649 | [ | ||
2650 | source 11 | ||
2651 | target 10 | ||
2652 | graphics | ||
2653 | [ | ||
2654 | fill "#000000" | ||
2655 | targetArrow "standard" | ||
2656 | ] | ||
2657 | LabelGraphics | ||
2658 | [ | ||
2659 | text "name attribute ENamedElement" | ||
2660 | fontSize 14 | ||
2661 | fontName "Consolas" | ||
2662 | configuration "AutoFlippingLabel" | ||
2663 | model "six_pos" | ||
2664 | position "thead" | ||
2665 | ] | ||
2666 | ] | ||
2667 | edge | ||
2668 | [ | ||
2669 | source 12 | ||
2670 | target 9 | ||
2671 | graphics | ||
2672 | [ | ||
2673 | fill "#000000" | ||
2674 | targetArrow "standard" | ||
2675 | ] | ||
2676 | LabelGraphics | ||
2677 | [ | ||
2678 | text "name attribute ENamedElement" | ||
2679 | fontSize 14 | ||
2680 | fontName "Consolas" | ||
2681 | configuration "AutoFlippingLabel" | ||
2682 | model "six_pos" | ||
2683 | position "thead" | ||
2684 | ] | ||
2685 | ] | ||
2686 | edge | ||
2687 | [ | ||
2688 | source 14 | ||
2689 | target 9 | ||
2690 | graphics | ||
2691 | [ | ||
2692 | fill "#000000" | ||
2693 | targetArrow "standard" | ||
2694 | ] | ||
2695 | LabelGraphics | ||
2696 | [ | ||
2697 | text "name attribute ENamedElement" | ||
2698 | fontSize 14 | ||
2699 | fontName "Consolas" | ||
2700 | configuration "AutoFlippingLabel" | ||
2701 | model "six_pos" | ||
2702 | position "thead" | ||
2703 | ] | ||
2704 | ] | ||
2705 | edge | ||
2706 | [ | ||
2707 | source 0 | ||
2708 | target 9 | ||
2709 | graphics | ||
2710 | [ | ||
2711 | fill "#000000" | ||
2712 | targetArrow "standard" | ||
2713 | ] | ||
2714 | LabelGraphics | ||
2715 | [ | ||
2716 | text "nsURI attribute EPackage" | ||
2717 | fontSize 14 | ||
2718 | fontName "Consolas" | ||
2719 | configuration "AutoFlippingLabel" | ||
2720 | model "six_pos" | ||
2721 | position "thead" | ||
2722 | ] | ||
2723 | ] | ||
2724 | edge | ||
2725 | [ | ||
2726 | source 0 | ||
2727 | target 8 | ||
2728 | graphics | ||
2729 | [ | ||
2730 | fill "#000000" | ||
2731 | targetArrow "standard" | ||
2732 | ] | ||
2733 | LabelGraphics | ||
2734 | [ | ||
2735 | text "nsPrefix attribute EPackage" | ||
2736 | fontSize 14 | ||
2737 | fontName "Consolas" | ||
2738 | configuration "AutoFlippingLabel" | ||
2739 | model "six_pos" | ||
2740 | position "thead" | ||
2741 | ] | ||
2742 | ] | ||
2743 | ] | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/4.png b/Tests/Ecore-Plugin/outputs/models/4.png new file mode 100644 index 00000000..ae461ce6 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/4.png | |||
Binary files differ | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/4.xmi b/Tests/Ecore-Plugin/outputs/models/4.xmi new file mode 100644 index 00000000..dba5a3f6 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/4.xmi | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> | ||
3 | <eAnnotations source="packageName"> | ||
4 | <details/> | ||
5 | <details/> | ||
6 | <details/> | ||
7 | <contents/> | ||
8 | </eAnnotations> | ||
9 | </ecore:EPackage> | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/5.gml b/Tests/Ecore-Plugin/outputs/models/5.gml new file mode 100644 index 00000000..7eedbcf9 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/5.gml | |||
@@ -0,0 +1,2781 @@ | |||
1 | graph | ||
2 | [ | ||
3 | node | ||
4 | [ | ||
5 | id 0 | ||
6 | graphics | ||
7 | [ | ||
8 | w 254.10000000000002 | ||
9 | h 110 | ||
10 | type "rectangle" | ||
11 | fill "#FFFFFF" | ||
12 | fill2 "#FFFFFF" | ||
13 | outline "#000000" | ||
14 | ] | ||
15 | LabelGraphics | ||
16 | [ | ||
17 | text "o 1" | ||
18 | outline "#000000" | ||
19 | fill "#FFFFFF" | ||
20 | fontSize 16 | ||
21 | fontName "Monospace" | ||
22 | autoSizePolicy "node_width" | ||
23 | anchor "t" | ||
24 | borderDistance 0.0 | ||
25 | ] | ||
26 | LabelGraphics | ||
27 | [ | ||
28 | text " | ||
29 | EModelElement class DefinedPart | ||
30 | ENamedElement class DefinedPart | ||
31 | EPackage class DefinedPart | ||
32 | EModelElement class | ||
33 | ENamedElement class | ||
34 | EPackage class | ||
35 | " | ||
36 | fontSize 14 | ||
37 | fontName "Consolas" | ||
38 | alignment "left" | ||
39 | anchor "tl" | ||
40 | borderDistance 6 | ||
41 | ] | ||
42 | ] | ||
43 | |||
44 | node | ||
45 | [ | ||
46 | id 1 | ||
47 | graphics | ||
48 | [ | ||
49 | w 41.800000000000004 | ||
50 | h 26 | ||
51 | type "rectangle" | ||
52 | fill "#FFFFFF" | ||
53 | fill2 "#FFFFFF" | ||
54 | outline "#000000" | ||
55 | ] | ||
56 | LabelGraphics | ||
57 | [ | ||
58 | text "true" | ||
59 | outline "#000000" | ||
60 | fill "#FFFFFF" | ||
61 | fontSize 16 | ||
62 | fontName "Monospace" | ||
63 | autoSizePolicy "node_width" | ||
64 | anchor "t" | ||
65 | borderDistance 0.0 | ||
66 | ] | ||
67 | LabelGraphics | ||
68 | [ | ||
69 | text " | ||
70 | " | ||
71 | fontSize 14 | ||
72 | fontName "Consolas" | ||
73 | alignment "left" | ||
74 | anchor "tl" | ||
75 | borderDistance 6 | ||
76 | ] | ||
77 | ] | ||
78 | |||
79 | node | ||
80 | [ | ||
81 | id 2 | ||
82 | graphics | ||
83 | [ | ||
84 | w 50.6 | ||
85 | h 26 | ||
86 | type "rectangle" | ||
87 | fill "#FFFFFF" | ||
88 | fill2 "#FFFFFF" | ||
89 | outline "#000000" | ||
90 | ] | ||
91 | LabelGraphics | ||
92 | [ | ||
93 | text "false" | ||
94 | outline "#000000" | ||
95 | fill "#FFFFFF" | ||
96 | fontSize 16 | ||
97 | fontName "Monospace" | ||
98 | autoSizePolicy "node_width" | ||
99 | anchor "t" | ||
100 | borderDistance 0.0 | ||
101 | ] | ||
102 | LabelGraphics | ||
103 | [ | ||
104 | text " | ||
105 | " | ||
106 | fontSize 14 | ||
107 | fontName "Consolas" | ||
108 | alignment "left" | ||
109 | anchor "tl" | ||
110 | borderDistance 6 | ||
111 | ] | ||
112 | ] | ||
113 | |||
114 | node | ||
115 | [ | ||
116 | id 3 | ||
117 | graphics | ||
118 | [ | ||
119 | w 24.200000000000003 | ||
120 | h 26 | ||
121 | type "rectangle" | ||
122 | fill "#FFFFFF" | ||
123 | fill2 "#FFFFFF" | ||
124 | outline "#000000" | ||
125 | ] | ||
126 | LabelGraphics | ||
127 | [ | ||
128 | text "-1" | ||
129 | outline "#000000" | ||
130 | fill "#FFFFFF" | ||
131 | fontSize 16 | ||
132 | fontName "Monospace" | ||
133 | autoSizePolicy "node_width" | ||
134 | anchor "t" | ||
135 | borderDistance 0.0 | ||
136 | ] | ||
137 | LabelGraphics | ||
138 | [ | ||
139 | text " | ||
140 | " | ||
141 | fontSize 14 | ||
142 | fontName "Consolas" | ||
143 | alignment "left" | ||
144 | anchor "tl" | ||
145 | borderDistance 6 | ||
146 | ] | ||
147 | ] | ||
148 | |||
149 | node | ||
150 | [ | ||
151 | id 4 | ||
152 | graphics | ||
153 | [ | ||
154 | w 15.400000000000002 | ||
155 | h 26 | ||
156 | type "rectangle" | ||
157 | fill "#FFFFFF" | ||
158 | fill2 "#FFFFFF" | ||
159 | outline "#000000" | ||
160 | ] | ||
161 | LabelGraphics | ||
162 | [ | ||
163 | text "0" | ||
164 | outline "#000000" | ||
165 | fill "#FFFFFF" | ||
166 | fontSize 16 | ||
167 | fontName "Monospace" | ||
168 | autoSizePolicy "node_width" | ||
169 | anchor "t" | ||
170 | borderDistance 0.0 | ||
171 | ] | ||
172 | LabelGraphics | ||
173 | [ | ||
174 | text " | ||
175 | " | ||
176 | fontSize 14 | ||
177 | fontName "Consolas" | ||
178 | alignment "left" | ||
179 | anchor "tl" | ||
180 | borderDistance 6 | ||
181 | ] | ||
182 | ] | ||
183 | |||
184 | node | ||
185 | [ | ||
186 | id 5 | ||
187 | graphics | ||
188 | [ | ||
189 | w 15.400000000000002 | ||
190 | h 26 | ||
191 | type "rectangle" | ||
192 | fill "#FFFFFF" | ||
193 | fill2 "#FFFFFF" | ||
194 | outline "#000000" | ||
195 | ] | ||
196 | LabelGraphics | ||
197 | [ | ||
198 | text "1" | ||
199 | outline "#000000" | ||
200 | fill "#FFFFFF" | ||
201 | fontSize 16 | ||
202 | fontName "Monospace" | ||
203 | autoSizePolicy "node_width" | ||
204 | anchor "t" | ||
205 | borderDistance 0.0 | ||
206 | ] | ||
207 | LabelGraphics | ||
208 | [ | ||
209 | text " | ||
210 | " | ||
211 | fontSize 14 | ||
212 | fontName "Consolas" | ||
213 | alignment "left" | ||
214 | anchor "tl" | ||
215 | borderDistance 6 | ||
216 | ] | ||
217 | ] | ||
218 | |||
219 | node | ||
220 | [ | ||
221 | id 6 | ||
222 | graphics | ||
223 | [ | ||
224 | w 33.0 | ||
225 | h 26 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text ""A"" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | " | ||
246 | fontSize 14 | ||
247 | fontName "Consolas" | ||
248 | alignment "left" | ||
249 | anchor "tl" | ||
250 | borderDistance 6 | ||
251 | ] | ||
252 | ] | ||
253 | |||
254 | node | ||
255 | [ | ||
256 | id 7 | ||
257 | graphics | ||
258 | [ | ||
259 | w 33.0 | ||
260 | h 26 | ||
261 | type "rectangle" | ||
262 | fill "#FFFFFF" | ||
263 | fill2 "#FFFFFF" | ||
264 | outline "#000000" | ||
265 | ] | ||
266 | LabelGraphics | ||
267 | [ | ||
268 | text ""B"" | ||
269 | outline "#000000" | ||
270 | fill "#FFFFFF" | ||
271 | fontSize 16 | ||
272 | fontName "Monospace" | ||
273 | autoSizePolicy "node_width" | ||
274 | anchor "t" | ||
275 | borderDistance 0.0 | ||
276 | ] | ||
277 | LabelGraphics | ||
278 | [ | ||
279 | text " | ||
280 | " | ||
281 | fontSize 14 | ||
282 | fontName "Consolas" | ||
283 | alignment "left" | ||
284 | anchor "tl" | ||
285 | borderDistance 6 | ||
286 | ] | ||
287 | ] | ||
288 | |||
289 | node | ||
290 | [ | ||
291 | id 8 | ||
292 | graphics | ||
293 | [ | ||
294 | w 269.5 | ||
295 | h 68 | ||
296 | type "rectangle" | ||
297 | fill "#FFFFFF" | ||
298 | fill2 "#FFFFFF" | ||
299 | outline "#000000" | ||
300 | ] | ||
301 | LabelGraphics | ||
302 | [ | ||
303 | text "null" | ||
304 | outline "#000000" | ||
305 | fill "#FFFFFF" | ||
306 | fontSize 16 | ||
307 | fontName "Monospace" | ||
308 | autoSizePolicy "node_width" | ||
309 | anchor "t" | ||
310 | borderDistance 0.0 | ||
311 | ] | ||
312 | LabelGraphics | ||
313 | [ | ||
314 | text " | ||
315 | EAnnotation class | ||
316 | EModelElement class | ||
317 | EModelElement class UndefinedPart | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 269.5 | ||
333 | h 124 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "null" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | EClassifier class | ||
354 | EDataType class | ||
355 | EEnum class | ||
356 | EModelElement class | ||
357 | ENamedElement class | ||
358 | EModelElement class UndefinedPart | ||
359 | ENamedElement class UndefinedPart | ||
360 | " | ||
361 | fontSize 14 | ||
362 | fontName "Consolas" | ||
363 | alignment "left" | ||
364 | anchor "tl" | ||
365 | borderDistance 6 | ||
366 | ] | ||
367 | ] | ||
368 | |||
369 | node | ||
370 | [ | ||
371 | id 10 | ||
372 | graphics | ||
373 | [ | ||
374 | w 269.5 | ||
375 | h 68 | ||
376 | type "rectangle" | ||
377 | fill "#FFFFFF" | ||
378 | fill2 "#FFFFFF" | ||
379 | outline "#000000" | ||
380 | ] | ||
381 | LabelGraphics | ||
382 | [ | ||
383 | text "null" | ||
384 | outline "#000000" | ||
385 | fill "#FFFFFF" | ||
386 | fontSize 16 | ||
387 | fontName "Monospace" | ||
388 | autoSizePolicy "node_width" | ||
389 | anchor "t" | ||
390 | borderDistance 0.0 | ||
391 | ] | ||
392 | LabelGraphics | ||
393 | [ | ||
394 | text " | ||
395 | EAnnotation class | ||
396 | EModelElement class | ||
397 | EModelElement class UndefinedPart | ||
398 | " | ||
399 | fontSize 14 | ||
400 | fontName "Consolas" | ||
401 | alignment "left" | ||
402 | anchor "tl" | ||
403 | borderDistance 6 | ||
404 | ] | ||
405 | ] | ||
406 | |||
407 | node | ||
408 | [ | ||
409 | id 11 | ||
410 | graphics | ||
411 | [ | ||
412 | w 269.5 | ||
413 | h 110 | ||
414 | type "rectangle" | ||
415 | fill "#FFFFFF" | ||
416 | fill2 "#FFFFFF" | ||
417 | outline "#000000" | ||
418 | ] | ||
419 | LabelGraphics | ||
420 | [ | ||
421 | text "null" | ||
422 | outline "#000000" | ||
423 | fill "#FFFFFF" | ||
424 | fontSize 16 | ||
425 | fontName "Monospace" | ||
426 | autoSizePolicy "node_width" | ||
427 | anchor "t" | ||
428 | borderDistance 0.0 | ||
429 | ] | ||
430 | LabelGraphics | ||
431 | [ | ||
432 | text " | ||
433 | EClass class | ||
434 | EClassifier class | ||
435 | EModelElement class | ||
436 | ENamedElement class | ||
437 | EModelElement class UndefinedPart | ||
438 | ENamedElement class UndefinedPart | ||
439 | " | ||
440 | fontSize 14 | ||
441 | fontName "Consolas" | ||
442 | alignment "left" | ||
443 | anchor "tl" | ||
444 | borderDistance 6 | ||
445 | ] | ||
446 | ] | ||
447 | |||
448 | node | ||
449 | [ | ||
450 | id 12 | ||
451 | graphics | ||
452 | [ | ||
453 | w 269.5 | ||
454 | h 124 | ||
455 | type "rectangle" | ||
456 | fill "#FFFFFF" | ||
457 | fill2 "#FFFFFF" | ||
458 | outline "#000000" | ||
459 | ] | ||
460 | LabelGraphics | ||
461 | [ | ||
462 | text "null" | ||
463 | outline "#000000" | ||
464 | fill "#FFFFFF" | ||
465 | fontSize 16 | ||
466 | fontName "Monospace" | ||
467 | autoSizePolicy "node_width" | ||
468 | anchor "t" | ||
469 | borderDistance 0.0 | ||
470 | ] | ||
471 | LabelGraphics | ||
472 | [ | ||
473 | text " | ||
474 | EModelElement class | ||
475 | ENamedElement class | ||
476 | EReference class | ||
477 | EStructuralFeature class | ||
478 | ETypedElement class | ||
479 | EModelElement class UndefinedPart | ||
480 | ENamedElement class UndefinedPart | ||
481 | " | ||
482 | fontSize 14 | ||
483 | fontName "Consolas" | ||
484 | alignment "left" | ||
485 | anchor "tl" | ||
486 | borderDistance 6 | ||
487 | ] | ||
488 | ] | ||
489 | |||
490 | node | ||
491 | [ | ||
492 | id 13 | ||
493 | graphics | ||
494 | [ | ||
495 | w 112.2 | ||
496 | h 26 | ||
497 | type "rectangle" | ||
498 | fill "#FFFFFF" | ||
499 | fill2 "#FFFFFF" | ||
500 | outline "#000000" | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text "New Integers" | ||
505 | outline "#000000" | ||
506 | fill "#FFFFFF" | ||
507 | fontSize 16 | ||
508 | fontName "Monospace" | ||
509 | autoSizePolicy "node_width" | ||
510 | anchor "t" | ||
511 | borderDistance 0.0 | ||
512 | ] | ||
513 | LabelGraphics | ||
514 | [ | ||
515 | text " | ||
516 | " | ||
517 | fontSize 14 | ||
518 | fontName "Consolas" | ||
519 | alignment "left" | ||
520 | anchor "tl" | ||
521 | borderDistance 6 | ||
522 | ] | ||
523 | ] | ||
524 | |||
525 | node | ||
526 | [ | ||
527 | id 14 | ||
528 | graphics | ||
529 | [ | ||
530 | w 85.80000000000001 | ||
531 | h 26 | ||
532 | type "rectangle" | ||
533 | fill "#FFFFFF" | ||
534 | fill2 "#FFFFFF" | ||
535 | outline "#000000" | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text "New Reals" | ||
540 | outline "#000000" | ||
541 | fill "#FFFFFF" | ||
542 | fontSize 16 | ||
543 | fontName "Monospace" | ||
544 | autoSizePolicy "node_width" | ||
545 | anchor "t" | ||
546 | borderDistance 0.0 | ||
547 | ] | ||
548 | LabelGraphics | ||
549 | [ | ||
550 | text " | ||
551 | " | ||
552 | fontSize 14 | ||
553 | fontName "Consolas" | ||
554 | alignment "left" | ||
555 | anchor "tl" | ||
556 | borderDistance 6 | ||
557 | ] | ||
558 | ] | ||
559 | |||
560 | node | ||
561 | [ | ||
562 | id 15 | ||
563 | graphics | ||
564 | [ | ||
565 | w 103.4 | ||
566 | h 26 | ||
567 | type "rectangle" | ||
568 | fill "#FFFFFF" | ||
569 | fill2 "#FFFFFF" | ||
570 | outline "#000000" | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text "New Strings" | ||
575 | outline "#000000" | ||
576 | fill "#FFFFFF" | ||
577 | fontSize 16 | ||
578 | fontName "Monospace" | ||
579 | autoSizePolicy "node_width" | ||
580 | anchor "t" | ||
581 | borderDistance 0.0 | ||
582 | ] | ||
583 | LabelGraphics | ||
584 | [ | ||
585 | text " | ||
586 | " | ||
587 | fontSize 14 | ||
588 | fontName "Consolas" | ||
589 | alignment "left" | ||
590 | anchor "tl" | ||
591 | borderDistance 6 | ||
592 | ] | ||
593 | ] | ||
594 | |||
595 | node | ||
596 | [ | ||
597 | id 16 | ||
598 | graphics | ||
599 | [ | ||
600 | w 103.4 | ||
601 | h 26 | ||
602 | type "rectangle" | ||
603 | fill "#FFFFFF" | ||
604 | fill2 "#FFFFFF" | ||
605 | outline "#000000" | ||
606 | ] | ||
607 | LabelGraphics | ||
608 | [ | ||
609 | text "New Objects" | ||
610 | outline "#000000" | ||
611 | fill "#FFFFFF" | ||
612 | fontSize 16 | ||
613 | fontName "Monospace" | ||
614 | autoSizePolicy "node_width" | ||
615 | anchor "t" | ||
616 | borderDistance 0.0 | ||
617 | ] | ||
618 | LabelGraphics | ||
619 | [ | ||
620 | text " | ||
621 | " | ||
622 | fontSize 14 | ||
623 | fontName "Consolas" | ||
624 | alignment "left" | ||
625 | anchor "tl" | ||
626 | borderDistance 6 | ||
627 | ] | ||
628 | ] | ||
629 | edge | ||
630 | [ | ||
631 | source 8 | ||
632 | target 0 | ||
633 | graphics | ||
634 | [ | ||
635 | fill "#000000" | ||
636 | targetArrow "standard" | ||
637 | ] | ||
638 | LabelGraphics | ||
639 | [ | ||
640 | text "eModelElement reference EAnnotation" | ||
641 | fontSize 14 | ||
642 | fontName "Consolas" | ||
643 | configuration "AutoFlippingLabel" | ||
644 | model "six_pos" | ||
645 | position "thead" | ||
646 | ] | ||
647 | ] | ||
648 | edge | ||
649 | [ | ||
650 | source 10 | ||
651 | target 0 | ||
652 | graphics | ||
653 | [ | ||
654 | fill "#000000" | ||
655 | targetArrow "standard" | ||
656 | ] | ||
657 | LabelGraphics | ||
658 | [ | ||
659 | text "eModelElement reference EAnnotation" | ||
660 | fontSize 14 | ||
661 | fontName "Consolas" | ||
662 | configuration "AutoFlippingLabel" | ||
663 | model "six_pos" | ||
664 | position "thead" | ||
665 | ] | ||
666 | ] | ||
667 | edge | ||
668 | [ | ||
669 | source 11 | ||
670 | target 11 | ||
671 | graphics | ||
672 | [ | ||
673 | fill "#000000" | ||
674 | targetArrow "standard" | ||
675 | ] | ||
676 | LabelGraphics | ||
677 | [ | ||
678 | text "eSuperTypes reference EClass" | ||
679 | fontSize 14 | ||
680 | fontName "Consolas" | ||
681 | configuration "AutoFlippingLabel" | ||
682 | model "six_pos" | ||
683 | position "thead" | ||
684 | ] | ||
685 | ] | ||
686 | edge | ||
687 | [ | ||
688 | source 11 | ||
689 | target 12 | ||
690 | graphics | ||
691 | [ | ||
692 | fill "#000000" | ||
693 | targetArrow "standard" | ||
694 | ] | ||
695 | LabelGraphics | ||
696 | [ | ||
697 | text "eAllReferences reference EClass" | ||
698 | fontSize 14 | ||
699 | fontName "Consolas" | ||
700 | configuration "AutoFlippingLabel" | ||
701 | model "six_pos" | ||
702 | position "thead" | ||
703 | ] | ||
704 | ] | ||
705 | edge | ||
706 | [ | ||
707 | source 11 | ||
708 | target 12 | ||
709 | graphics | ||
710 | [ | ||
711 | fill "#000000" | ||
712 | targetArrow "standard" | ||
713 | ] | ||
714 | LabelGraphics | ||
715 | [ | ||
716 | text "eReferences reference EClass" | ||
717 | fontSize 14 | ||
718 | fontName "Consolas" | ||
719 | configuration "AutoFlippingLabel" | ||
720 | model "six_pos" | ||
721 | position "thead" | ||
722 | ] | ||
723 | ] | ||
724 | edge | ||
725 | [ | ||
726 | source 11 | ||
727 | target 12 | ||
728 | graphics | ||
729 | [ | ||
730 | fill "#000000" | ||
731 | targetArrow "standard" | ||
732 | ] | ||
733 | LabelGraphics | ||
734 | [ | ||
735 | text "eAllContainments reference EClass" | ||
736 | fontSize 14 | ||
737 | fontName "Consolas" | ||
738 | configuration "AutoFlippingLabel" | ||
739 | model "six_pos" | ||
740 | position "thead" | ||
741 | ] | ||
742 | ] | ||
743 | edge | ||
744 | [ | ||
745 | source 11 | ||
746 | target 12 | ||
747 | graphics | ||
748 | [ | ||
749 | fill "#000000" | ||
750 | targetArrow "standard" | ||
751 | ] | ||
752 | LabelGraphics | ||
753 | [ | ||
754 | text "eAllStructuralFeatures reference EClass" | ||
755 | fontSize 14 | ||
756 | fontName "Consolas" | ||
757 | configuration "AutoFlippingLabel" | ||
758 | model "six_pos" | ||
759 | position "thead" | ||
760 | ] | ||
761 | ] | ||
762 | edge | ||
763 | [ | ||
764 | source 11 | ||
765 | target 11 | ||
766 | graphics | ||
767 | [ | ||
768 | fill "#000000" | ||
769 | targetArrow "standard" | ||
770 | ] | ||
771 | LabelGraphics | ||
772 | [ | ||
773 | text "eAllSuperTypes reference EClass" | ||
774 | fontSize 14 | ||
775 | fontName "Consolas" | ||
776 | configuration "AutoFlippingLabel" | ||
777 | model "six_pos" | ||
778 | position "thead" | ||
779 | ] | ||
780 | ] | ||
781 | edge | ||
782 | [ | ||
783 | source 11 | ||
784 | target 12 | ||
785 | graphics | ||
786 | [ | ||
787 | fill "#000000" | ||
788 | width 3 | ||
789 | targetArrow "standard" | ||
790 | ] | ||
791 | LabelGraphics | ||
792 | [ | ||
793 | text "eStructuralFeatures reference EClass" | ||
794 | fontSize 14 | ||
795 | fontName "Consolas" | ||
796 | configuration "AutoFlippingLabel" | ||
797 | model "six_pos" | ||
798 | position "thead" | ||
799 | ] | ||
800 | ] | ||
801 | edge | ||
802 | [ | ||
803 | source 9 | ||
804 | target 0 | ||
805 | graphics | ||
806 | [ | ||
807 | fill "#000000" | ||
808 | targetArrow "standard" | ||
809 | ] | ||
810 | LabelGraphics | ||
811 | [ | ||
812 | text "ePackage reference EClassifier" | ||
813 | fontSize 14 | ||
814 | fontName "Consolas" | ||
815 | configuration "AutoFlippingLabel" | ||
816 | model "six_pos" | ||
817 | position "thead" | ||
818 | ] | ||
819 | ] | ||
820 | edge | ||
821 | [ | ||
822 | source 11 | ||
823 | target 0 | ||
824 | graphics | ||
825 | [ | ||
826 | fill "#000000" | ||
827 | targetArrow "standard" | ||
828 | ] | ||
829 | LabelGraphics | ||
830 | [ | ||
831 | text "ePackage reference EClassifier" | ||
832 | fontSize 14 | ||
833 | fontName "Consolas" | ||
834 | configuration "AutoFlippingLabel" | ||
835 | model "six_pos" | ||
836 | position "thead" | ||
837 | ] | ||
838 | ] | ||
839 | edge | ||
840 | [ | ||
841 | source 0 | ||
842 | target 8 | ||
843 | graphics | ||
844 | [ | ||
845 | fill "#000000" | ||
846 | width 3 | ||
847 | targetArrow "standard" | ||
848 | ] | ||
849 | LabelGraphics | ||
850 | [ | ||
851 | text "eAnnotations reference EModelElement" | ||
852 | fontSize 14 | ||
853 | fontName "Consolas" | ||
854 | configuration "AutoFlippingLabel" | ||
855 | model "six_pos" | ||
856 | position "thead" | ||
857 | ] | ||
858 | ] | ||
859 | edge | ||
860 | [ | ||
861 | source 0 | ||
862 | target 10 | ||
863 | graphics | ||
864 | [ | ||
865 | fill "#000000" | ||
866 | width 3 | ||
867 | targetArrow "standard" | ||
868 | ] | ||
869 | LabelGraphics | ||
870 | [ | ||
871 | text "eAnnotations reference EModelElement" | ||
872 | fontSize 14 | ||
873 | fontName "Consolas" | ||
874 | configuration "AutoFlippingLabel" | ||
875 | model "six_pos" | ||
876 | position "thead" | ||
877 | ] | ||
878 | ] | ||
879 | edge | ||
880 | [ | ||
881 | source 0 | ||
882 | target 9 | ||
883 | graphics | ||
884 | [ | ||
885 | fill "#000000" | ||
886 | width 3 | ||
887 | targetArrow "standard" | ||
888 | ] | ||
889 | LabelGraphics | ||
890 | [ | ||
891 | text "eClassifiers reference EPackage" | ||
892 | fontSize 14 | ||
893 | fontName "Consolas" | ||
894 | configuration "AutoFlippingLabel" | ||
895 | model "six_pos" | ||
896 | position "thead" | ||
897 | ] | ||
898 | ] | ||
899 | edge | ||
900 | [ | ||
901 | source 0 | ||
902 | target 11 | ||
903 | graphics | ||
904 | [ | ||
905 | fill "#000000" | ||
906 | width 3 | ||
907 | targetArrow "standard" | ||
908 | ] | ||
909 | LabelGraphics | ||
910 | [ | ||
911 | text "eClassifiers reference EPackage" | ||
912 | fontSize 14 | ||
913 | fontName "Consolas" | ||
914 | configuration "AutoFlippingLabel" | ||
915 | model "six_pos" | ||
916 | position "thead" | ||
917 | ] | ||
918 | ] | ||
919 | edge | ||
920 | [ | ||
921 | source 12 | ||
922 | target 12 | ||
923 | graphics | ||
924 | [ | ||
925 | fill "#000000" | ||
926 | targetArrow "standard" | ||
927 | ] | ||
928 | LabelGraphics | ||
929 | [ | ||
930 | text "eOpposite reference EReference" | ||
931 | fontSize 14 | ||
932 | fontName "Consolas" | ||
933 | configuration "AutoFlippingLabel" | ||
934 | model "six_pos" | ||
935 | position "thead" | ||
936 | ] | ||
937 | ] | ||
938 | edge | ||
939 | [ | ||
940 | source 12 | ||
941 | target 11 | ||
942 | graphics | ||
943 | [ | ||
944 | fill "#000000" | ||
945 | targetArrow "standard" | ||
946 | ] | ||
947 | LabelGraphics | ||
948 | [ | ||
949 | text "eReferenceType reference EReference" | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | configuration "AutoFlippingLabel" | ||
953 | model "six_pos" | ||
954 | position "thead" | ||
955 | ] | ||
956 | ] | ||
957 | edge | ||
958 | [ | ||
959 | source 12 | ||
960 | target 11 | ||
961 | graphics | ||
962 | [ | ||
963 | fill "#000000" | ||
964 | targetArrow "standard" | ||
965 | ] | ||
966 | LabelGraphics | ||
967 | [ | ||
968 | text "eContainingClass reference EStructuralFeature" | ||
969 | fontSize 14 | ||
970 | fontName "Consolas" | ||
971 | configuration "AutoFlippingLabel" | ||
972 | model "six_pos" | ||
973 | position "thead" | ||
974 | ] | ||
975 | ] | ||
976 | edge | ||
977 | [ | ||
978 | source 12 | ||
979 | target 11 | ||
980 | graphics | ||
981 | [ | ||
982 | fill "#000000" | ||
983 | targetArrow "standard" | ||
984 | ] | ||
985 | LabelGraphics | ||
986 | [ | ||
987 | text "eType reference ETypedElement" | ||
988 | fontSize 14 | ||
989 | fontName "Consolas" | ||
990 | configuration "AutoFlippingLabel" | ||
991 | model "six_pos" | ||
992 | position "thead" | ||
993 | ] | ||
994 | ] | ||
995 | edge | ||
996 | [ | ||
997 | source 8 | ||
998 | target 7 | ||
999 | graphics | ||
1000 | [ | ||
1001 | fill "#000000" | ||
1002 | targetArrow "standard" | ||
1003 | ] | ||
1004 | LabelGraphics | ||
1005 | [ | ||
1006 | text "source attribute EAnnotation" | ||
1007 | fontSize 14 | ||
1008 | fontName "Consolas" | ||
1009 | configuration "AutoFlippingLabel" | ||
1010 | model "six_pos" | ||
1011 | position "thead" | ||
1012 | ] | ||
1013 | ] | ||
1014 | edge | ||
1015 | [ | ||
1016 | source 10 | ||
1017 | target 6 | ||
1018 | graphics | ||
1019 | [ | ||
1020 | fill "#000000" | ||
1021 | targetArrow "standard" | ||
1022 | ] | ||
1023 | LabelGraphics | ||
1024 | [ | ||
1025 | text "source attribute EAnnotation" | ||
1026 | fontSize 14 | ||
1027 | fontName "Consolas" | ||
1028 | configuration "AutoFlippingLabel" | ||
1029 | model "six_pos" | ||
1030 | position "thead" | ||
1031 | ] | ||
1032 | ] | ||
1033 | edge | ||
1034 | [ | ||
1035 | source 11 | ||
1036 | target 2 | ||
1037 | graphics | ||
1038 | [ | ||
1039 | fill "#000000" | ||
1040 | targetArrow "standard" | ||
1041 | ] | ||
1042 | LabelGraphics | ||
1043 | [ | ||
1044 | text "abstract attribute EClass" | ||
1045 | fontSize 14 | ||
1046 | fontName "Consolas" | ||
1047 | configuration "AutoFlippingLabel" | ||
1048 | model "six_pos" | ||
1049 | position "thead" | ||
1050 | ] | ||
1051 | ] | ||
1052 | edge | ||
1053 | [ | ||
1054 | source 11 | ||
1055 | target 1 | ||
1056 | graphics | ||
1057 | [ | ||
1058 | fill "#000000" | ||
1059 | targetArrow "standard" | ||
1060 | ] | ||
1061 | LabelGraphics | ||
1062 | [ | ||
1063 | text "interface attribute EClass" | ||
1064 | fontSize 14 | ||
1065 | fontName "Consolas" | ||
1066 | configuration "AutoFlippingLabel" | ||
1067 | model "six_pos" | ||
1068 | position "thead" | ||
1069 | ] | ||
1070 | ] | ||
1071 | edge | ||
1072 | [ | ||
1073 | source 11 | ||
1074 | target 7 | ||
1075 | graphics | ||
1076 | [ | ||
1077 | fill "#000000" | ||
1078 | targetArrow "standard" | ||
1079 | ] | ||
1080 | LabelGraphics | ||
1081 | [ | ||
1082 | text "instanceClassName attribute EClassifier" | ||
1083 | fontSize 14 | ||
1084 | fontName "Consolas" | ||
1085 | configuration "AutoFlippingLabel" | ||
1086 | model "six_pos" | ||
1087 | position "thead" | ||
1088 | ] | ||
1089 | ] | ||
1090 | edge | ||
1091 | [ | ||
1092 | source 9 | ||
1093 | target 7 | ||
1094 | graphics | ||
1095 | [ | ||
1096 | fill "#000000" | ||
1097 | targetArrow "standard" | ||
1098 | ] | ||
1099 | LabelGraphics | ||
1100 | [ | ||
1101 | text "instanceClassName attribute EClassifier" | ||
1102 | fontSize 14 | ||
1103 | fontName "Consolas" | ||
1104 | configuration "AutoFlippingLabel" | ||
1105 | model "six_pos" | ||
1106 | position "thead" | ||
1107 | ] | ||
1108 | ] | ||
1109 | edge | ||
1110 | [ | ||
1111 | source 11 | ||
1112 | target 7 | ||
1113 | graphics | ||
1114 | [ | ||
1115 | fill "#000000" | ||
1116 | targetArrow "standard" | ||
1117 | ] | ||
1118 | LabelGraphics | ||
1119 | [ | ||
1120 | text "instanceTypeName attribute EClassifier" | ||
1121 | fontSize 14 | ||
1122 | fontName "Consolas" | ||
1123 | configuration "AutoFlippingLabel" | ||
1124 | model "six_pos" | ||
1125 | position "thead" | ||
1126 | ] | ||
1127 | ] | ||
1128 | edge | ||
1129 | [ | ||
1130 | source 9 | ||
1131 | target 7 | ||
1132 | graphics | ||
1133 | [ | ||
1134 | fill "#000000" | ||
1135 | targetArrow "standard" | ||
1136 | ] | ||
1137 | LabelGraphics | ||
1138 | [ | ||
1139 | text "instanceTypeName attribute EClassifier" | ||
1140 | fontSize 14 | ||
1141 | fontName "Consolas" | ||
1142 | configuration "AutoFlippingLabel" | ||
1143 | model "six_pos" | ||
1144 | position "thead" | ||
1145 | ] | ||
1146 | ] | ||
1147 | edge | ||
1148 | [ | ||
1149 | source 9 | ||
1150 | target 2 | ||
1151 | graphics | ||
1152 | [ | ||
1153 | fill "#000000" | ||
1154 | targetArrow "standard" | ||
1155 | ] | ||
1156 | LabelGraphics | ||
1157 | [ | ||
1158 | text "serializable attribute EDataType" | ||
1159 | fontSize 14 | ||
1160 | fontName "Consolas" | ||
1161 | configuration "AutoFlippingLabel" | ||
1162 | model "six_pos" | ||
1163 | position "thead" | ||
1164 | ] | ||
1165 | ] | ||
1166 | edge | ||
1167 | [ | ||
1168 | source 0 | ||
1169 | target 7 | ||
1170 | graphics | ||
1171 | [ | ||
1172 | fill "#000000" | ||
1173 | targetArrow "standard" | ||
1174 | ] | ||
1175 | LabelGraphics | ||
1176 | [ | ||
1177 | text "name attribute ENamedElement" | ||
1178 | fontSize 14 | ||
1179 | fontName "Consolas" | ||
1180 | configuration "AutoFlippingLabel" | ||
1181 | model "six_pos" | ||
1182 | position "thead" | ||
1183 | ] | ||
1184 | ] | ||
1185 | edge | ||
1186 | [ | ||
1187 | source 12 | ||
1188 | target 6 | ||
1189 | graphics | ||
1190 | [ | ||
1191 | fill "#000000" | ||
1192 | targetArrow "standard" | ||
1193 | ] | ||
1194 | LabelGraphics | ||
1195 | [ | ||
1196 | text "name attribute ENamedElement" | ||
1197 | fontSize 14 | ||
1198 | fontName "Consolas" | ||
1199 | configuration "AutoFlippingLabel" | ||
1200 | model "six_pos" | ||
1201 | position "thead" | ||
1202 | ] | ||
1203 | ] | ||
1204 | edge | ||
1205 | [ | ||
1206 | source 11 | ||
1207 | target 7 | ||
1208 | graphics | ||
1209 | [ | ||
1210 | fill "#000000" | ||
1211 | targetArrow "standard" | ||
1212 | ] | ||
1213 | LabelGraphics | ||
1214 | [ | ||
1215 | text "name attribute ENamedElement" | ||
1216 | fontSize 14 | ||
1217 | fontName "Consolas" | ||
1218 | configuration "AutoFlippingLabel" | ||
1219 | model "six_pos" | ||
1220 | position "thead" | ||
1221 | ] | ||
1222 | ] | ||
1223 | edge | ||
1224 | [ | ||
1225 | source 9 | ||
1226 | target 7 | ||
1227 | graphics | ||
1228 | [ | ||
1229 | fill "#000000" | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "name attribute ENamedElement" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 0 | ||
1245 | target 7 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | targetArrow "standard" | ||
1250 | ] | ||
1251 | LabelGraphics | ||
1252 | [ | ||
1253 | text "nsURI attribute EPackage" | ||
1254 | fontSize 14 | ||
1255 | fontName "Consolas" | ||
1256 | configuration "AutoFlippingLabel" | ||
1257 | model "six_pos" | ||
1258 | position "thead" | ||
1259 | ] | ||
1260 | ] | ||
1261 | edge | ||
1262 | [ | ||
1263 | source 0 | ||
1264 | target 7 | ||
1265 | graphics | ||
1266 | [ | ||
1267 | fill "#000000" | ||
1268 | targetArrow "standard" | ||
1269 | ] | ||
1270 | LabelGraphics | ||
1271 | [ | ||
1272 | text "nsPrefix attribute EPackage" | ||
1273 | fontSize 14 | ||
1274 | fontName "Consolas" | ||
1275 | configuration "AutoFlippingLabel" | ||
1276 | model "six_pos" | ||
1277 | position "thead" | ||
1278 | ] | ||
1279 | ] | ||
1280 | edge | ||
1281 | [ | ||
1282 | source 12 | ||
1283 | target 2 | ||
1284 | graphics | ||
1285 | [ | ||
1286 | fill "#000000" | ||
1287 | targetArrow "standard" | ||
1288 | ] | ||
1289 | LabelGraphics | ||
1290 | [ | ||
1291 | text "containment attribute EReference" | ||
1292 | fontSize 14 | ||
1293 | fontName "Consolas" | ||
1294 | configuration "AutoFlippingLabel" | ||
1295 | model "six_pos" | ||
1296 | position "thead" | ||
1297 | ] | ||
1298 | ] | ||
1299 | edge | ||
1300 | [ | ||
1301 | source 12 | ||
1302 | target 2 | ||
1303 | graphics | ||
1304 | [ | ||
1305 | fill "#000000" | ||
1306 | targetArrow "standard" | ||
1307 | ] | ||
1308 | LabelGraphics | ||
1309 | [ | ||
1310 | text "container attribute EReference" | ||
1311 | fontSize 14 | ||
1312 | fontName "Consolas" | ||
1313 | configuration "AutoFlippingLabel" | ||
1314 | model "six_pos" | ||
1315 | position "thead" | ||
1316 | ] | ||
1317 | ] | ||
1318 | edge | ||
1319 | [ | ||
1320 | source 12 | ||
1321 | target 2 | ||
1322 | graphics | ||
1323 | [ | ||
1324 | fill "#000000" | ||
1325 | targetArrow "standard" | ||
1326 | ] | ||
1327 | LabelGraphics | ||
1328 | [ | ||
1329 | text "resolveProxies attribute EReference" | ||
1330 | fontSize 14 | ||
1331 | fontName "Consolas" | ||
1332 | configuration "AutoFlippingLabel" | ||
1333 | model "six_pos" | ||
1334 | position "thead" | ||
1335 | ] | ||
1336 | ] | ||
1337 | edge | ||
1338 | [ | ||
1339 | source 12 | ||
1340 | target 2 | ||
1341 | graphics | ||
1342 | [ | ||
1343 | fill "#000000" | ||
1344 | targetArrow "standard" | ||
1345 | ] | ||
1346 | LabelGraphics | ||
1347 | [ | ||
1348 | text "changeable attribute EStructuralFeature" | ||
1349 | fontSize 14 | ||
1350 | fontName "Consolas" | ||
1351 | configuration "AutoFlippingLabel" | ||
1352 | model "six_pos" | ||
1353 | position "thead" | ||
1354 | ] | ||
1355 | ] | ||
1356 | edge | ||
1357 | [ | ||
1358 | source 12 | ||
1359 | target 2 | ||
1360 | graphics | ||
1361 | [ | ||
1362 | fill "#000000" | ||
1363 | targetArrow "standard" | ||
1364 | ] | ||
1365 | LabelGraphics | ||
1366 | [ | ||
1367 | text "volatile attribute EStructuralFeature" | ||
1368 | fontSize 14 | ||
1369 | fontName "Consolas" | ||
1370 | configuration "AutoFlippingLabel" | ||
1371 | model "six_pos" | ||
1372 | position "thead" | ||
1373 | ] | ||
1374 | ] | ||
1375 | edge | ||
1376 | [ | ||
1377 | source 12 | ||
1378 | target 1 | ||
1379 | graphics | ||
1380 | [ | ||
1381 | fill "#000000" | ||
1382 | targetArrow "standard" | ||
1383 | ] | ||
1384 | LabelGraphics | ||
1385 | [ | ||
1386 | text "transient attribute EStructuralFeature" | ||
1387 | fontSize 14 | ||
1388 | fontName "Consolas" | ||
1389 | configuration "AutoFlippingLabel" | ||
1390 | model "six_pos" | ||
1391 | position "thead" | ||
1392 | ] | ||
1393 | ] | ||
1394 | edge | ||
1395 | [ | ||
1396 | source 12 | ||
1397 | target 7 | ||
1398 | graphics | ||
1399 | [ | ||
1400 | fill "#000000" | ||
1401 | targetArrow "standard" | ||
1402 | ] | ||
1403 | LabelGraphics | ||
1404 | [ | ||
1405 | text "defaultValueLiteral attribute EStructuralFeature" | ||
1406 | fontSize 14 | ||
1407 | fontName "Consolas" | ||
1408 | configuration "AutoFlippingLabel" | ||
1409 | model "six_pos" | ||
1410 | position "thead" | ||
1411 | ] | ||
1412 | ] | ||
1413 | edge | ||
1414 | [ | ||
1415 | source 12 | ||
1416 | target 2 | ||
1417 | graphics | ||
1418 | [ | ||
1419 | fill "#000000" | ||
1420 | targetArrow "standard" | ||
1421 | ] | ||
1422 | LabelGraphics | ||
1423 | [ | ||
1424 | text "unsettable attribute EStructuralFeature" | ||
1425 | fontSize 14 | ||
1426 | fontName "Consolas" | ||
1427 | configuration "AutoFlippingLabel" | ||
1428 | model "six_pos" | ||
1429 | position "thead" | ||
1430 | ] | ||
1431 | ] | ||
1432 | edge | ||
1433 | [ | ||
1434 | source 12 | ||
1435 | target 1 | ||
1436 | graphics | ||
1437 | [ | ||
1438 | fill "#000000" | ||
1439 | targetArrow "standard" | ||
1440 | ] | ||
1441 | LabelGraphics | ||
1442 | [ | ||
1443 | text "derived attribute EStructuralFeature" | ||
1444 | fontSize 14 | ||
1445 | fontName "Consolas" | ||
1446 | configuration "AutoFlippingLabel" | ||
1447 | model "six_pos" | ||
1448 | position "thead" | ||
1449 | ] | ||
1450 | ] | ||
1451 | edge | ||
1452 | [ | ||
1453 | source 12 | ||
1454 | target 1 | ||
1455 | graphics | ||
1456 | [ | ||
1457 | fill "#000000" | ||
1458 | targetArrow "standard" | ||
1459 | ] | ||
1460 | LabelGraphics | ||
1461 | [ | ||
1462 | text "ordered attribute ETypedElement" | ||
1463 | fontSize 14 | ||
1464 | fontName "Consolas" | ||
1465 | configuration "AutoFlippingLabel" | ||
1466 | model "six_pos" | ||
1467 | position "thead" | ||
1468 | ] | ||
1469 | ] | ||
1470 | edge | ||
1471 | [ | ||
1472 | source 12 | ||
1473 | target 1 | ||
1474 | graphics | ||
1475 | [ | ||
1476 | fill "#000000" | ||
1477 | targetArrow "standard" | ||
1478 | ] | ||
1479 | LabelGraphics | ||
1480 | [ | ||
1481 | text "unique attribute ETypedElement" | ||
1482 | fontSize 14 | ||
1483 | fontName "Consolas" | ||
1484 | configuration "AutoFlippingLabel" | ||
1485 | model "six_pos" | ||
1486 | position "thead" | ||
1487 | ] | ||
1488 | ] | ||
1489 | edge | ||
1490 | [ | ||
1491 | source 12 | ||
1492 | target 4 | ||
1493 | graphics | ||
1494 | [ | ||
1495 | fill "#000000" | ||
1496 | targetArrow "standard" | ||
1497 | ] | ||
1498 | LabelGraphics | ||
1499 | [ | ||
1500 | text "lowerBound attribute ETypedElement" | ||
1501 | fontSize 14 | ||
1502 | fontName "Consolas" | ||
1503 | configuration "AutoFlippingLabel" | ||
1504 | model "six_pos" | ||
1505 | position "thead" | ||
1506 | ] | ||
1507 | ] | ||
1508 | edge | ||
1509 | [ | ||
1510 | source 12 | ||
1511 | target 5 | ||
1512 | graphics | ||
1513 | [ | ||
1514 | fill "#000000" | ||
1515 | targetArrow "standard" | ||
1516 | ] | ||
1517 | LabelGraphics | ||
1518 | [ | ||
1519 | text "upperBound attribute ETypedElement" | ||
1520 | fontSize 14 | ||
1521 | fontName "Consolas" | ||
1522 | configuration "AutoFlippingLabel" | ||
1523 | model "six_pos" | ||
1524 | position "thead" | ||
1525 | ] | ||
1526 | ] | ||
1527 | edge | ||
1528 | [ | ||
1529 | source 12 | ||
1530 | target 1 | ||
1531 | graphics | ||
1532 | [ | ||
1533 | fill "#000000" | ||
1534 | targetArrow "standard" | ||
1535 | ] | ||
1536 | LabelGraphics | ||
1537 | [ | ||
1538 | text "many attribute ETypedElement" | ||
1539 | fontSize 14 | ||
1540 | fontName "Consolas" | ||
1541 | configuration "AutoFlippingLabel" | ||
1542 | model "six_pos" | ||
1543 | position "thead" | ||
1544 | ] | ||
1545 | ] | ||
1546 | edge | ||
1547 | [ | ||
1548 | source 12 | ||
1549 | target 2 | ||
1550 | graphics | ||
1551 | [ | ||
1552 | fill "#000000" | ||
1553 | targetArrow "standard" | ||
1554 | ] | ||
1555 | LabelGraphics | ||
1556 | [ | ||
1557 | text "required attribute ETypedElement" | ||
1558 | fontSize 14 | ||
1559 | fontName "Consolas" | ||
1560 | configuration "AutoFlippingLabel" | ||
1561 | model "six_pos" | ||
1562 | position "thead" | ||
1563 | ] | ||
1564 | ] | ||
1565 | ] | ||
1566 | graph | ||
1567 | [ | ||
1568 | node | ||
1569 | [ | ||
1570 | id 0 | ||
1571 | graphics | ||
1572 | [ | ||
1573 | w 254.10000000000002 | ||
1574 | h 110 | ||
1575 | type "rectangle" | ||
1576 | fill "#FFFFFF" | ||
1577 | fill2 "#FFFFFF" | ||
1578 | outline "#000000" | ||
1579 | ] | ||
1580 | LabelGraphics | ||
1581 | [ | ||
1582 | text "o 1" | ||
1583 | outline "#000000" | ||
1584 | fill "#FFFFFF" | ||
1585 | fontSize 16 | ||
1586 | fontName "Monospace" | ||
1587 | autoSizePolicy "node_width" | ||
1588 | anchor "t" | ||
1589 | borderDistance 0.0 | ||
1590 | ] | ||
1591 | LabelGraphics | ||
1592 | [ | ||
1593 | text " | ||
1594 | EModelElement class DefinedPart | ||
1595 | ENamedElement class DefinedPart | ||
1596 | EPackage class DefinedPart | ||
1597 | EModelElement class | ||
1598 | ENamedElement class | ||
1599 | EPackage class | ||
1600 | " | ||
1601 | fontSize 14 | ||
1602 | fontName "Consolas" | ||
1603 | alignment "left" | ||
1604 | anchor "tl" | ||
1605 | borderDistance 6 | ||
1606 | ] | ||
1607 | ] | ||
1608 | |||
1609 | node | ||
1610 | [ | ||
1611 | id 1 | ||
1612 | graphics | ||
1613 | [ | ||
1614 | w 41.800000000000004 | ||
1615 | h 26 | ||
1616 | type "rectangle" | ||
1617 | fill "#FFFFFF" | ||
1618 | fill2 "#FFFFFF" | ||
1619 | outline "#000000" | ||
1620 | ] | ||
1621 | LabelGraphics | ||
1622 | [ | ||
1623 | text "true" | ||
1624 | outline "#000000" | ||
1625 | fill "#FFFFFF" | ||
1626 | fontSize 16 | ||
1627 | fontName "Monospace" | ||
1628 | autoSizePolicy "node_width" | ||
1629 | anchor "t" | ||
1630 | borderDistance 0.0 | ||
1631 | ] | ||
1632 | LabelGraphics | ||
1633 | [ | ||
1634 | text " | ||
1635 | " | ||
1636 | fontSize 14 | ||
1637 | fontName "Consolas" | ||
1638 | alignment "left" | ||
1639 | anchor "tl" | ||
1640 | borderDistance 6 | ||
1641 | ] | ||
1642 | ] | ||
1643 | |||
1644 | node | ||
1645 | [ | ||
1646 | id 2 | ||
1647 | graphics | ||
1648 | [ | ||
1649 | w 50.6 | ||
1650 | h 26 | ||
1651 | type "rectangle" | ||
1652 | fill "#FFFFFF" | ||
1653 | fill2 "#FFFFFF" | ||
1654 | outline "#000000" | ||
1655 | ] | ||
1656 | LabelGraphics | ||
1657 | [ | ||
1658 | text "false" | ||
1659 | outline "#000000" | ||
1660 | fill "#FFFFFF" | ||
1661 | fontSize 16 | ||
1662 | fontName "Monospace" | ||
1663 | autoSizePolicy "node_width" | ||
1664 | anchor "t" | ||
1665 | borderDistance 0.0 | ||
1666 | ] | ||
1667 | LabelGraphics | ||
1668 | [ | ||
1669 | text " | ||
1670 | " | ||
1671 | fontSize 14 | ||
1672 | fontName "Consolas" | ||
1673 | alignment "left" | ||
1674 | anchor "tl" | ||
1675 | borderDistance 6 | ||
1676 | ] | ||
1677 | ] | ||
1678 | |||
1679 | node | ||
1680 | [ | ||
1681 | id 3 | ||
1682 | graphics | ||
1683 | [ | ||
1684 | w 24.200000000000003 | ||
1685 | h 26 | ||
1686 | type "rectangle" | ||
1687 | fill "#FFFFFF" | ||
1688 | fill2 "#FFFFFF" | ||
1689 | outline "#000000" | ||
1690 | ] | ||
1691 | LabelGraphics | ||
1692 | [ | ||
1693 | text "-1" | ||
1694 | outline "#000000" | ||
1695 | fill "#FFFFFF" | ||
1696 | fontSize 16 | ||
1697 | fontName "Monospace" | ||
1698 | autoSizePolicy "node_width" | ||
1699 | anchor "t" | ||
1700 | borderDistance 0.0 | ||
1701 | ] | ||
1702 | LabelGraphics | ||
1703 | [ | ||
1704 | text " | ||
1705 | " | ||
1706 | fontSize 14 | ||
1707 | fontName "Consolas" | ||
1708 | alignment "left" | ||
1709 | anchor "tl" | ||
1710 | borderDistance 6 | ||
1711 | ] | ||
1712 | ] | ||
1713 | |||
1714 | node | ||
1715 | [ | ||
1716 | id 4 | ||
1717 | graphics | ||
1718 | [ | ||
1719 | w 15.400000000000002 | ||
1720 | h 26 | ||
1721 | type "rectangle" | ||
1722 | fill "#FFFFFF" | ||
1723 | fill2 "#FFFFFF" | ||
1724 | outline "#000000" | ||
1725 | ] | ||
1726 | LabelGraphics | ||
1727 | [ | ||
1728 | text "0" | ||
1729 | outline "#000000" | ||
1730 | fill "#FFFFFF" | ||
1731 | fontSize 16 | ||
1732 | fontName "Monospace" | ||
1733 | autoSizePolicy "node_width" | ||
1734 | anchor "t" | ||
1735 | borderDistance 0.0 | ||
1736 | ] | ||
1737 | LabelGraphics | ||
1738 | [ | ||
1739 | text " | ||
1740 | " | ||
1741 | fontSize 14 | ||
1742 | fontName "Consolas" | ||
1743 | alignment "left" | ||
1744 | anchor "tl" | ||
1745 | borderDistance 6 | ||
1746 | ] | ||
1747 | ] | ||
1748 | |||
1749 | node | ||
1750 | [ | ||
1751 | id 5 | ||
1752 | graphics | ||
1753 | [ | ||
1754 | w 15.400000000000002 | ||
1755 | h 26 | ||
1756 | type "rectangle" | ||
1757 | fill "#FFFFFF" | ||
1758 | fill2 "#FFFFFF" | ||
1759 | outline "#000000" | ||
1760 | ] | ||
1761 | LabelGraphics | ||
1762 | [ | ||
1763 | text "1" | ||
1764 | outline "#000000" | ||
1765 | fill "#FFFFFF" | ||
1766 | fontSize 16 | ||
1767 | fontName "Monospace" | ||
1768 | autoSizePolicy "node_width" | ||
1769 | anchor "t" | ||
1770 | borderDistance 0.0 | ||
1771 | ] | ||
1772 | LabelGraphics | ||
1773 | [ | ||
1774 | text " | ||
1775 | " | ||
1776 | fontSize 14 | ||
1777 | fontName "Consolas" | ||
1778 | alignment "left" | ||
1779 | anchor "tl" | ||
1780 | borderDistance 6 | ||
1781 | ] | ||
1782 | ] | ||
1783 | |||
1784 | node | ||
1785 | [ | ||
1786 | id 6 | ||
1787 | graphics | ||
1788 | [ | ||
1789 | w 33.0 | ||
1790 | h 26 | ||
1791 | type "rectangle" | ||
1792 | fill "#FFFFFF" | ||
1793 | fill2 "#FFFFFF" | ||
1794 | outline "#000000" | ||
1795 | ] | ||
1796 | LabelGraphics | ||
1797 | [ | ||
1798 | text ""A"" | ||
1799 | outline "#000000" | ||
1800 | fill "#FFFFFF" | ||
1801 | fontSize 16 | ||
1802 | fontName "Monospace" | ||
1803 | autoSizePolicy "node_width" | ||
1804 | anchor "t" | ||
1805 | borderDistance 0.0 | ||
1806 | ] | ||
1807 | LabelGraphics | ||
1808 | [ | ||
1809 | text " | ||
1810 | " | ||
1811 | fontSize 14 | ||
1812 | fontName "Consolas" | ||
1813 | alignment "left" | ||
1814 | anchor "tl" | ||
1815 | borderDistance 6 | ||
1816 | ] | ||
1817 | ] | ||
1818 | |||
1819 | node | ||
1820 | [ | ||
1821 | id 7 | ||
1822 | graphics | ||
1823 | [ | ||
1824 | w 33.0 | ||
1825 | h 26 | ||
1826 | type "rectangle" | ||
1827 | fill "#FFFFFF" | ||
1828 | fill2 "#FFFFFF" | ||
1829 | outline "#000000" | ||
1830 | ] | ||
1831 | LabelGraphics | ||
1832 | [ | ||
1833 | text ""B"" | ||
1834 | outline "#000000" | ||
1835 | fill "#FFFFFF" | ||
1836 | fontSize 16 | ||
1837 | fontName "Monospace" | ||
1838 | autoSizePolicy "node_width" | ||
1839 | anchor "t" | ||
1840 | borderDistance 0.0 | ||
1841 | ] | ||
1842 | LabelGraphics | ||
1843 | [ | ||
1844 | text " | ||
1845 | " | ||
1846 | fontSize 14 | ||
1847 | fontName "Consolas" | ||
1848 | alignment "left" | ||
1849 | anchor "tl" | ||
1850 | borderDistance 6 | ||
1851 | ] | ||
1852 | ] | ||
1853 | |||
1854 | node | ||
1855 | [ | ||
1856 | id 8 | ||
1857 | graphics | ||
1858 | [ | ||
1859 | w 94.60000000000001 | ||
1860 | h 26 | ||
1861 | type "rectangle" | ||
1862 | fill "#FFFFFF" | ||
1863 | fill2 "#FFFFFF" | ||
1864 | outline "#000000" | ||
1865 | ] | ||
1866 | LabelGraphics | ||
1867 | [ | ||
1868 | text ""nsPrefix"" | ||
1869 | outline "#000000" | ||
1870 | fill "#FFFFFF" | ||
1871 | fontSize 16 | ||
1872 | fontName "Monospace" | ||
1873 | autoSizePolicy "node_width" | ||
1874 | anchor "t" | ||
1875 | borderDistance 0.0 | ||
1876 | ] | ||
1877 | LabelGraphics | ||
1878 | [ | ||
1879 | text " | ||
1880 | " | ||
1881 | fontSize 14 | ||
1882 | fontName "Consolas" | ||
1883 | alignment "left" | ||
1884 | anchor "tl" | ||
1885 | borderDistance 6 | ||
1886 | ] | ||
1887 | ] | ||
1888 | |||
1889 | node | ||
1890 | [ | ||
1891 | id 9 | ||
1892 | graphics | ||
1893 | [ | ||
1894 | w 68.2 | ||
1895 | h 26 | ||
1896 | type "rectangle" | ||
1897 | fill "#FFFFFF" | ||
1898 | fill2 "#FFFFFF" | ||
1899 | outline "#000000" | ||
1900 | ] | ||
1901 | LabelGraphics | ||
1902 | [ | ||
1903 | text ""nsUri"" | ||
1904 | outline "#000000" | ||
1905 | fill "#FFFFFF" | ||
1906 | fontSize 16 | ||
1907 | fontName "Monospace" | ||
1908 | autoSizePolicy "node_width" | ||
1909 | anchor "t" | ||
1910 | borderDistance 0.0 | ||
1911 | ] | ||
1912 | LabelGraphics | ||
1913 | [ | ||
1914 | text " | ||
1915 | " | ||
1916 | fontSize 14 | ||
1917 | fontName "Consolas" | ||
1918 | alignment "left" | ||
1919 | anchor "tl" | ||
1920 | borderDistance 6 | ||
1921 | ] | ||
1922 | ] | ||
1923 | |||
1924 | node | ||
1925 | [ | ||
1926 | id 10 | ||
1927 | graphics | ||
1928 | [ | ||
1929 | w 121.00000000000001 | ||
1930 | h 26 | ||
1931 | type "rectangle" | ||
1932 | fill "#FFFFFF" | ||
1933 | fill2 "#FFFFFF" | ||
1934 | outline "#000000" | ||
1935 | ] | ||
1936 | LabelGraphics | ||
1937 | [ | ||
1938 | text ""packageName"" | ||
1939 | outline "#000000" | ||
1940 | fill "#FFFFFF" | ||
1941 | fontSize 16 | ||
1942 | fontName "Monospace" | ||
1943 | autoSizePolicy "node_width" | ||
1944 | anchor "t" | ||
1945 | borderDistance 0.0 | ||
1946 | ] | ||
1947 | LabelGraphics | ||
1948 | [ | ||
1949 | text " | ||
1950 | " | ||
1951 | fontSize 14 | ||
1952 | fontName "Consolas" | ||
1953 | alignment "left" | ||
1954 | anchor "tl" | ||
1955 | borderDistance 6 | ||
1956 | ] | ||
1957 | ] | ||
1958 | |||
1959 | node | ||
1960 | [ | ||
1961 | id 11 | ||
1962 | graphics | ||
1963 | [ | ||
1964 | w 269.5 | ||
1965 | h 124 | ||
1966 | type "rectangle" | ||
1967 | fill "#FFFFFF" | ||
1968 | fill2 "#FFFFFF" | ||
1969 | outline "#000000" | ||
1970 | ] | ||
1971 | LabelGraphics | ||
1972 | [ | ||
1973 | text "null" | ||
1974 | outline "#000000" | ||
1975 | fill "#FFFFFF" | ||
1976 | fontSize 16 | ||
1977 | fontName "Monospace" | ||
1978 | autoSizePolicy "node_width" | ||
1979 | anchor "t" | ||
1980 | borderDistance 0.0 | ||
1981 | ] | ||
1982 | LabelGraphics | ||
1983 | [ | ||
1984 | text " | ||
1985 | EClassifier class | ||
1986 | EDataType class | ||
1987 | EEnum class | ||
1988 | EModelElement class | ||
1989 | ENamedElement class | ||
1990 | EModelElement class UndefinedPart | ||
1991 | ENamedElement class UndefinedPart | ||
1992 | " | ||
1993 | fontSize 14 | ||
1994 | fontName "Consolas" | ||
1995 | alignment "left" | ||
1996 | anchor "tl" | ||
1997 | borderDistance 6 | ||
1998 | ] | ||
1999 | ] | ||
2000 | |||
2001 | node | ||
2002 | [ | ||
2003 | id 12 | ||
2004 | graphics | ||
2005 | [ | ||
2006 | w 269.5 | ||
2007 | h 110 | ||
2008 | type "rectangle" | ||
2009 | fill "#FFFFFF" | ||
2010 | fill2 "#FFFFFF" | ||
2011 | outline "#000000" | ||
2012 | ] | ||
2013 | LabelGraphics | ||
2014 | [ | ||
2015 | text "null" | ||
2016 | outline "#000000" | ||
2017 | fill "#FFFFFF" | ||
2018 | fontSize 16 | ||
2019 | fontName "Monospace" | ||
2020 | autoSizePolicy "node_width" | ||
2021 | anchor "t" | ||
2022 | borderDistance 0.0 | ||
2023 | ] | ||
2024 | LabelGraphics | ||
2025 | [ | ||
2026 | text " | ||
2027 | EClassifier class | ||
2028 | EDataType class | ||
2029 | EModelElement class | ||
2030 | ENamedElement class | ||
2031 | EModelElement class UndefinedPart | ||
2032 | ENamedElement class UndefinedPart | ||
2033 | " | ||
2034 | fontSize 14 | ||
2035 | fontName "Consolas" | ||
2036 | alignment "left" | ||
2037 | anchor "tl" | ||
2038 | borderDistance 6 | ||
2039 | ] | ||
2040 | ] | ||
2041 | |||
2042 | node | ||
2043 | [ | ||
2044 | id 13 | ||
2045 | graphics | ||
2046 | [ | ||
2047 | w 269.5 | ||
2048 | h 68 | ||
2049 | type "rectangle" | ||
2050 | fill "#FFFFFF" | ||
2051 | fill2 "#FFFFFF" | ||
2052 | outline "#000000" | ||
2053 | ] | ||
2054 | LabelGraphics | ||
2055 | [ | ||
2056 | text "null" | ||
2057 | outline "#000000" | ||
2058 | fill "#FFFFFF" | ||
2059 | fontSize 16 | ||
2060 | fontName "Monospace" | ||
2061 | autoSizePolicy "node_width" | ||
2062 | anchor "t" | ||
2063 | borderDistance 0.0 | ||
2064 | ] | ||
2065 | LabelGraphics | ||
2066 | [ | ||
2067 | text " | ||
2068 | EAnnotation class | ||
2069 | EModelElement class | ||
2070 | EModelElement class UndefinedPart | ||
2071 | " | ||
2072 | fontSize 14 | ||
2073 | fontName "Consolas" | ||
2074 | alignment "left" | ||
2075 | anchor "tl" | ||
2076 | borderDistance 6 | ||
2077 | ] | ||
2078 | ] | ||
2079 | |||
2080 | node | ||
2081 | [ | ||
2082 | id 14 | ||
2083 | graphics | ||
2084 | [ | ||
2085 | w 269.5 | ||
2086 | h 124 | ||
2087 | type "rectangle" | ||
2088 | fill "#FFFFFF" | ||
2089 | fill2 "#FFFFFF" | ||
2090 | outline "#000000" | ||
2091 | ] | ||
2092 | LabelGraphics | ||
2093 | [ | ||
2094 | text "null" | ||
2095 | outline "#000000" | ||
2096 | fill "#FFFFFF" | ||
2097 | fontSize 16 | ||
2098 | fontName "Monospace" | ||
2099 | autoSizePolicy "node_width" | ||
2100 | anchor "t" | ||
2101 | borderDistance 0.0 | ||
2102 | ] | ||
2103 | LabelGraphics | ||
2104 | [ | ||
2105 | text " | ||
2106 | EClassifier class | ||
2107 | EDataType class | ||
2108 | EEnum class | ||
2109 | EModelElement class | ||
2110 | ENamedElement class | ||
2111 | EModelElement class UndefinedPart | ||
2112 | ENamedElement class UndefinedPart | ||
2113 | " | ||
2114 | fontSize 14 | ||
2115 | fontName "Consolas" | ||
2116 | alignment "left" | ||
2117 | anchor "tl" | ||
2118 | borderDistance 6 | ||
2119 | ] | ||
2120 | ] | ||
2121 | |||
2122 | node | ||
2123 | [ | ||
2124 | id 15 | ||
2125 | graphics | ||
2126 | [ | ||
2127 | w 269.5 | ||
2128 | h 96 | ||
2129 | type "rectangle" | ||
2130 | fill "#FFFFFF" | ||
2131 | fill2 "#FFFFFF" | ||
2132 | outline "#000000" | ||
2133 | ] | ||
2134 | LabelGraphics | ||
2135 | [ | ||
2136 | text "null" | ||
2137 | outline "#000000" | ||
2138 | fill "#FFFFFF" | ||
2139 | fontSize 16 | ||
2140 | fontName "Monospace" | ||
2141 | autoSizePolicy "node_width" | ||
2142 | anchor "t" | ||
2143 | borderDistance 0.0 | ||
2144 | ] | ||
2145 | LabelGraphics | ||
2146 | [ | ||
2147 | text " | ||
2148 | EEnumLiteral class | ||
2149 | EModelElement class | ||
2150 | ENamedElement class | ||
2151 | EModelElement class UndefinedPart | ||
2152 | ENamedElement class UndefinedPart | ||
2153 | " | ||
2154 | fontSize 14 | ||
2155 | fontName "Consolas" | ||
2156 | alignment "left" | ||
2157 | anchor "tl" | ||
2158 | borderDistance 6 | ||
2159 | ] | ||
2160 | ] | ||
2161 | |||
2162 | node | ||
2163 | [ | ||
2164 | id 16 | ||
2165 | graphics | ||
2166 | [ | ||
2167 | w 112.2 | ||
2168 | h 26 | ||
2169 | type "rectangle" | ||
2170 | fill "#FFFFFF" | ||
2171 | fill2 "#FFFFFF" | ||
2172 | outline "#000000" | ||
2173 | ] | ||
2174 | LabelGraphics | ||
2175 | [ | ||
2176 | text "New Integers" | ||
2177 | outline "#000000" | ||
2178 | fill "#FFFFFF" | ||
2179 | fontSize 16 | ||
2180 | fontName "Monospace" | ||
2181 | autoSizePolicy "node_width" | ||
2182 | anchor "t" | ||
2183 | borderDistance 0.0 | ||
2184 | ] | ||
2185 | LabelGraphics | ||
2186 | [ | ||
2187 | text " | ||
2188 | " | ||
2189 | fontSize 14 | ||
2190 | fontName "Consolas" | ||
2191 | alignment "left" | ||
2192 | anchor "tl" | ||
2193 | borderDistance 6 | ||
2194 | ] | ||
2195 | ] | ||
2196 | |||
2197 | node | ||
2198 | [ | ||
2199 | id 17 | ||
2200 | graphics | ||
2201 | [ | ||
2202 | w 85.80000000000001 | ||
2203 | h 26 | ||
2204 | type "rectangle" | ||
2205 | fill "#FFFFFF" | ||
2206 | fill2 "#FFFFFF" | ||
2207 | outline "#000000" | ||
2208 | ] | ||
2209 | LabelGraphics | ||
2210 | [ | ||
2211 | text "New Reals" | ||
2212 | outline "#000000" | ||
2213 | fill "#FFFFFF" | ||
2214 | fontSize 16 | ||
2215 | fontName "Monospace" | ||
2216 | autoSizePolicy "node_width" | ||
2217 | anchor "t" | ||
2218 | borderDistance 0.0 | ||
2219 | ] | ||
2220 | LabelGraphics | ||
2221 | [ | ||
2222 | text " | ||
2223 | " | ||
2224 | fontSize 14 | ||
2225 | fontName "Consolas" | ||
2226 | alignment "left" | ||
2227 | anchor "tl" | ||
2228 | borderDistance 6 | ||
2229 | ] | ||
2230 | ] | ||
2231 | |||
2232 | node | ||
2233 | [ | ||
2234 | id 18 | ||
2235 | graphics | ||
2236 | [ | ||
2237 | w 103.4 | ||
2238 | h 26 | ||
2239 | type "rectangle" | ||
2240 | fill "#FFFFFF" | ||
2241 | fill2 "#FFFFFF" | ||
2242 | outline "#000000" | ||
2243 | ] | ||
2244 | LabelGraphics | ||
2245 | [ | ||
2246 | text "New Strings" | ||
2247 | outline "#000000" | ||
2248 | fill "#FFFFFF" | ||
2249 | fontSize 16 | ||
2250 | fontName "Monospace" | ||
2251 | autoSizePolicy "node_width" | ||
2252 | anchor "t" | ||
2253 | borderDistance 0.0 | ||
2254 | ] | ||
2255 | LabelGraphics | ||
2256 | [ | ||
2257 | text " | ||
2258 | " | ||
2259 | fontSize 14 | ||
2260 | fontName "Consolas" | ||
2261 | alignment "left" | ||
2262 | anchor "tl" | ||
2263 | borderDistance 6 | ||
2264 | ] | ||
2265 | ] | ||
2266 | |||
2267 | node | ||
2268 | [ | ||
2269 | id 19 | ||
2270 | graphics | ||
2271 | [ | ||
2272 | w 103.4 | ||
2273 | h 26 | ||
2274 | type "rectangle" | ||
2275 | fill "#FFFFFF" | ||
2276 | fill2 "#FFFFFF" | ||
2277 | outline "#000000" | ||
2278 | ] | ||
2279 | LabelGraphics | ||
2280 | [ | ||
2281 | text "New Objects" | ||
2282 | outline "#000000" | ||
2283 | fill "#FFFFFF" | ||
2284 | fontSize 16 | ||
2285 | fontName "Monospace" | ||
2286 | autoSizePolicy "node_width" | ||
2287 | anchor "t" | ||
2288 | borderDistance 0.0 | ||
2289 | ] | ||
2290 | LabelGraphics | ||
2291 | [ | ||
2292 | text " | ||
2293 | " | ||
2294 | fontSize 14 | ||
2295 | fontName "Consolas" | ||
2296 | alignment "left" | ||
2297 | anchor "tl" | ||
2298 | borderDistance 6 | ||
2299 | ] | ||
2300 | ] | ||
2301 | edge | ||
2302 | [ | ||
2303 | source 13 | ||
2304 | target 0 | ||
2305 | graphics | ||
2306 | [ | ||
2307 | fill "#000000" | ||
2308 | targetArrow "standard" | ||
2309 | ] | ||
2310 | LabelGraphics | ||
2311 | [ | ||
2312 | text "eModelElement reference EAnnotation" | ||
2313 | fontSize 14 | ||
2314 | fontName "Consolas" | ||
2315 | configuration "AutoFlippingLabel" | ||
2316 | model "six_pos" | ||
2317 | position "thead" | ||
2318 | ] | ||
2319 | ] | ||
2320 | edge | ||
2321 | [ | ||
2322 | source 11 | ||
2323 | target 0 | ||
2324 | graphics | ||
2325 | [ | ||
2326 | fill "#000000" | ||
2327 | targetArrow "standard" | ||
2328 | ] | ||
2329 | LabelGraphics | ||
2330 | [ | ||
2331 | text "ePackage reference EClassifier" | ||
2332 | fontSize 14 | ||
2333 | fontName "Consolas" | ||
2334 | configuration "AutoFlippingLabel" | ||
2335 | model "six_pos" | ||
2336 | position "thead" | ||
2337 | ] | ||
2338 | ] | ||
2339 | edge | ||
2340 | [ | ||
2341 | source 12 | ||
2342 | target 0 | ||
2343 | graphics | ||
2344 | [ | ||
2345 | fill "#000000" | ||
2346 | targetArrow "standard" | ||
2347 | ] | ||
2348 | LabelGraphics | ||
2349 | [ | ||
2350 | text "ePackage reference EClassifier" | ||
2351 | fontSize 14 | ||
2352 | fontName "Consolas" | ||
2353 | configuration "AutoFlippingLabel" | ||
2354 | model "six_pos" | ||
2355 | position "thead" | ||
2356 | ] | ||
2357 | ] | ||
2358 | edge | ||
2359 | [ | ||
2360 | source 14 | ||
2361 | target 0 | ||
2362 | graphics | ||
2363 | [ | ||
2364 | fill "#000000" | ||
2365 | targetArrow "standard" | ||
2366 | ] | ||
2367 | LabelGraphics | ||
2368 | [ | ||
2369 | text "ePackage reference EClassifier" | ||
2370 | fontSize 14 | ||
2371 | fontName "Consolas" | ||
2372 | configuration "AutoFlippingLabel" | ||
2373 | model "six_pos" | ||
2374 | position "thead" | ||
2375 | ] | ||
2376 | ] | ||
2377 | edge | ||
2378 | [ | ||
2379 | source 14 | ||
2380 | target 15 | ||
2381 | graphics | ||
2382 | [ | ||
2383 | fill "#000000" | ||
2384 | width 3 | ||
2385 | targetArrow "standard" | ||
2386 | ] | ||
2387 | LabelGraphics | ||
2388 | [ | ||
2389 | text "eLiterals reference EEnum" | ||
2390 | fontSize 14 | ||
2391 | fontName "Consolas" | ||
2392 | configuration "AutoFlippingLabel" | ||
2393 | model "six_pos" | ||
2394 | position "thead" | ||
2395 | ] | ||
2396 | ] | ||
2397 | edge | ||
2398 | [ | ||
2399 | source 15 | ||
2400 | target 14 | ||
2401 | graphics | ||
2402 | [ | ||
2403 | fill "#000000" | ||
2404 | targetArrow "standard" | ||
2405 | ] | ||
2406 | LabelGraphics | ||
2407 | [ | ||
2408 | text "eEnum reference EEnumLiteral" | ||
2409 | fontSize 14 | ||
2410 | fontName "Consolas" | ||
2411 | configuration "AutoFlippingLabel" | ||
2412 | model "six_pos" | ||
2413 | position "thead" | ||
2414 | ] | ||
2415 | ] | ||
2416 | edge | ||
2417 | [ | ||
2418 | source 0 | ||
2419 | target 13 | ||
2420 | graphics | ||
2421 | [ | ||
2422 | fill "#000000" | ||
2423 | width 3 | ||
2424 | targetArrow "standard" | ||
2425 | ] | ||
2426 | LabelGraphics | ||
2427 | [ | ||
2428 | text "eAnnotations reference EModelElement" | ||
2429 | fontSize 14 | ||
2430 | fontName "Consolas" | ||
2431 | configuration "AutoFlippingLabel" | ||
2432 | model "six_pos" | ||
2433 | position "thead" | ||
2434 | ] | ||
2435 | ] | ||
2436 | edge | ||
2437 | [ | ||
2438 | source 0 | ||
2439 | target 11 | ||
2440 | graphics | ||
2441 | [ | ||
2442 | fill "#000000" | ||
2443 | width 3 | ||
2444 | targetArrow "standard" | ||
2445 | ] | ||
2446 | LabelGraphics | ||
2447 | [ | ||
2448 | text "eClassifiers reference EPackage" | ||
2449 | fontSize 14 | ||
2450 | fontName "Consolas" | ||
2451 | configuration "AutoFlippingLabel" | ||
2452 | model "six_pos" | ||
2453 | position "thead" | ||
2454 | ] | ||
2455 | ] | ||
2456 | edge | ||
2457 | [ | ||
2458 | source 0 | ||
2459 | target 12 | ||
2460 | graphics | ||
2461 | [ | ||
2462 | fill "#000000" | ||
2463 | width 3 | ||
2464 | targetArrow "standard" | ||
2465 | ] | ||
2466 | LabelGraphics | ||
2467 | [ | ||
2468 | text "eClassifiers reference EPackage" | ||
2469 | fontSize 14 | ||
2470 | fontName "Consolas" | ||
2471 | configuration "AutoFlippingLabel" | ||
2472 | model "six_pos" | ||
2473 | position "thead" | ||
2474 | ] | ||
2475 | ] | ||
2476 | edge | ||
2477 | [ | ||
2478 | source 0 | ||
2479 | target 14 | ||
2480 | graphics | ||
2481 | [ | ||
2482 | fill "#000000" | ||
2483 | width 3 | ||
2484 | targetArrow "standard" | ||
2485 | ] | ||
2486 | LabelGraphics | ||
2487 | [ | ||
2488 | text "eClassifiers reference EPackage" | ||
2489 | fontSize 14 | ||
2490 | fontName "Consolas" | ||
2491 | configuration "AutoFlippingLabel" | ||
2492 | model "six_pos" | ||
2493 | position "thead" | ||
2494 | ] | ||
2495 | ] | ||
2496 | edge | ||
2497 | [ | ||
2498 | source 13 | ||
2499 | target 9 | ||
2500 | graphics | ||
2501 | [ | ||
2502 | fill "#000000" | ||
2503 | targetArrow "standard" | ||
2504 | ] | ||
2505 | LabelGraphics | ||
2506 | [ | ||
2507 | text "source attribute EAnnotation" | ||
2508 | fontSize 14 | ||
2509 | fontName "Consolas" | ||
2510 | configuration "AutoFlippingLabel" | ||
2511 | model "six_pos" | ||
2512 | position "thead" | ||
2513 | ] | ||
2514 | ] | ||
2515 | edge | ||
2516 | [ | ||
2517 | source 11 | ||
2518 | target 6 | ||
2519 | graphics | ||
2520 | [ | ||
2521 | fill "#000000" | ||
2522 | targetArrow "standard" | ||
2523 | ] | ||
2524 | LabelGraphics | ||
2525 | [ | ||
2526 | text "instanceClassName attribute EClassifier" | ||
2527 | fontSize 14 | ||
2528 | fontName "Consolas" | ||
2529 | configuration "AutoFlippingLabel" | ||
2530 | model "six_pos" | ||
2531 | position "thead" | ||
2532 | ] | ||
2533 | ] | ||
2534 | edge | ||
2535 | [ | ||
2536 | source 12 | ||
2537 | target 10 | ||
2538 | graphics | ||
2539 | [ | ||
2540 | fill "#000000" | ||
2541 | targetArrow "standard" | ||
2542 | ] | ||
2543 | LabelGraphics | ||
2544 | [ | ||
2545 | text "instanceTypeName attribute EClassifier" | ||
2546 | fontSize 14 | ||
2547 | fontName "Consolas" | ||
2548 | configuration "AutoFlippingLabel" | ||
2549 | model "six_pos" | ||
2550 | position "thead" | ||
2551 | ] | ||
2552 | ] | ||
2553 | edge | ||
2554 | [ | ||
2555 | source 14 | ||
2556 | target 8 | ||
2557 | graphics | ||
2558 | [ | ||
2559 | fill "#000000" | ||
2560 | targetArrow "standard" | ||
2561 | ] | ||
2562 | LabelGraphics | ||
2563 | [ | ||
2564 | text "instanceTypeName attribute EClassifier" | ||
2565 | fontSize 14 | ||
2566 | fontName "Consolas" | ||
2567 | configuration "AutoFlippingLabel" | ||
2568 | model "six_pos" | ||
2569 | position "thead" | ||
2570 | ] | ||
2571 | ] | ||
2572 | edge | ||
2573 | [ | ||
2574 | source 11 | ||
2575 | target 7 | ||
2576 | graphics | ||
2577 | [ | ||
2578 | fill "#000000" | ||
2579 | targetArrow "standard" | ||
2580 | ] | ||
2581 | LabelGraphics | ||
2582 | [ | ||
2583 | text "instanceTypeName attribute EClassifier" | ||
2584 | fontSize 14 | ||
2585 | fontName "Consolas" | ||
2586 | configuration "AutoFlippingLabel" | ||
2587 | model "six_pos" | ||
2588 | position "thead" | ||
2589 | ] | ||
2590 | ] | ||
2591 | edge | ||
2592 | [ | ||
2593 | source 12 | ||
2594 | target 2 | ||
2595 | graphics | ||
2596 | [ | ||
2597 | fill "#000000" | ||
2598 | targetArrow "standard" | ||
2599 | ] | ||
2600 | LabelGraphics | ||
2601 | [ | ||
2602 | text "serializable attribute EDataType" | ||
2603 | fontSize 14 | ||
2604 | fontName "Consolas" | ||
2605 | configuration "AutoFlippingLabel" | ||
2606 | model "six_pos" | ||
2607 | position "thead" | ||
2608 | ] | ||
2609 | ] | ||
2610 | edge | ||
2611 | [ | ||
2612 | source 14 | ||
2613 | target 2 | ||
2614 | graphics | ||
2615 | [ | ||
2616 | fill "#000000" | ||
2617 | targetArrow "standard" | ||
2618 | ] | ||
2619 | LabelGraphics | ||
2620 | [ | ||
2621 | text "serializable attribute EDataType" | ||
2622 | fontSize 14 | ||
2623 | fontName "Consolas" | ||
2624 | configuration "AutoFlippingLabel" | ||
2625 | model "six_pos" | ||
2626 | position "thead" | ||
2627 | ] | ||
2628 | ] | ||
2629 | edge | ||
2630 | [ | ||
2631 | source 11 | ||
2632 | target 1 | ||
2633 | graphics | ||
2634 | [ | ||
2635 | fill "#000000" | ||
2636 | targetArrow "standard" | ||
2637 | ] | ||
2638 | LabelGraphics | ||
2639 | [ | ||
2640 | text "serializable attribute EDataType" | ||
2641 | fontSize 14 | ||
2642 | fontName "Consolas" | ||
2643 | configuration "AutoFlippingLabel" | ||
2644 | model "six_pos" | ||
2645 | position "thead" | ||
2646 | ] | ||
2647 | ] | ||
2648 | edge | ||
2649 | [ | ||
2650 | source 15 | ||
2651 | target 8 | ||
2652 | graphics | ||
2653 | [ | ||
2654 | fill "#000000" | ||
2655 | targetArrow "standard" | ||
2656 | ] | ||
2657 | LabelGraphics | ||
2658 | [ | ||
2659 | text "literal attribute EEnumLiteral" | ||
2660 | fontSize 14 | ||
2661 | fontName "Consolas" | ||
2662 | configuration "AutoFlippingLabel" | ||
2663 | model "six_pos" | ||
2664 | position "thead" | ||
2665 | ] | ||
2666 | ] | ||
2667 | edge | ||
2668 | [ | ||
2669 | source 0 | ||
2670 | target 10 | ||
2671 | graphics | ||
2672 | [ | ||
2673 | fill "#000000" | ||
2674 | targetArrow "standard" | ||
2675 | ] | ||
2676 | LabelGraphics | ||
2677 | [ | ||
2678 | text "name attribute ENamedElement" | ||
2679 | fontSize 14 | ||
2680 | fontName "Consolas" | ||
2681 | configuration "AutoFlippingLabel" | ||
2682 | model "six_pos" | ||
2683 | position "thead" | ||
2684 | ] | ||
2685 | ] | ||
2686 | edge | ||
2687 | [ | ||
2688 | source 11 | ||
2689 | target 10 | ||
2690 | graphics | ||
2691 | [ | ||
2692 | fill "#000000" | ||
2693 | targetArrow "standard" | ||
2694 | ] | ||
2695 | LabelGraphics | ||
2696 | [ | ||
2697 | text "name attribute ENamedElement" | ||
2698 | fontSize 14 | ||
2699 | fontName "Consolas" | ||
2700 | configuration "AutoFlippingLabel" | ||
2701 | model "six_pos" | ||
2702 | position "thead" | ||
2703 | ] | ||
2704 | ] | ||
2705 | edge | ||
2706 | [ | ||
2707 | source 12 | ||
2708 | target 9 | ||
2709 | graphics | ||
2710 | [ | ||
2711 | fill "#000000" | ||
2712 | targetArrow "standard" | ||
2713 | ] | ||
2714 | LabelGraphics | ||
2715 | [ | ||
2716 | text "name attribute ENamedElement" | ||
2717 | fontSize 14 | ||
2718 | fontName "Consolas" | ||
2719 | configuration "AutoFlippingLabel" | ||
2720 | model "six_pos" | ||
2721 | position "thead" | ||
2722 | ] | ||
2723 | ] | ||
2724 | edge | ||
2725 | [ | ||
2726 | source 14 | ||
2727 | target 9 | ||
2728 | graphics | ||
2729 | [ | ||
2730 | fill "#000000" | ||
2731 | targetArrow "standard" | ||
2732 | ] | ||
2733 | LabelGraphics | ||
2734 | [ | ||
2735 | text "name attribute ENamedElement" | ||
2736 | fontSize 14 | ||
2737 | fontName "Consolas" | ||
2738 | configuration "AutoFlippingLabel" | ||
2739 | model "six_pos" | ||
2740 | position "thead" | ||
2741 | ] | ||
2742 | ] | ||
2743 | edge | ||
2744 | [ | ||
2745 | source 0 | ||
2746 | target 9 | ||
2747 | graphics | ||
2748 | [ | ||
2749 | fill "#000000" | ||
2750 | targetArrow "standard" | ||
2751 | ] | ||
2752 | LabelGraphics | ||
2753 | [ | ||
2754 | text "nsURI attribute EPackage" | ||
2755 | fontSize 14 | ||
2756 | fontName "Consolas" | ||
2757 | configuration "AutoFlippingLabel" | ||
2758 | model "six_pos" | ||
2759 | position "thead" | ||
2760 | ] | ||
2761 | ] | ||
2762 | edge | ||
2763 | [ | ||
2764 | source 0 | ||
2765 | target 8 | ||
2766 | graphics | ||
2767 | [ | ||
2768 | fill "#000000" | ||
2769 | targetArrow "standard" | ||
2770 | ] | ||
2771 | LabelGraphics | ||
2772 | [ | ||
2773 | text "nsPrefix attribute EPackage" | ||
2774 | fontSize 14 | ||
2775 | fontName "Consolas" | ||
2776 | configuration "AutoFlippingLabel" | ||
2777 | model "six_pos" | ||
2778 | position "thead" | ||
2779 | ] | ||
2780 | ] | ||
2781 | ] | ||
diff --git a/Tests/Ecore-Plugin/outputs/models/5.png b/Tests/Ecore-Plugin/outputs/models/5.png new file mode 100644 index 00000000..e29bebfa --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/5.png | |||
Binary files differ | |||
diff --git a/Tests/Ecore-Plugin/outputs/models/5.xmi b/Tests/Ecore-Plugin/outputs/models/5.xmi new file mode 100644 index 00000000..a2bb293b --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/models/5.xmi | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> | ||
3 | <eAnnotations source="packageName" references="//%packageName%/@contents.0"> | ||
4 | <details/> | ||
5 | <details/> | ||
6 | <details/> | ||
7 | <contents/> | ||
8 | </eAnnotations> | ||
9 | </ecore:EPackage> | ||
diff --git a/Tests/Ecore-Plugin/outputs/statistics.csv b/Tests/Ecore-Plugin/outputs/statistics.csv new file mode 100644 index 00000000..2b912cc5 --- /dev/null +++ b/Tests/Ecore-Plugin/outputs/statistics.csv | |||
@@ -0,0 +1,64 @@ | |||
1 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
2 | 1;1;ModelResultImpl;963;10981;20587;28028267344;944;963;974;985;998;675;331;46;0;41 | ||
3 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
4 | 2;1;ModelResultImpl;1485;7933;16659;19719216169;660;682;697;715;728;533;354;29;0;55 | ||
5 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;Answer0Time;Answer1Time;Answer2Time;Answer3Time;Answer4Time;Alloy2KodKodTransformationTime;warnings | ||
6 | 2;1;ModelResultImpl;1032;4928;-1;660853711;1387;1438;1485;1539;1580;859;[== is redundant, because the left and right expressions always have the same value. | ||
7 | Left type = {String} | ||
8 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
9 | Left type = {String} | ||
10 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
11 | Left type = {String} | ||
12 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
13 | Left type = {String} | ||
14 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
15 | Left type = {String} | ||
16 | Right type = {String}] | ||
17 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;Answer0Time;Answer1Time;Answer2Time;Answer3Time;Answer4Time;Alloy2KodKodTransformationTime;warnings | ||
18 | 2;1;ModelResultImpl;62;1991;-1;403150236;187;206;224;249;269;180;[== is redundant, because the left and right expressions always have the same value. | ||
19 | Left type = {String} | ||
20 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
21 | Left type = {String} | ||
22 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
23 | Left type = {String} | ||
24 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
25 | Left type = {String} | ||
26 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
27 | Left type = {String} | ||
28 | Right type = {String}] | ||
29 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;Answer0Time;Answer1Time;Answer2Time;Answer3Time;Answer4Time;Alloy2KodKodTransformationTime;warnings | ||
30 | 2;1;ModelResultImpl;1370;5611;-1;106059204862;983;1046;1085;1150;1184;481;[== is redundant, because the left and right expressions always have the same value. | ||
31 | Left type = {String} | ||
32 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
33 | Left type = {String} | ||
34 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
35 | Left type = {String} | ||
36 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
37 | Left type = {String} | ||
38 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
39 | Left type = {String} | ||
40 | Right type = {String}] | ||
41 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;Answer0Time;Answer1Time;Answer2Time;Answer3Time;Answer4Time;Alloy2KodKodTransformationTime;warnings | ||
42 | 2;1;ModelResultImpl;82;2461;-1;254200930176;282;310;343;374;403;169;[== is redundant, because the left and right expressions always have the same value. | ||
43 | Left type = {String} | ||
44 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
45 | Left type = {String} | ||
46 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
47 | Left type = {String} | ||
48 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
49 | Left type = {String} | ||
50 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
51 | Left type = {String} | ||
52 | Right type = {String}] | ||
53 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;Answer0Time;Answer1Time;Answer2Time;Answer3Time;Answer4Time;Alloy2KodKodTransformationTime;warnings | ||
54 | 2;1;ModelResultImpl;1159;5901;-1;200731387125;1011;1099;1186;1269;1371;365;[== is redundant, because the left and right expressions always have the same value. | ||
55 | Left type = {String} | ||
56 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
57 | Left type = {String} | ||
58 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
59 | Left type = {String} | ||
60 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
61 | Left type = {String} | ||
62 | Right type = {String},== is redundant, because the left and right expressions always have the same value. | ||
63 | Left type = {String} | ||
64 | Right type = {String}] | ||