diff options
author | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-04 01:33:58 -0500 |
---|---|---|
committer | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-04 01:33:58 -0500 |
commit | a20af4d0dbf5eab84ee271d426528aabb5a8ac3b (patch) | |
tree | a9ab772ee313125aaf3a941d66e131b408d949ba /Framework | |
parent | changes in settings of measurements (diff) | |
parent | merge with current master, comment numerical solver related logging (diff) | |
download | VIATRA-Generator-a20af4d0dbf5eab84ee271d426528aabb5a8ac3b.tar.gz VIATRA-Generator-a20af4d0dbf5eab84ee271d426528aabb5a8ac3b.tar.zst VIATRA-Generator-a20af4d0dbf5eab84ee271d426528aabb5a8ac3b.zip |
fix merging issue
Diffstat (limited to 'Framework')
51 files changed, 4301 insertions, 1083 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird index 2336933d..6d0f06b7 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird | |||
@@ -1,527 +1,575 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_8ji8MMArEeaaj7sYFz2QKg" selectedViews="_8mY00MArEeaaj7sYFz2QKg _8mhXsMArEeaaj7sYFz2QKg _8mrIsMArEeaaj7sYFz2QKg _8mydcMArEeaaj7sYFz2QKg" version="10.1.0.201509162000"> | 2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> |
3 | <semanticResources>ecore2logicannotations.ecore</semanticResources> | 3 | <viewpoint:DAnalysis uid="_8ji8MMArEeaaj7sYFz2QKg" selectedViews="_8mY00MArEeaaj7sYFz2QKg _8mhXsMArEeaaj7sYFz2QKg _8mrIsMArEeaaj7sYFz2QKg _8mydcMArEeaaj7sYFz2QKg" version="14.1.0.201810161215"> |
4 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore</semanticResources> | 4 | <semanticResources>ecore2logicannotations.ecore</semanticResources> |
5 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore</semanticResources> | 5 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore</semanticResources> |
6 | <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources> | 6 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore</semanticResources> |
7 | <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mY00MArEeaaj7sYFz2QKg"> | 7 | <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources> |
8 | <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_9rgp0MArEeaaj7sYFz2QKg" name="ecore2logicannotations class diagram"> | 8 | <ownedViews xmi:type="viewpoint:DView" uid="_8mY00MArEeaaj7sYFz2QKg"> |
9 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_9rgp0cArEeaaj7sYFz2QKg" source="DANNOTATION_CUSTOMIZATION_KEY"> | 9 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> |
10 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_9rgp0sArEeaaj7sYFz2QKg"> | 10 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_mYtLUKPiEemFddEW7ouAfg" name="ecore2logicannotations class diagram" repPath="#_9rgp0MArEeaaj7sYFz2QKg"> |
11 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_DwMwIcAsEeaaj7sYFz2QKg" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> | 11 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
12 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 12 | <target xmi:type="ecore:EPackage" href="ecore2logicannotations.ecore#/"/> |
13 | </ownedRepresentationDescriptors> | ||
14 | </ownedViews> | ||
15 | <ownedViews xmi:type="viewpoint:DView" uid="_8mhXsMArEeaaj7sYFz2QKg"> | ||
16 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> | ||
17 | </ownedViews> | ||
18 | <ownedViews xmi:type="viewpoint:DView" uid="_8mrIsMArEeaaj7sYFz2QKg"> | ||
19 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> | ||
20 | </ownedViews> | ||
21 | <ownedViews xmi:type="viewpoint:DView" uid="_8mydcMArEeaaj7sYFz2QKg"> | ||
22 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/> | ||
23 | </ownedViews> | ||
24 | </viewpoint:DAnalysis> | ||
25 | <diagram:DSemanticDiagram uid="_9rgp0MArEeaaj7sYFz2QKg" name="ecore2logicannotations class diagram"> | ||
26 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_9rgp0cArEeaaj7sYFz2QKg" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
27 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_9rgp0sArEeaaj7sYFz2QKg"> | ||
28 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_DwMwIcAsEeaaj7sYFz2QKg" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> | ||
29 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
30 | <labelFormat>bold</labelFormat> | ||
31 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
32 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
33 | </computedStyleDescriptions> | ||
34 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan"> | ||
35 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
36 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_DwN-QcAsEeaaj7sYFz2QKg" showIcon="false" labelExpression="service:render"> | ||
13 | <labelFormat>bold</labelFormat> | 37 | <labelFormat>bold</labelFormat> |
14 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 38 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
15 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 39 | </centerLabelStyleDescription> |
16 | </computedStyleDescriptions> | 40 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_DwN-QsAsEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> |
17 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan"> | 41 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> |
18 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 42 | </endLabelStyleDescription> |
19 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_DwN-QcAsEeaaj7sYFz2QKg" showIcon="false" labelExpression="service:render"> | 43 | </computedStyleDescriptions> |
20 | <labelFormat>bold</labelFormat> | 44 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan"> |
21 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 45 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
22 | </centerLabelStyleDescription> | 46 | <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_XIVCYcDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:renderEOpposite"> |
23 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_DwN-QsAsEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
24 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
25 | </endLabelStyleDescription> | ||
26 | </computedStyleDescriptions> | ||
27 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan"> | ||
28 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
29 | <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_XIVCYcDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:renderEOpposite"> | ||
30 | <labelFormat>bold</labelFormat> | ||
31 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
32 | </beginLabelStyleDescription> | ||
33 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_XIVCYsDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:render"> | ||
34 | <labelFormat>bold</labelFormat> | ||
35 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
36 | </endLabelStyleDescription> | ||
37 | </computedStyleDescriptions> | ||
38 | </data> | ||
39 | </ownedAnnotationEntries> | ||
40 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_9rjtIMArEeaaj7sYFz2QKg" source="GMF_DIAGRAMS"> | ||
41 | <data xmi:type="notation:Diagram" xmi:id="_9rjtIcArEeaaj7sYFz2QKg" type="Sirius" element="_9rgp0MArEeaaj7sYFz2QKg" measurementUnit="Pixel"> | ||
42 | <children xmi:type="notation:Node" xmi:id="_-SNdcMArEeaaj7sYFz2QKg" type="2003" element="_-SH94MArEeaaj7sYFz2QKg"> | ||
43 | <children xmi:type="notation:Node" xmi:id="_-SOEgMArEeaaj7sYFz2QKg" type="5007"/> | ||
44 | <children xmi:type="notation:Node" xmi:id="_-SOrkMArEeaaj7sYFz2QKg" type="7004"> | ||
45 | <styles xmi:type="notation:SortingStyle" xmi:id="_-SOrkcArEeaaj7sYFz2QKg"/> | ||
46 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-SOrksArEeaaj7sYFz2QKg"/> | ||
47 | </children> | ||
48 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-SNdccArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
49 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SNdcsArEeaaj7sYFz2QKg" x="100" y="180"/> | ||
50 | </children> | ||
51 | <children xmi:type="notation:Node" xmi:id="_-5TSoMArEeaaj7sYFz2QKg" type="2003" element="_-5OaIMArEeaaj7sYFz2QKg"> | ||
52 | <children xmi:type="notation:Node" xmi:id="_-5T5sMArEeaaj7sYFz2QKg" type="5007"/> | ||
53 | <children xmi:type="notation:Node" xmi:id="_-5T5scArEeaaj7sYFz2QKg" type="7004"> | ||
54 | <styles xmi:type="notation:SortingStyle" xmi:id="_-5T5ssArEeaaj7sYFz2QKg"/> | ||
55 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-5T5s8ArEeaaj7sYFz2QKg"/> | ||
56 | </children> | ||
57 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-5TSocArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
58 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5TSosArEeaaj7sYFz2QKg" x="260" y="15"/> | ||
59 | </children> | ||
60 | <children xmi:type="notation:Node" xmi:id="_ABlJUMAsEeaaj7sYFz2QKg" type="2003" element="_ABfpwMAsEeaaj7sYFz2QKg"> | ||
61 | <children xmi:type="notation:Node" xmi:id="_ABlwYMAsEeaaj7sYFz2QKg" type="5007"/> | ||
62 | <children xmi:type="notation:Node" xmi:id="_ABlwYcAsEeaaj7sYFz2QKg" type="7004"> | ||
63 | <styles xmi:type="notation:SortingStyle" xmi:id="_ABlwYsAsEeaaj7sYFz2QKg"/> | ||
64 | <styles xmi:type="notation:FilteringStyle" xmi:id="_ABlwY8AsEeaaj7sYFz2QKg"/> | ||
65 | </children> | ||
66 | <styles xmi:type="notation:ShapeStyle" xmi:id="_ABlJUcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
67 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABlJUsAsEeaaj7sYFz2QKg" x="520" y="180" width="168" height="100"/> | ||
68 | </children> | ||
69 | <children xmi:type="notation:Node" xmi:id="_DwQagMAsEeaaj7sYFz2QKg" type="2003" element="_DwH3oMAsEeaaj7sYFz2QKg"> | ||
70 | <children xmi:type="notation:Node" xmi:id="_DwRBkMAsEeaaj7sYFz2QKg" type="5007"/> | ||
71 | <children xmi:type="notation:Node" xmi:id="_DwRBkcAsEeaaj7sYFz2QKg" type="7004"> | ||
72 | <children xmi:type="notation:Node" xmi:id="_DwRBlMAsEeaaj7sYFz2QKg" type="3010" element="_DwMwIMAsEeaaj7sYFz2QKg"> | ||
73 | <styles xmi:type="notation:FontStyle" xmi:id="_DwRBlcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
74 | <layoutConstraint xmi:type="notation:Location" xmi:id="_DwRBlsAsEeaaj7sYFz2QKg"/> | ||
75 | </children> | ||
76 | <styles xmi:type="notation:SortingStyle" xmi:id="_DwRBksAsEeaaj7sYFz2QKg"/> | ||
77 | <styles xmi:type="notation:FilteringStyle" xmi:id="_DwRBk8AsEeaaj7sYFz2QKg"/> | ||
78 | </children> | ||
79 | <styles xmi:type="notation:ShapeStyle" xmi:id="_DwQagcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
80 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwQagsAsEeaaj7sYFz2QKg" x="500" y="15"/> | ||
81 | </children> | ||
82 | <children xmi:type="notation:Node" xmi:id="_Cu2ycMAtEeaaj7sYFz2QKg" type="2003" element="_CuwEwMAtEeaaj7sYFz2QKg"> | ||
83 | <children xmi:type="notation:Node" xmi:id="_Cu2yc8AtEeaaj7sYFz2QKg" type="5007"/> | ||
84 | <children xmi:type="notation:Node" xmi:id="_Cu2ydMAtEeaaj7sYFz2QKg" type="7004"> | ||
85 | <children xmi:type="notation:Node" xmi:id="_GeXKEMAtEeaaj7sYFz2QKg" type="3010" element="_JJ28cMAsEeaaj7sYFz2QKg"> | ||
86 | <styles xmi:type="notation:FontStyle" xmi:id="_GeXKEcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
87 | <layoutConstraint xmi:type="notation:Location" xmi:id="_GeXKEsAtEeaaj7sYFz2QKg"/> | ||
88 | </children> | ||
89 | <styles xmi:type="notation:SortingStyle" xmi:id="_Cu2ydcAtEeaaj7sYFz2QKg"/> | ||
90 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Cu2ydsAtEeaaj7sYFz2QKg"/> | ||
91 | </children> | ||
92 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Cu2yccAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
93 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cu2ycsAtEeaaj7sYFz2QKg" x="25" y="330" width="120" height="100"/> | ||
94 | </children> | ||
95 | <children xmi:type="notation:Node" xmi:id="_EQinoMAtEeaaj7sYFz2QKg" type="2003" element="_EQaEwMAtEeaaj7sYFz2QKg"> | ||
96 | <children xmi:type="notation:Node" xmi:id="_EQjOsMAtEeaaj7sYFz2QKg" type="5007"/> | ||
97 | <children xmi:type="notation:Node" xmi:id="_EQjOscAtEeaaj7sYFz2QKg" type="7004"> | ||
98 | <children xmi:type="notation:Node" xmi:id="_GLWugMAtEeaaj7sYFz2QKg" type="3010" element="_KDnO8MAsEeaaj7sYFz2QKg"> | ||
99 | <styles xmi:type="notation:FontStyle" xmi:id="_GLWugcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
100 | <layoutConstraint xmi:type="notation:Location" xmi:id="_GLWugsAtEeaaj7sYFz2QKg"/> | ||
101 | </children> | ||
102 | <styles xmi:type="notation:SortingStyle" xmi:id="_EQjOssAtEeaaj7sYFz2QKg"/> | ||
103 | <styles xmi:type="notation:FilteringStyle" xmi:id="_EQjOs8AtEeaaj7sYFz2QKg"/> | ||
104 | </children> | ||
105 | <styles xmi:type="notation:ShapeStyle" xmi:id="_EQinocAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
106 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EQinosAtEeaaj7sYFz2QKg" x="163" y="330" width="120" height="100"/> | ||
107 | </children> | ||
108 | <children xmi:type="notation:Node" xmi:id="_LJwiMMAtEeaaj7sYFz2QKg" type="2003" element="_LJomYMAtEeaaj7sYFz2QKg"> | ||
109 | <children xmi:type="notation:Node" xmi:id="_LJwiM8AtEeaaj7sYFz2QKg" type="5007"/> | ||
110 | <children xmi:type="notation:Node" xmi:id="_LJxJQMAtEeaaj7sYFz2QKg" type="7004"> | ||
111 | <styles xmi:type="notation:SortingStyle" xmi:id="_LJxJQcAtEeaaj7sYFz2QKg"/> | ||
112 | <styles xmi:type="notation:FilteringStyle" xmi:id="_LJxJQsAtEeaaj7sYFz2QKg"/> | ||
113 | </children> | ||
114 | <styles xmi:type="notation:ShapeStyle" xmi:id="_LJwiMcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
115 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJwiMsAtEeaaj7sYFz2QKg" x="280" y="-150"/> | ||
116 | </children> | ||
117 | <children xmi:type="notation:Node" xmi:id="_OgZt4MAtEeaaj7sYFz2QKg" type="2003" element="_OgM5kMAtEeaaj7sYFz2QKg"> | ||
118 | <children xmi:type="notation:Node" xmi:id="_OgZt48AtEeaaj7sYFz2QKg" type="5007"/> | ||
119 | <children xmi:type="notation:Node" xmi:id="_OgZt5MAtEeaaj7sYFz2QKg" type="7004"> | ||
120 | <styles xmi:type="notation:SortingStyle" xmi:id="_OgZt5cAtEeaaj7sYFz2QKg"/> | ||
121 | <styles xmi:type="notation:FilteringStyle" xmi:id="_OgZt5sAtEeaaj7sYFz2QKg"/> | ||
122 | </children> | ||
123 | <styles xmi:type="notation:ShapeStyle" xmi:id="_OgZt4cAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" italic="true"/> | ||
124 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgZt4sAtEeaaj7sYFz2QKg" x="315" y="180"/> | ||
125 | </children> | ||
126 | <styles xmi:type="notation:DiagramStyle" xmi:id="_9rjtIsArEeaaj7sYFz2QKg"/> | ||
127 | <edges xmi:type="notation:Edge" xmi:id="_-5VH0MArEeaaj7sYFz2QKg" type="4001" element="_-5SEgcArEeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg"> | ||
128 | <children xmi:type="notation:Node" xmi:id="_-5Vu4MArEeaaj7sYFz2QKg" type="6001"> | ||
129 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu4cArEeaaj7sYFz2QKg" y="-10"/> | ||
130 | </children> | ||
131 | <children xmi:type="notation:Node" xmi:id="_-5Vu4sArEeaaj7sYFz2QKg" type="6002"> | ||
132 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu48ArEeaaj7sYFz2QKg" y="10"/> | ||
133 | </children> | ||
134 | <children xmi:type="notation:Node" xmi:id="_-5Vu5MArEeaaj7sYFz2QKg" type="6003"> | ||
135 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu5cArEeaaj7sYFz2QKg" y="10"/> | ||
136 | </children> | ||
137 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_-5VH0cArEeaaj7sYFz2QKg" routing="Tree"/> | ||
138 | <styles xmi:type="notation:FontStyle" xmi:id="_-5VH0sArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
139 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-5VH08ArEeaaj7sYFz2QKg" points="[210, 135, 210, 135]$[0, 0, 0, 0]"/> | ||
140 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8MArEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
141 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8cArEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
142 | </edges> | ||
143 | <edges xmi:type="notation:Edge" xmi:id="_u58dgMAsEeaaj7sYFz2QKg" type="4001" element="_u5ysgMAsEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg"> | ||
144 | <children xmi:type="notation:Node" xmi:id="_u58dhMAsEeaaj7sYFz2QKg" type="6001"> | ||
145 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EkMAsEeaaj7sYFz2QKg" y="-10"/> | ||
146 | </children> | ||
147 | <children xmi:type="notation:Node" xmi:id="_u59EkcAsEeaaj7sYFz2QKg" type="6002"> | ||
148 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EksAsEeaaj7sYFz2QKg" y="10"/> | ||
149 | </children> | ||
150 | <children xmi:type="notation:Node" xmi:id="_u59Ek8AsEeaaj7sYFz2QKg" type="6003"> | ||
151 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59ElMAsEeaaj7sYFz2QKg" y="10"/> | ||
152 | </children> | ||
153 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_u58dgcAsEeaaj7sYFz2QKg" routing="Tree"/> | ||
154 | <styles xmi:type="notation:FontStyle" xmi:id="_u58dgsAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
155 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u58dg8AsEeaaj7sYFz2QKg" points="[0, 0, 101, 67]$[-101, -67, 0, 0]"/> | ||
156 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElcAsEeaaj7sYFz2QKg" id="(0.8132530120481928,0.0)"/> | ||
157 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElsAsEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
158 | </edges> | ||
159 | <edges xmi:type="notation:Edge" xmi:id="_HR0nUMAtEeaaj7sYFz2QKg" type="4001" element="_HRrdYMAtEeaaj7sYFz2QKg" source="_Cu2ycMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg"> | ||
160 | <children xmi:type="notation:Node" xmi:id="_HR1OYMAtEeaaj7sYFz2QKg" type="6001"> | ||
161 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OYcAtEeaaj7sYFz2QKg" y="-10"/> | ||
162 | </children> | ||
163 | <children xmi:type="notation:Node" xmi:id="_HR1OYsAtEeaaj7sYFz2QKg" type="6002"> | ||
164 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OY8AtEeaaj7sYFz2QKg" y="10"/> | ||
165 | </children> | ||
166 | <children xmi:type="notation:Node" xmi:id="_HR1OZMAtEeaaj7sYFz2QKg" type="6003"> | ||
167 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OZcAtEeaaj7sYFz2QKg" y="10"/> | ||
168 | </children> | ||
169 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_HR0nUcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
170 | <styles xmi:type="notation:FontStyle" xmi:id="_HR0nUsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
171 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HR0nU8AtEeaaj7sYFz2QKg" points="[0, 0, -35, 52]$[35, -52, 0, 0]"/> | ||
172 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZsAtEeaaj7sYFz2QKg" id="(0.635593220338983,0.0)"/> | ||
173 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZ8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
174 | </edges> | ||
175 | <edges xmi:type="notation:Edge" xmi:id="_HuNoYMAtEeaaj7sYFz2QKg" type="4001" element="_HuEecMAtEeaaj7sYFz2QKg" source="_EQinoMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg"> | ||
176 | <children xmi:type="notation:Node" xmi:id="_HuNoZMAtEeaaj7sYFz2QKg" type="6001"> | ||
177 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZcAtEeaaj7sYFz2QKg" y="-10"/> | ||
178 | </children> | ||
179 | <children xmi:type="notation:Node" xmi:id="_HuNoZsAtEeaaj7sYFz2QKg" type="6002"> | ||
180 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZ8AtEeaaj7sYFz2QKg" y="10"/> | ||
181 | </children> | ||
182 | <children xmi:type="notation:Node" xmi:id="_HuNoaMAtEeaaj7sYFz2QKg" type="6003"> | ||
183 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoacAtEeaaj7sYFz2QKg" y="10"/> | ||
184 | </children> | ||
185 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_HuNoYcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
186 | <styles xmi:type="notation:FontStyle" xmi:id="_HuNoYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
187 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HuNoY8AtEeaaj7sYFz2QKg" points="[0, 0, 112, 52]$[-112, -52, 0, 0]"/> | ||
188 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoasAtEeaaj7sYFz2QKg" id="(0.5,0.0)"/> | ||
189 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoa8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
190 | </edges> | ||
191 | <edges xmi:type="notation:Edge" xmi:id="_LJyXYMAtEeaaj7sYFz2QKg" type="4001" element="_LJutAMAtEeaaj7sYFz2QKg" source="_-5TSoMArEeaaj7sYFz2QKg" target="_LJwiMMAtEeaaj7sYFz2QKg"> | ||
192 | <children xmi:type="notation:Node" xmi:id="_LJyXZMAtEeaaj7sYFz2QKg" type="6001"> | ||
193 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZcAtEeaaj7sYFz2QKg" y="-10"/> | ||
194 | </children> | ||
195 | <children xmi:type="notation:Node" xmi:id="_LJyXZsAtEeaaj7sYFz2QKg" type="6002"> | ||
196 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZ8AtEeaaj7sYFz2QKg" y="10"/> | ||
197 | </children> | ||
198 | <children xmi:type="notation:Node" xmi:id="_LJyXaMAtEeaaj7sYFz2QKg" type="6003"> | ||
199 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXacAtEeaaj7sYFz2QKg" y="10"/> | ||
200 | </children> | ||
201 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_LJyXYcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
202 | <styles xmi:type="notation:FontStyle" xmi:id="_LJyXYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
203 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LJyXY8AtEeaaj7sYFz2QKg" points="[260, 15, 260, 15]$[0, 0, 0, 0]"/> | ||
204 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgMAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
205 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgcAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
206 | </edges> | ||
207 | <edges xmi:type="notation:Edge" xmi:id="_QkxZYMAtEeaaj7sYFz2QKg" type="4001" element="_Qko2gMAtEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
208 | <children xmi:type="notation:Node" xmi:id="_QkxZZMAtEeaaj7sYFz2QKg" type="6001"> | ||
209 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZcAtEeaaj7sYFz2QKg" x="1" y="12"/> | ||
210 | </children> | ||
211 | <children xmi:type="notation:Node" xmi:id="_QkxZZsAtEeaaj7sYFz2QKg" type="6002"> | ||
212 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZ8AtEeaaj7sYFz2QKg" y="-10"/> | ||
213 | </children> | ||
214 | <children xmi:type="notation:Node" xmi:id="_QkxZaMAtEeaaj7sYFz2QKg" type="6003"> | ||
215 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZacAtEeaaj7sYFz2QKg" y="-10"/> | ||
216 | </children> | ||
217 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_QkxZYcAtEeaaj7sYFz2QKg" routing="Rectilinear"/> | ||
218 | <styles xmi:type="notation:FontStyle" xmi:id="_QkxZYsAtEeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
219 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QkxZY8AtEeaaj7sYFz2QKg" points="[-166, 30, 205, 30]$[-253, 30, 118, 30]"/> | ||
220 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAcMAtEeaaj7sYFz2QKg" id="(1.0,0.0)"/> | ||
221 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAccAtEeaaj7sYFz2QKg" id="(0.0,0.0)"/> | ||
222 | </edges> | ||
223 | <edges xmi:type="notation:Edge" xmi:id="_wTbfUMA0Eeaaj7sYFz2QKg" type="4001" element="_wTP5IMA0Eeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
224 | <children xmi:type="notation:Node" xmi:id="_wTbfVMA0Eeaaj7sYFz2QKg" type="6001"> | ||
225 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfVcA0Eeaaj7sYFz2QKg" x="-2" y="-12"/> | ||
226 | </children> | ||
227 | <children xmi:type="notation:Node" xmi:id="_wTbfVsA0Eeaaj7sYFz2QKg" type="6002"> | ||
228 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfV8A0Eeaaj7sYFz2QKg" x="21" y="10"/> | ||
229 | </children> | ||
230 | <children xmi:type="notation:Node" xmi:id="_wTcGYMA0Eeaaj7sYFz2QKg" type="6003"> | ||
231 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTcGYcA0Eeaaj7sYFz2QKg" y="10"/> | ||
232 | </children> | ||
233 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_wTbfUcA0Eeaaj7sYFz2QKg" routing="Rectilinear"/> | ||
234 | <styles xmi:type="notation:FontStyle" xmi:id="_wTbfUsA0Eeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
235 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTbfU8A0Eeaaj7sYFz2QKg" points="[0, 20, -124, 60]$[89, 20, -35, 60]"/> | ||
236 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGYsA0Eeaaj7sYFz2QKg" id="(1.0,0.40816326530612246)"/> | ||
237 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGY8A0Eeaaj7sYFz2QKg" id="(0.2966101694915254,0.0)"/> | ||
238 | </edges> | ||
239 | <edges xmi:type="notation:Edge" xmi:id="_D6-y0MDnEea_b6UyFzv22g" type="4001" element="_D6viQMDnEea_b6UyFzv22g" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
240 | <children xmi:type="notation:Node" xmi:id="_D6_Z4MDnEea_b6UyFzv22g" type="6001"> | ||
241 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z4cDnEea_b6UyFzv22g" y="-6"/> | ||
242 | </children> | ||
243 | <children xmi:type="notation:Node" xmi:id="_D6_Z4sDnEea_b6UyFzv22g" type="6002"> | ||
244 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z48DnEea_b6UyFzv22g" x="1" y="10"/> | ||
245 | </children> | ||
246 | <children xmi:type="notation:Node" xmi:id="_D6_Z5MDnEea_b6UyFzv22g" type="6003"> | ||
247 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z5cDnEea_b6UyFzv22g" x="-2" y="10"/> | ||
248 | </children> | ||
249 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_D6-y0cDnEea_b6UyFzv22g" routing="Rectilinear"/> | ||
250 | <styles xmi:type="notation:FontStyle" xmi:id="_D6-y0sDnEea_b6UyFzv22g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
251 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D6-y08DnEea_b6UyFzv22g" points="[0, 0, 87, 10]$[-87, 0, 0, 10]"/> | ||
252 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D6_Z5sDnEea_b6UyFzv22g" id="(0.0,0.8673469387755102)"/> | ||
253 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D7AA8MDnEea_b6UyFzv22g" id="(1.0,0.7653061224489796)"/> | ||
254 | </edges> | ||
255 | <edges xmi:type="notation:Edge" xmi:id="_NpFP0MDnEea_b6UyFzv22g" type="4001" element="_NozjAMDnEea_b6UyFzv22g" source="_-5TSoMArEeaaj7sYFz2QKg" target="_DwQagMAsEeaaj7sYFz2QKg"> | ||
256 | <children xmi:type="notation:Node" xmi:id="_NpFP1MDnEea_b6UyFzv22g" type="6001"> | ||
257 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpFP1cDnEea_b6UyFzv22g" y="-10"/> | ||
258 | </children> | ||
259 | <children xmi:type="notation:Node" xmi:id="_NpF24MDnEea_b6UyFzv22g" type="6002"> | ||
260 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF24cDnEea_b6UyFzv22g" y="10"/> | ||
261 | </children> | ||
262 | <children xmi:type="notation:Node" xmi:id="_NpF24sDnEea_b6UyFzv22g" type="6003"> | ||
263 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF248DnEea_b6UyFzv22g" y="10"/> | ||
264 | </children> | ||
265 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_NpFP0cDnEea_b6UyFzv22g" routing="Rectilinear"/> | ||
266 | <styles xmi:type="notation:FontStyle" xmi:id="_NpFP0sDnEea_b6UyFzv22g" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
267 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NpFP08DnEea_b6UyFzv22g" points="[260, 15, 260, 15]$[500, 15, 500, 15]"/> | ||
268 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25MDnEea_b6UyFzv22g" id="(0.5,0.5)"/> | ||
269 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25cDnEea_b6UyFzv22g" id="(0.5,0.5)"/> | ||
270 | </edges> | ||
271 | </data> | ||
272 | </ownedAnnotationEntries> | ||
273 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-SH94MArEeaaj7sYFz2QKg" name="MultiplicityAssertion" tooltipText="" outgoingEdges="_-5SEgcArEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg" incomingEdges="_HRrdYMAtEeaaj7sYFz2QKg _HuEecMAtEeaaj7sYFz2QKg" width="12" height="10"> | ||
274 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
275 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
276 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
277 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
278 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
279 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_BQSisMAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
280 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
281 | </ownedStyle> | ||
282 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
283 | </ownedDiagramElements> | ||
284 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-5OaIMArEeaaj7sYFz2QKg" name="AssertionAnnotation" tooltipText="" outgoingEdges="_LJutAMAtEeaaj7sYFz2QKg _NozjAMDnEea_b6UyFzv22g" incomingEdges="_-5SEgcArEeaaj7sYFz2QKg _u5ysgMAsEeaaj7sYFz2QKg" width="12" height="10"> | ||
285 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
286 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
287 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_-5SEgMArEeaaj7sYFz2QKg"> | ||
288 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
289 | </decorations> | ||
290 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
291 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
292 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
293 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_XIPi0MDwEea_b6UyFzv22g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
294 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
295 | </ownedStyle> | ||
296 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
297 | </ownedDiagramElements> | ||
298 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-5SEgcArEeaaj7sYFz2QKg" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg"> | ||
299 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
300 | <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//MultiplicityAssertion/@eGenericSuperTypes.0"/> | ||
301 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_BQWNEMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
302 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
303 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_BQWNEcAtEeaaj7sYFz2QKg" showIcon="false"> | ||
304 | <labelFormat>italic</labelFormat> | ||
305 | </beginLabelStyle> | ||
306 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_BQWNEsAtEeaaj7sYFz2QKg" showIcon="false"/> | ||
307 | </ownedStyle> | ||
308 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
309 | </ownedDiagramElements> | ||
310 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_ABfpwMAsEeaaj7sYFz2QKg" name="InverseRelationAssertion" tooltipText="" outgoingEdges="_u5ysgMAsEeaaj7sYFz2QKg _Qko2gMAtEeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10"> | ||
311 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> | ||
312 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> | ||
313 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
314 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
315 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
316 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_ABfpwcAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
317 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
318 | </ownedStyle> | ||
319 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
320 | </ownedDiagramElements> | ||
321 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_DwH3oMAsEeaaj7sYFz2QKg" name="Assertion" tooltipText="" incomingEdges="_NozjAMDnEea_b6UyFzv22g" width="12" height="10"> | ||
322 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/> | ||
323 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/> | ||
324 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_DwNXMMAsEeaaj7sYFz2QKg"> | ||
325 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
326 | </decorations> | ||
327 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
328 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
329 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
330 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_DwH3ocAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
331 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
332 | </ownedStyle> | ||
333 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
334 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_DwMwIMAsEeaaj7sYFz2QKg" name="name : EString" tooltipText=""> | ||
335 | <target xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/> | ||
336 | <semanticElements xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/> | ||
337 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_DwMwIsAsEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
338 | <labelFormat>bold</labelFormat> | 47 | <labelFormat>bold</labelFormat> |
339 | </ownedStyle> | 48 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
340 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | 49 | </beginLabelStyleDescription> |
341 | </ownedElements> | 50 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_XIVCYsDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:render"> |
342 | </ownedDiagramElements> | ||
343 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_u5ysgMAsEeaaj7sYFz2QKg" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg"> | ||
344 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> | ||
345 | <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//InverseRelationAssertion/@eGenericSuperTypes.0"/> | ||
346 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_u5zTkMAsEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
347 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
348 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_u5zTkcAsEeaaj7sYFz2QKg" showIcon="false"> | ||
349 | <labelFormat>italic</labelFormat> | ||
350 | </beginLabelStyle> | ||
351 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_u5zTksAsEeaaj7sYFz2QKg" showIcon="false"/> | ||
352 | </ownedStyle> | ||
353 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
354 | </ownedDiagramElements> | ||
355 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_CuwEwMAtEeaaj7sYFz2QKg" name="LowerMultiplicityAssertion" tooltipText="" outgoingEdges="_HRrdYMAtEeaaj7sYFz2QKg" width="12" height="10"> | ||
356 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> | ||
357 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> | ||
358 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
359 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
360 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
361 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_CuwEwcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
362 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
363 | </ownedStyle> | ||
364 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
365 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_JJ28cMAsEeaaj7sYFz2QKg" name="lower : EInt" tooltipText=""> | ||
366 | <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/> | ||
367 | <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/> | ||
368 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Alvw4MAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
369 | <labelFormat>bold</labelFormat> | ||
370 | </ownedStyle> | ||
371 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
372 | </ownedElements> | ||
373 | </ownedDiagramElements> | ||
374 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_EQaEwMAtEeaaj7sYFz2QKg" name="UpperMultiplicityAssertion" tooltipText="" outgoingEdges="_HuEecMAtEeaaj7sYFz2QKg" width="12" height="10"> | ||
375 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> | ||
376 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> | ||
377 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
378 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
379 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
380 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_EQar0MAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
381 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
382 | </ownedStyle> | ||
383 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
384 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_KDnO8MAsEeaaj7sYFz2QKg" name="upper : EInt" tooltipText=""> | ||
385 | <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/> | ||
386 | <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/> | ||
387 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_F2B-wMAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
388 | <labelFormat>bold</labelFormat> | 51 | <labelFormat>bold</labelFormat> |
389 | </ownedStyle> | 52 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
390 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | 53 | </endLabelStyleDescription> |
391 | </ownedElements> | 54 | </computedStyleDescriptions> |
392 | </ownedDiagramElements> | 55 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_nza10KPiEemFddEW7ouAfg" labelExpression="service:renderAsNode" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> |
393 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HRrdYMAtEeaaj7sYFz2QKg" sourceNode="_CuwEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg"> | 56 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
394 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> | 57 | <labelFormat>bold</labelFormat> |
395 | <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/@eGenericSuperTypes.0"/> | 58 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
396 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HRsEcMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | 59 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> |
397 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 60 | </computedStyleDescriptions> |
398 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HRsEccAtEeaaj7sYFz2QKg" showIcon="false"> | 61 | </data> |
399 | <labelFormat>italic</labelFormat> | 62 | </ownedAnnotationEntries> |
400 | </beginLabelStyle> | 63 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_9rjtIMArEeaaj7sYFz2QKg" source="GMF_DIAGRAMS"> |
401 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HRsEcsAtEeaaj7sYFz2QKg" showIcon="false"/> | 64 | <data xmi:type="notation:Diagram" xmi:id="_9rjtIcArEeaaj7sYFz2QKg" type="Sirius" element="_9rgp0MArEeaaj7sYFz2QKg" measurementUnit="Pixel"> |
402 | </ownedStyle> | 65 | <children xmi:type="notation:Node" xmi:id="_-SNdcMArEeaaj7sYFz2QKg" type="2003" element="_-SH94MArEeaaj7sYFz2QKg"> |
403 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 66 | <children xmi:type="notation:Node" xmi:id="_-SOEgMArEeaaj7sYFz2QKg" type="5007"/> |
404 | </ownedDiagramElements> | 67 | <children xmi:type="notation:Node" xmi:id="_-SOrkMArEeaaj7sYFz2QKg" type="7004"> |
405 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HuEecMAtEeaaj7sYFz2QKg" sourceNode="_EQaEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg"> | 68 | <styles xmi:type="notation:SortingStyle" xmi:id="_-SOrkcArEeaaj7sYFz2QKg"/> |
406 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> | 69 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-SOrksArEeaaj7sYFz2QKg"/> |
407 | <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/@eGenericSuperTypes.0"/> | 70 | </children> |
408 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HuEeccAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | 71 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-SNdccArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> |
409 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 72 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SNdcsArEeaaj7sYFz2QKg" x="100" y="180"/> |
410 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HuEecsAtEeaaj7sYFz2QKg" showIcon="false"> | 73 | </children> |
411 | <labelFormat>italic</labelFormat> | 74 | <children xmi:type="notation:Node" xmi:id="_-5TSoMArEeaaj7sYFz2QKg" type="2003" element="_-5OaIMArEeaaj7sYFz2QKg"> |
412 | </beginLabelStyle> | 75 | <children xmi:type="notation:Node" xmi:id="_-5T5sMArEeaaj7sYFz2QKg" type="5007"/> |
413 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HuEec8AtEeaaj7sYFz2QKg" showIcon="false"/> | 76 | <children xmi:type="notation:Node" xmi:id="_-5T5scArEeaaj7sYFz2QKg" type="7004"> |
414 | </ownedStyle> | 77 | <styles xmi:type="notation:SortingStyle" xmi:id="_-5T5ssArEeaaj7sYFz2QKg"/> |
415 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 78 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-5T5s8ArEeaaj7sYFz2QKg"/> |
416 | </ownedDiagramElements> | 79 | </children> |
417 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_LJomYMAtEeaaj7sYFz2QKg" name="Annotation" tooltipText="" incomingEdges="_LJutAMAtEeaaj7sYFz2QKg" width="12" height="10"> | 80 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-5TSocArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> |
418 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | 81 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5TSosArEeaaj7sYFz2QKg" x="260" y="15"/> |
419 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | 82 | </children> |
420 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_LJte4MAtEeaaj7sYFz2QKg"> | 83 | <children xmi:type="notation:Node" xmi:id="_ABlJUMAsEeaaj7sYFz2QKg" type="2003" element="_ABfpwMAsEeaaj7sYFz2QKg"> |
421 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 84 | <children xmi:type="notation:Node" xmi:id="_ABlwYMAsEeaaj7sYFz2QKg" type="5007"/> |
422 | </decorations> | 85 | <children xmi:type="notation:Node" xmi:id="_ABlwYcAsEeaaj7sYFz2QKg" type="7004"> |
423 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 86 | <styles xmi:type="notation:SortingStyle" xmi:id="_ABlwYsAsEeaaj7sYFz2QKg"/> |
424 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 87 | <styles xmi:type="notation:FilteringStyle" xmi:id="_ABlwY8AsEeaaj7sYFz2QKg"/> |
425 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 88 | </children> |
426 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_LJomYcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 89 | <styles xmi:type="notation:ShapeStyle" xmi:id="_ABlJUcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> |
427 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 90 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABlJUsAsEeaaj7sYFz2QKg" x="520" y="180" width="168" height="100"/> |
91 | </children> | ||
92 | <children xmi:type="notation:Node" xmi:id="_DwQagMAsEeaaj7sYFz2QKg" type="2003" element="_DwH3oMAsEeaaj7sYFz2QKg"> | ||
93 | <children xmi:type="notation:Node" xmi:id="_DwRBkMAsEeaaj7sYFz2QKg" type="5007"/> | ||
94 | <children xmi:type="notation:Node" xmi:id="_DwRBkcAsEeaaj7sYFz2QKg" type="7004"> | ||
95 | <children xmi:type="notation:Node" xmi:id="_DwRBlMAsEeaaj7sYFz2QKg" type="3010" element="_DwMwIMAsEeaaj7sYFz2QKg"> | ||
96 | <styles xmi:type="notation:FontStyle" xmi:id="_DwRBlcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
97 | <layoutConstraint xmi:type="notation:Location" xmi:id="_DwRBlsAsEeaaj7sYFz2QKg"/> | ||
98 | </children> | ||
99 | <children xmi:type="notation:Node" xmi:id="_n0E9IKPiEemFddEW7ouAfg" type="3010" element="_nzRr5aPiEemFddEW7ouAfg"> | ||
100 | <styles xmi:type="notation:FontStyle" xmi:id="_n0E9IaPiEemFddEW7ouAfg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
101 | <layoutConstraint xmi:type="notation:Location" xmi:id="_n0E9IqPiEemFddEW7ouAfg"/> | ||
102 | </children> | ||
103 | <styles xmi:type="notation:SortingStyle" xmi:id="_DwRBksAsEeaaj7sYFz2QKg"/> | ||
104 | <styles xmi:type="notation:FilteringStyle" xmi:id="_DwRBk8AsEeaaj7sYFz2QKg"/> | ||
105 | </children> | ||
106 | <styles xmi:type="notation:ShapeStyle" xmi:id="_DwQagcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
107 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwQagsAsEeaaj7sYFz2QKg" x="500" y="15"/> | ||
108 | </children> | ||
109 | <children xmi:type="notation:Node" xmi:id="_Cu2ycMAtEeaaj7sYFz2QKg" type="2003" element="_CuwEwMAtEeaaj7sYFz2QKg"> | ||
110 | <children xmi:type="notation:Node" xmi:id="_Cu2yc8AtEeaaj7sYFz2QKg" type="5007"/> | ||
111 | <children xmi:type="notation:Node" xmi:id="_Cu2ydMAtEeaaj7sYFz2QKg" type="7004"> | ||
112 | <children xmi:type="notation:Node" xmi:id="_GeXKEMAtEeaaj7sYFz2QKg" type="3010" element="_JJ28cMAsEeaaj7sYFz2QKg"> | ||
113 | <styles xmi:type="notation:FontStyle" xmi:id="_GeXKEcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
114 | <layoutConstraint xmi:type="notation:Location" xmi:id="_GeXKEsAtEeaaj7sYFz2QKg"/> | ||
115 | </children> | ||
116 | <styles xmi:type="notation:SortingStyle" xmi:id="_Cu2ydcAtEeaaj7sYFz2QKg"/> | ||
117 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Cu2ydsAtEeaaj7sYFz2QKg"/> | ||
118 | </children> | ||
119 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Cu2yccAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
120 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cu2ycsAtEeaaj7sYFz2QKg" x="25" y="330" width="120" height="100"/> | ||
121 | </children> | ||
122 | <children xmi:type="notation:Node" xmi:id="_EQinoMAtEeaaj7sYFz2QKg" type="2003" element="_EQaEwMAtEeaaj7sYFz2QKg"> | ||
123 | <children xmi:type="notation:Node" xmi:id="_EQjOsMAtEeaaj7sYFz2QKg" type="5007"/> | ||
124 | <children xmi:type="notation:Node" xmi:id="_EQjOscAtEeaaj7sYFz2QKg" type="7004"> | ||
125 | <children xmi:type="notation:Node" xmi:id="_GLWugMAtEeaaj7sYFz2QKg" type="3010" element="_KDnO8MAsEeaaj7sYFz2QKg"> | ||
126 | <styles xmi:type="notation:FontStyle" xmi:id="_GLWugcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
127 | <layoutConstraint xmi:type="notation:Location" xmi:id="_GLWugsAtEeaaj7sYFz2QKg"/> | ||
128 | </children> | ||
129 | <styles xmi:type="notation:SortingStyle" xmi:id="_EQjOssAtEeaaj7sYFz2QKg"/> | ||
130 | <styles xmi:type="notation:FilteringStyle" xmi:id="_EQjOs8AtEeaaj7sYFz2QKg"/> | ||
131 | </children> | ||
132 | <styles xmi:type="notation:ShapeStyle" xmi:id="_EQinocAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
133 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EQinosAtEeaaj7sYFz2QKg" x="163" y="330" width="120" height="100"/> | ||
134 | </children> | ||
135 | <children xmi:type="notation:Node" xmi:id="_LJwiMMAtEeaaj7sYFz2QKg" type="2003" element="_LJomYMAtEeaaj7sYFz2QKg"> | ||
136 | <children xmi:type="notation:Node" xmi:id="_LJwiM8AtEeaaj7sYFz2QKg" type="5007"/> | ||
137 | <children xmi:type="notation:Node" xmi:id="_LJxJQMAtEeaaj7sYFz2QKg" type="7004"> | ||
138 | <styles xmi:type="notation:SortingStyle" xmi:id="_LJxJQcAtEeaaj7sYFz2QKg"/> | ||
139 | <styles xmi:type="notation:FilteringStyle" xmi:id="_LJxJQsAtEeaaj7sYFz2QKg"/> | ||
140 | </children> | ||
141 | <styles xmi:type="notation:ShapeStyle" xmi:id="_LJwiMcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
142 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJwiMsAtEeaaj7sYFz2QKg" x="280" y="-150"/> | ||
143 | </children> | ||
144 | <children xmi:type="notation:Node" xmi:id="_OgZt4MAtEeaaj7sYFz2QKg" type="2003" element="_OgM5kMAtEeaaj7sYFz2QKg"> | ||
145 | <children xmi:type="notation:Node" xmi:id="_OgZt48AtEeaaj7sYFz2QKg" type="5007"/> | ||
146 | <children xmi:type="notation:Node" xmi:id="_OgZt5MAtEeaaj7sYFz2QKg" type="7004"> | ||
147 | <children xmi:type="notation:Node" xmi:id="_n0OuIKPiEemFddEW7ouAfg" type="3010" element="_nza106PiEemFddEW7ouAfg"> | ||
148 | <styles xmi:type="notation:FontStyle" xmi:id="_n0OuIaPiEemFddEW7ouAfg" fontName="Segoe UI" fontHeight="8"/> | ||
149 | <layoutConstraint xmi:type="notation:Location" xmi:id="_n0OuIqPiEemFddEW7ouAfg"/> | ||
150 | </children> | ||
151 | <children xmi:type="notation:Node" xmi:id="_n0OuI6PiEemFddEW7ouAfg" type="3010" element="_nza11aPiEemFddEW7ouAfg"> | ||
152 | <styles xmi:type="notation:FontStyle" xmi:id="_n0OuJKPiEemFddEW7ouAfg" fontName="Segoe UI" fontHeight="8"/> | ||
153 | <layoutConstraint xmi:type="notation:Location" xmi:id="_n0OuJaPiEemFddEW7ouAfg"/> | ||
154 | </children> | ||
155 | <styles xmi:type="notation:SortingStyle" xmi:id="_OgZt5cAtEeaaj7sYFz2QKg"/> | ||
156 | <styles xmi:type="notation:FilteringStyle" xmi:id="_OgZt5sAtEeaaj7sYFz2QKg"/> | ||
157 | </children> | ||
158 | <styles xmi:type="notation:ShapeStyle" xmi:id="_OgZt4cAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" italic="true"/> | ||
159 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgZt4sAtEeaaj7sYFz2QKg" x="397" y="312"/> | ||
160 | </children> | ||
161 | <styles xmi:type="notation:DiagramStyle" xmi:id="_9rjtIsArEeaaj7sYFz2QKg"/> | ||
162 | <edges xmi:type="notation:Edge" xmi:id="_-5VH0MArEeaaj7sYFz2QKg" type="4001" element="_-5SEgcArEeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg"> | ||
163 | <children xmi:type="notation:Node" xmi:id="_-5Vu4MArEeaaj7sYFz2QKg" type="6001"> | ||
164 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu4cArEeaaj7sYFz2QKg" y="-10"/> | ||
165 | </children> | ||
166 | <children xmi:type="notation:Node" xmi:id="_-5Vu4sArEeaaj7sYFz2QKg" type="6002"> | ||
167 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu48ArEeaaj7sYFz2QKg" y="10"/> | ||
168 | </children> | ||
169 | <children xmi:type="notation:Node" xmi:id="_-5Vu5MArEeaaj7sYFz2QKg" type="6003"> | ||
170 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu5cArEeaaj7sYFz2QKg" y="10"/> | ||
171 | </children> | ||
172 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_-5VH0cArEeaaj7sYFz2QKg" routing="Tree"/> | ||
173 | <styles xmi:type="notation:FontStyle" xmi:id="_-5VH0sArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
174 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-5VH08ArEeaaj7sYFz2QKg" points="[210, 135, 210, 135]$[0, 0, 0, 0]"/> | ||
175 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8MArEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
176 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8cArEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
177 | </edges> | ||
178 | <edges xmi:type="notation:Edge" xmi:id="_u58dgMAsEeaaj7sYFz2QKg" type="4001" element="_u5ysgMAsEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg"> | ||
179 | <children xmi:type="notation:Node" xmi:id="_u58dhMAsEeaaj7sYFz2QKg" type="6001"> | ||
180 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EkMAsEeaaj7sYFz2QKg" y="-10"/> | ||
181 | </children> | ||
182 | <children xmi:type="notation:Node" xmi:id="_u59EkcAsEeaaj7sYFz2QKg" type="6002"> | ||
183 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EksAsEeaaj7sYFz2QKg" y="10"/> | ||
184 | </children> | ||
185 | <children xmi:type="notation:Node" xmi:id="_u59Ek8AsEeaaj7sYFz2QKg" type="6003"> | ||
186 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59ElMAsEeaaj7sYFz2QKg" y="10"/> | ||
187 | </children> | ||
188 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_u58dgcAsEeaaj7sYFz2QKg" routing="Tree"/> | ||
189 | <styles xmi:type="notation:FontStyle" xmi:id="_u58dgsAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
190 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u58dg8AsEeaaj7sYFz2QKg" points="[0, 0, 397, 166]$[-395, -165, 2, 1]"/> | ||
191 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElcAsEeaaj7sYFz2QKg" id="(0.8132530120481928,0.0)"/> | ||
192 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElsAsEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
193 | </edges> | ||
194 | <edges xmi:type="notation:Edge" xmi:id="_HR0nUMAtEeaaj7sYFz2QKg" type="4001" element="_HRrdYMAtEeaaj7sYFz2QKg" source="_Cu2ycMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg"> | ||
195 | <children xmi:type="notation:Node" xmi:id="_HR1OYMAtEeaaj7sYFz2QKg" type="6001"> | ||
196 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OYcAtEeaaj7sYFz2QKg" y="-10"/> | ||
197 | </children> | ||
198 | <children xmi:type="notation:Node" xmi:id="_HR1OYsAtEeaaj7sYFz2QKg" type="6002"> | ||
199 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OY8AtEeaaj7sYFz2QKg" y="10"/> | ||
200 | </children> | ||
201 | <children xmi:type="notation:Node" xmi:id="_HR1OZMAtEeaaj7sYFz2QKg" type="6003"> | ||
202 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OZcAtEeaaj7sYFz2QKg" y="10"/> | ||
203 | </children> | ||
204 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_HR0nUcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
205 | <styles xmi:type="notation:FontStyle" xmi:id="_HR0nUsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
206 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HR0nU8AtEeaaj7sYFz2QKg" points="[0, 0, 2, 151]$[-2, -110, 0, 41]"/> | ||
207 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZsAtEeaaj7sYFz2QKg" id="(0.635593220338983,0.0)"/> | ||
208 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZ8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
209 | </edges> | ||
210 | <edges xmi:type="notation:Edge" xmi:id="_HuNoYMAtEeaaj7sYFz2QKg" type="4001" element="_HuEecMAtEeaaj7sYFz2QKg" source="_EQinoMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg"> | ||
211 | <children xmi:type="notation:Node" xmi:id="_HuNoZMAtEeaaj7sYFz2QKg" type="6001"> | ||
212 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZcAtEeaaj7sYFz2QKg" y="-10"/> | ||
213 | </children> | ||
214 | <children xmi:type="notation:Node" xmi:id="_HuNoZsAtEeaaj7sYFz2QKg" type="6002"> | ||
215 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZ8AtEeaaj7sYFz2QKg" y="10"/> | ||
216 | </children> | ||
217 | <children xmi:type="notation:Node" xmi:id="_HuNoaMAtEeaaj7sYFz2QKg" type="6003"> | ||
218 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoacAtEeaaj7sYFz2QKg" y="10"/> | ||
219 | </children> | ||
220 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_HuNoYcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
221 | <styles xmi:type="notation:FontStyle" xmi:id="_HuNoYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
222 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HuNoY8AtEeaaj7sYFz2QKg" points="[0, 0, 124, 151]$[-124, -150, 0, 1]"/> | ||
223 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoasAtEeaaj7sYFz2QKg" id="(0.5,0.0)"/> | ||
224 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoa8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
225 | </edges> | ||
226 | <edges xmi:type="notation:Edge" xmi:id="_LJyXYMAtEeaaj7sYFz2QKg" type="4001" element="_LJutAMAtEeaaj7sYFz2QKg" source="_-5TSoMArEeaaj7sYFz2QKg" target="_LJwiMMAtEeaaj7sYFz2QKg"> | ||
227 | <children xmi:type="notation:Node" xmi:id="_LJyXZMAtEeaaj7sYFz2QKg" type="6001"> | ||
228 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZcAtEeaaj7sYFz2QKg" y="-10"/> | ||
229 | </children> | ||
230 | <children xmi:type="notation:Node" xmi:id="_LJyXZsAtEeaaj7sYFz2QKg" type="6002"> | ||
231 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZ8AtEeaaj7sYFz2QKg" y="10"/> | ||
232 | </children> | ||
233 | <children xmi:type="notation:Node" xmi:id="_LJyXaMAtEeaaj7sYFz2QKg" type="6003"> | ||
234 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXacAtEeaaj7sYFz2QKg" y="10"/> | ||
235 | </children> | ||
236 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_LJyXYcAtEeaaj7sYFz2QKg" routing="Tree"/> | ||
237 | <styles xmi:type="notation:FontStyle" xmi:id="_LJyXYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/> | ||
238 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LJyXY8AtEeaaj7sYFz2QKg" points="[260, 15, 260, 15]$[0, 0, 0, 0]"/> | ||
239 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgMAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
240 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgcAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/> | ||
241 | </edges> | ||
242 | <edges xmi:type="notation:Edge" xmi:id="_QkxZYMAtEeaaj7sYFz2QKg" type="4001" element="_Qko2gMAtEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
243 | <children xmi:type="notation:Node" xmi:id="_QkxZZMAtEeaaj7sYFz2QKg" type="6001"> | ||
244 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZcAtEeaaj7sYFz2QKg" x="-60" y="10"/> | ||
245 | </children> | ||
246 | <children xmi:type="notation:Node" xmi:id="_QkxZZsAtEeaaj7sYFz2QKg" type="6002"> | ||
247 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZ8AtEeaaj7sYFz2QKg" x="10"/> | ||
248 | </children> | ||
249 | <children xmi:type="notation:Node" xmi:id="_QkxZaMAtEeaaj7sYFz2QKg" type="6003"> | ||
250 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZacAtEeaaj7sYFz2QKg" y="-10"/> | ||
251 | </children> | ||
252 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_QkxZYcAtEeaaj7sYFz2QKg" routing="Rectilinear"/> | ||
253 | <styles xmi:type="notation:FontStyle" xmi:id="_QkxZYsAtEeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
254 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QkxZY8AtEeaaj7sYFz2QKg" points="[-14, 98, 275, -34]$[-14, 182, 275, 50]$[-83, 182, 206, 50]"/> | ||
255 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAcMAtEeaaj7sYFz2QKg" id="(1.0,0.0)"/> | ||
256 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAccAtEeaaj7sYFz2QKg" id="(0.0,0.0)"/> | ||
257 | </edges> | ||
258 | <edges xmi:type="notation:Edge" xmi:id="_wTbfUMA0Eeaaj7sYFz2QKg" type="4001" element="_wTP5IMA0Eeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
259 | <children xmi:type="notation:Node" xmi:id="_wTbfVMA0Eeaaj7sYFz2QKg" type="6001"> | ||
260 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfVcA0Eeaaj7sYFz2QKg" x="18" y="-12"/> | ||
261 | </children> | ||
262 | <children xmi:type="notation:Node" xmi:id="_wTbfVsA0Eeaaj7sYFz2QKg" type="6002"> | ||
263 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfV8A0Eeaaj7sYFz2QKg" x="70" y="10"/> | ||
264 | </children> | ||
265 | <children xmi:type="notation:Node" xmi:id="_wTcGYMA0Eeaaj7sYFz2QKg" type="6003"> | ||
266 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTcGYcA0Eeaaj7sYFz2QKg" x="-11" y="10"/> | ||
267 | </children> | ||
268 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_wTbfUcA0Eeaaj7sYFz2QKg" routing="Rectilinear"/> | ||
269 | <styles xmi:type="notation:FontStyle" xmi:id="_wTbfUsA0Eeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
270 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTbfU8A0Eeaaj7sYFz2QKg" points="[0, 0, -232, -92]$[110, 0, -122, -92]$[110, 152, -122, 60]$[171, 152, -61, 60]"/> | ||
271 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGYsA0Eeaaj7sYFz2QKg" id="(1.0,0.40816326530612246)"/> | ||
272 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGY8A0Eeaaj7sYFz2QKg" id="(0.2966101694915254,0.0)"/> | ||
273 | </edges> | ||
274 | <edges xmi:type="notation:Edge" xmi:id="_D6-y0MDnEea_b6UyFzv22g" type="4001" element="_D6viQMDnEea_b6UyFzv22g" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg"> | ||
275 | <children xmi:type="notation:Node" xmi:id="_D6_Z4MDnEea_b6UyFzv22g" type="6001"> | ||
276 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z4cDnEea_b6UyFzv22g" x="-58" y="-6"/> | ||
277 | </children> | ||
278 | <children xmi:type="notation:Node" xmi:id="_D6_Z4sDnEea_b6UyFzv22g" type="6002"> | ||
279 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z48DnEea_b6UyFzv22g" x="40" y="10"/> | ||
280 | </children> | ||
281 | <children xmi:type="notation:Node" xmi:id="_D6_Z5MDnEea_b6UyFzv22g" type="6003"> | ||
282 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z5cDnEea_b6UyFzv22g" x="4" y="-10"/> | ||
283 | </children> | ||
284 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_D6-y0cDnEea_b6UyFzv22g" routing="Rectilinear"/> | ||
285 | <styles xmi:type="notation:FontStyle" xmi:id="_D6-y0sDnEea_b6UyFzv22g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
286 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D6-y08DnEea_b6UyFzv22g" points="[166, -35, 83, -157]$[200, -35, 117, -157]$[200, 119, 117, -3]$[83, 119, 0, -3]"/> | ||
287 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D6_Z5sDnEea_b6UyFzv22g" id="(0.0,0.8673469387755102)"/> | ||
288 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D7AA8MDnEea_b6UyFzv22g" id="(1.0,0.7653061224489796)"/> | ||
289 | </edges> | ||
290 | <edges xmi:type="notation:Edge" xmi:id="_NpFP0MDnEea_b6UyFzv22g" type="4001" element="_NozjAMDnEea_b6UyFzv22g" source="_-5TSoMArEeaaj7sYFz2QKg" target="_DwQagMAsEeaaj7sYFz2QKg"> | ||
291 | <children xmi:type="notation:Node" xmi:id="_NpFP1MDnEea_b6UyFzv22g" type="6001"> | ||
292 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpFP1cDnEea_b6UyFzv22g" y="-10"/> | ||
293 | </children> | ||
294 | <children xmi:type="notation:Node" xmi:id="_NpF24MDnEea_b6UyFzv22g" type="6002"> | ||
295 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF24cDnEea_b6UyFzv22g" y="10"/> | ||
296 | </children> | ||
297 | <children xmi:type="notation:Node" xmi:id="_NpF24sDnEea_b6UyFzv22g" type="6003"> | ||
298 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF248DnEea_b6UyFzv22g" y="10"/> | ||
299 | </children> | ||
300 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_NpFP0cDnEea_b6UyFzv22g" routing="Rectilinear"/> | ||
301 | <styles xmi:type="notation:FontStyle" xmi:id="_NpFP0sDnEea_b6UyFzv22g" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
302 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NpFP08DnEea_b6UyFzv22g" points="[260, 15, 260, 15]$[500, 15, 500, 15]"/> | ||
303 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25MDnEea_b6UyFzv22g" id="(0.5,0.5)"/> | ||
304 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25cDnEea_b6UyFzv22g" id="(0.5,0.5)"/> | ||
305 | </edges> | ||
306 | </data> | ||
307 | </ownedAnnotationEntries> | ||
308 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-SH94MArEeaaj7sYFz2QKg" name="MultiplicityAssertion" tooltipText="" outgoingEdges="_-5SEgcArEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg" incomingEdges="_HRrdYMAtEeaaj7sYFz2QKg _HuEecMAtEeaaj7sYFz2QKg" width="12" height="10"> | ||
309 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
310 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
311 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
312 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
313 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
314 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_BQSisMAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
315 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
316 | </ownedStyle> | ||
317 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
318 | </ownedDiagramElements> | ||
319 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-5OaIMArEeaaj7sYFz2QKg" name="AssertionAnnotation" tooltipText="" outgoingEdges="_LJutAMAtEeaaj7sYFz2QKg _NozjAMDnEea_b6UyFzv22g" incomingEdges="_-5SEgcArEeaaj7sYFz2QKg _u5ysgMAsEeaaj7sYFz2QKg" width="12" height="10"> | ||
320 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
321 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
322 | <decorations xmi:type="viewpoint:Decoration" uid="_-5SEgMArEeaaj7sYFz2QKg"> | ||
323 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
324 | </decorations> | ||
325 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
326 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
327 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
328 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XIPi0MDwEea_b6UyFzv22g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
329 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
330 | </ownedStyle> | ||
331 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
332 | </ownedDiagramElements> | ||
333 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_-5SEgcArEeaaj7sYFz2QKg" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg"> | ||
334 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
335 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/> | ||
336 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_BQWNEMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
337 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
338 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_BQWNEcAtEeaaj7sYFz2QKg" showIcon="false"> | ||
339 | <labelFormat>italic</labelFormat> | ||
340 | </beginLabelStyle> | ||
341 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_BQWNEsAtEeaaj7sYFz2QKg" showIcon="false"/> | ||
342 | </ownedStyle> | ||
343 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
344 | </ownedDiagramElements> | ||
345 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ABfpwMAsEeaaj7sYFz2QKg" name="InverseRelationAssertion" tooltipText="" outgoingEdges="_u5ysgMAsEeaaj7sYFz2QKg _Qko2gMAtEeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10"> | ||
346 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> | ||
347 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> | ||
348 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
349 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
350 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
351 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ABfpwcAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
352 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
353 | </ownedStyle> | ||
354 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
355 | </ownedDiagramElements> | ||
356 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_DwH3oMAsEeaaj7sYFz2QKg" name="Assertion" tooltipText="" incomingEdges="_NozjAMDnEea_b6UyFzv22g" width="12" height="10"> | ||
357 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/> | ||
358 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/> | ||
359 | <decorations xmi:type="viewpoint:Decoration" uid="_DwNXMMAsEeaaj7sYFz2QKg"> | ||
360 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
361 | </decorations> | ||
362 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
363 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
364 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
365 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_DwH3ocAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
366 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
367 | </ownedStyle> | ||
368 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
369 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_DwMwIMAsEeaaj7sYFz2QKg" name="name : EString" tooltipText=""> | ||
370 | <target xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/> | ||
371 | <semanticElements xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/> | ||
372 | <ownedStyle xmi:type="diagram:BundledImage" uid="_DwMwIsAsEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
373 | <labelFormat>bold</labelFormat> | ||
428 | </ownedStyle> | 374 | </ownedStyle> |
429 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 375 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
430 | </ownedDiagramElements> | 376 | </ownedElements> |
431 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_LJutAMAtEeaaj7sYFz2QKg" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_LJomYMAtEeaaj7sYFz2QKg"> | 377 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_nzRr5aPiEemFddEW7ouAfg" name=" value : Term" tooltipText=""> |
432 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | 378 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/value"/> |
433 | <semanticElements xmi:type="ecore:EGenericType" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/@eGenericSuperTypes.0"/> | 379 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/value"/> |
434 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_QknoYMAtEeaaj7sYFz2QKg"> | 380 | <ownedStyle xmi:type="diagram:BundledImage" uid="_nza10aPiEemFddEW7ouAfg" labelAlignment="LEFT" description="_nza10KPiEemFddEW7ouAfg" color="114,159,207"> |
435 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 381 | <labelFormat>bold</labelFormat> |
436 | </decorations> | ||
437 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_XIT0QMDwEea_b6UyFzv22g" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
438 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
439 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_XIUbUMDwEea_b6UyFzv22g" showIcon="false"> | ||
440 | <labelFormat>italic</labelFormat> | ||
441 | </beginLabelStyle> | ||
442 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_XIUbUcDwEea_b6UyFzv22g" showIcon="false"/> | ||
443 | </ownedStyle> | 382 | </ownedStyle> |
444 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 383 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> |
445 | </ownedDiagramElements> | 384 | </ownedElements> |
446 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_OgM5kMAtEeaaj7sYFz2QKg" name="Relation" tooltipText="" incomingEdges="_Qko2gMAtEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10"> | 385 | </ownedDiagramElements> |
447 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/> | 386 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_u5ysgMAsEeaaj7sYFz2QKg" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg"> |
448 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/> | 387 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> |
449 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_OgTnQMAtEeaaj7sYFz2QKg"> | 388 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/> |
450 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 389 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_u5zTkMAsEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> |
451 | </decorations> | 390 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
452 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 391 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_u5zTkcAsEeaaj7sYFz2QKg" showIcon="false"> |
453 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
454 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
455 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_OgNgoMAtEeaaj7sYFz2QKg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
456 | <labelFormat>italic</labelFormat> | 392 | <labelFormat>italic</labelFormat> |
457 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | 393 | </beginLabelStyle> |
458 | </ownedStyle> | 394 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_u5zTksAsEeaaj7sYFz2QKg" showIcon="false"/> |
459 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 395 | </ownedStyle> |
460 | </ownedDiagramElements> | 396 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
461 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_Qko2gMAtEeaaj7sYFz2QKg" name="[1..1] inverseA" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> | 397 | </ownedDiagramElements> |
462 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/> | 398 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_CuwEwMAtEeaaj7sYFz2QKg" name="LowerMultiplicityAssertion" tooltipText="" outgoingEdges="_HRrdYMAtEeaaj7sYFz2QKg" width="12" height="10"> |
463 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/> | 399 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> |
464 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_UKs-QMAtEeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> | 400 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> |
465 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_UKs-QcAtEeaaj7sYFz2QKg" showIcon="false"> | 401 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
466 | <labelFormat>bold</labelFormat> | 402 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
467 | </centerLabelStyle> | 403 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
468 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_UKs-QsAtEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | 404 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_CuwEwcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
405 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
406 | </ownedStyle> | ||
407 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
408 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_JJ28cMAsEeaaj7sYFz2QKg" name="lower : EInt" tooltipText=""> | ||
409 | <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/> | ||
410 | <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/> | ||
411 | <ownedStyle xmi:type="diagram:BundledImage" uid="_Alvw4MAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
412 | <labelFormat>bold</labelFormat> | ||
469 | </ownedStyle> | 413 | </ownedStyle> |
470 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 414 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
471 | </ownedDiagramElements> | 415 | </ownedElements> |
472 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_wTP5IMA0Eeaaj7sYFz2QKg" name="[1..1] relation" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> | 416 | </ownedDiagramElements> |
473 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/> | 417 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EQaEwMAtEeaaj7sYFz2QKg" name="UpperMultiplicityAssertion" tooltipText="" outgoingEdges="_HuEecMAtEeaaj7sYFz2QKg" width="12" height="10"> |
474 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/> | 418 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> |
475 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_x7xWIMA0Eeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> | 419 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> |
476 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_x7xWIcA0Eeaaj7sYFz2QKg" showIcon="false"> | 420 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
477 | <labelFormat>bold</labelFormat> | 421 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
478 | </centerLabelStyle> | 422 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
479 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_x7xWIsA0Eeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | 423 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_EQar0MAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
424 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
425 | </ownedStyle> | ||
426 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
427 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_KDnO8MAsEeaaj7sYFz2QKg" name="upper : EInt" tooltipText=""> | ||
428 | <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/> | ||
429 | <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/> | ||
430 | <ownedStyle xmi:type="diagram:BundledImage" uid="_F2B-wMAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg"> | ||
431 | <labelFormat>bold</labelFormat> | ||
480 | </ownedStyle> | 432 | </ownedStyle> |
481 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 433 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
482 | </ownedDiagramElements> | 434 | </ownedElements> |
483 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_D6viQMDnEea_b6UyFzv22g" name="[1..1] inverseB" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> | 435 | </ownedDiagramElements> |
484 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/> | 436 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HRrdYMAtEeaaj7sYFz2QKg" sourceNode="_CuwEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg"> |
485 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/> | 437 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> |
486 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_F6Fj0MDnEea_b6UyFzv22g" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> | 438 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/> |
487 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_F6Fj0cDnEea_b6UyFzv22g" showIcon="false"> | 439 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HRsEcMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> |
488 | <labelFormat>bold</labelFormat> | 440 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
489 | </centerLabelStyle> | 441 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_HRsEccAtEeaaj7sYFz2QKg" showIcon="false"> |
490 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_F6Fj0sDnEea_b6UyFzv22g" labelSize="6" showIcon="false" labelColor="39,76,114"/> | 442 | <labelFormat>italic</labelFormat> |
443 | </beginLabelStyle> | ||
444 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HRsEcsAtEeaaj7sYFz2QKg" showIcon="false"/> | ||
445 | </ownedStyle> | ||
446 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
447 | </ownedDiagramElements> | ||
448 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HuEecMAtEeaaj7sYFz2QKg" sourceNode="_EQaEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg"> | ||
449 | <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> | ||
450 | <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/> | ||
451 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HuEeccAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
452 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
453 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_HuEecsAtEeaaj7sYFz2QKg" showIcon="false"> | ||
454 | <labelFormat>italic</labelFormat> | ||
455 | </beginLabelStyle> | ||
456 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HuEec8AtEeaaj7sYFz2QKg" showIcon="false"/> | ||
457 | </ownedStyle> | ||
458 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
459 | </ownedDiagramElements> | ||
460 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_LJomYMAtEeaaj7sYFz2QKg" name="Annotation" tooltipText="" incomingEdges="_LJutAMAtEeaaj7sYFz2QKg" width="12" height="10"> | ||
461 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | ||
462 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | ||
463 | <decorations xmi:type="viewpoint:Decoration" uid="_LJte4MAtEeaaj7sYFz2QKg"> | ||
464 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
465 | </decorations> | ||
466 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
467 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
468 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
469 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_LJomYcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
470 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
471 | </ownedStyle> | ||
472 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
473 | </ownedDiagramElements> | ||
474 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_LJutAMAtEeaaj7sYFz2QKg" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_LJomYMAtEeaaj7sYFz2QKg"> | ||
475 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
476 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | ||
477 | <decorations xmi:type="viewpoint:Decoration" uid="_QknoYMAtEeaaj7sYFz2QKg"> | ||
478 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
479 | </decorations> | ||
480 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XIT0QMDwEea_b6UyFzv22g" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
481 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
482 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XIUbUMDwEea_b6UyFzv22g" showIcon="false"> | ||
483 | <labelFormat>italic</labelFormat> | ||
484 | </beginLabelStyle> | ||
485 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XIUbUcDwEea_b6UyFzv22g" showIcon="false"/> | ||
486 | </ownedStyle> | ||
487 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
488 | </ownedDiagramElements> | ||
489 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_OgM5kMAtEeaaj7sYFz2QKg" name="Relation" tooltipText="" incomingEdges="_Qko2gMAtEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10"> | ||
490 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/> | ||
491 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/> | ||
492 | <decorations xmi:type="viewpoint:Decoration" uid="_OgTnQMAtEeaaj7sYFz2QKg"> | ||
493 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
494 | </decorations> | ||
495 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
496 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
497 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
498 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OgNgoMAtEeaaj7sYFz2QKg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
499 | <labelFormat>italic</labelFormat> | ||
500 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
501 | </ownedStyle> | ||
502 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
503 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_nza106PiEemFddEW7ouAfg" name=" parameters : TypeReference" tooltipText=""> | ||
504 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation/parameters"/> | ||
505 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation/parameters"/> | ||
506 | <ownedStyle xmi:type="diagram:BundledImage" uid="_nza11KPiEemFddEW7ouAfg" labelAlignment="LEFT" color="114,159,207"> | ||
507 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/> | ||
491 | </ownedStyle> | 508 | </ownedStyle> |
492 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 509 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> |
493 | </ownedDiagramElements> | 510 | </ownedElements> |
494 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_NozjAMDnEea_b6UyFzv22g" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_DwH3oMAsEeaaj7sYFz2QKg" beginLabel="[0..*] annotations" endLabel="[1..1] target"> | 511 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_nza11aPiEemFddEW7ouAfg" name=" annotations : RelationAnnotation" tooltipText=""> |
495 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | 512 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation/annotations"/> |
496 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/annotations"/> | 513 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation/annotations"/> |
497 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | 514 | <ownedStyle xmi:type="diagram:BundledImage" uid="_nza11qPiEemFddEW7ouAfg" labelAlignment="LEFT" color="114,159,207"> |
498 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_XIVpcMDwEea_b6UyFzv22g" description="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0"> | 515 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/> |
499 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_XIVpccDwEea_b6UyFzv22g" showIcon="false"> | ||
500 | <labelFormat>bold</labelFormat> | ||
501 | </beginLabelStyle> | ||
502 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_XIVpcsDwEea_b6UyFzv22g" showIcon="false"> | ||
503 | <labelFormat>bold</labelFormat> | ||
504 | </endLabelStyle> | ||
505 | </ownedStyle> | 516 | </ownedStyle> |
506 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | 517 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> |
507 | </ownedDiagramElements> | 518 | </ownedElements> |
508 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 519 | </ownedDiagramElements> |
509 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_9rgp1cArEeaaj7sYFz2QKg"/> | 520 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Qko2gMAtEeaaj7sYFz2QKg" name="[1..1] inverseA" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> |
510 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | 521 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/> |
511 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | 522 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/> |
512 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | 523 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_UKs-QMAtEeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> |
513 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/> | 524 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_UKs-QcAtEeaaj7sYFz2QKg" showIcon="false"> |
514 | <target xmi:type="ecore:EPackage" href="ecore2logicannotations.ecore#/"/> | 525 | <labelFormat>bold</labelFormat> |
515 | </ownedRepresentations> | 526 | </centerLabelStyle> |
516 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | 527 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_UKs-QsAtEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/> |
517 | </ownedViews> | 528 | </ownedStyle> |
518 | <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mhXsMArEeaaj7sYFz2QKg"> | 529 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
519 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> | 530 | </ownedDiagramElements> |
520 | </ownedViews> | 531 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_wTP5IMA0Eeaaj7sYFz2QKg" name="[1..1] relation" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> |
521 | <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mrIsMArEeaaj7sYFz2QKg"> | 532 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/> |
522 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> | 533 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/> |
523 | </ownedViews> | 534 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_x7xWIMA0Eeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> |
524 | <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mydcMArEeaaj7sYFz2QKg"> | 535 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_x7xWIcA0Eeaaj7sYFz2QKg" showIcon="false"> |
525 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/> | 536 | <labelFormat>bold</labelFormat> |
526 | </ownedViews> | 537 | </centerLabelStyle> |
527 | </viewpoint:DAnalysis> | 538 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_x7xWIsA0Eeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/> |
539 | </ownedStyle> | ||
540 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
541 | </ownedDiagramElements> | ||
542 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_D6viQMDnEea_b6UyFzv22g" name="[1..1] inverseB" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg"> | ||
543 | <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/> | ||
544 | <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/> | ||
545 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_F6Fj0MDnEea_b6UyFzv22g" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0"> | ||
546 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_F6Fj0cDnEea_b6UyFzv22g" showIcon="false"> | ||
547 | <labelFormat>bold</labelFormat> | ||
548 | </centerLabelStyle> | ||
549 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_F6Fj0sDnEea_b6UyFzv22g" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
550 | </ownedStyle> | ||
551 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
552 | </ownedDiagramElements> | ||
553 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NozjAMDnEea_b6UyFzv22g" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_DwH3oMAsEeaaj7sYFz2QKg" beginLabel="[0..*] annotations" endLabel="[1..1] target"> | ||
554 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | ||
555 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/annotations"/> | ||
556 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | ||
557 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XIVpcMDwEea_b6UyFzv22g" description="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0"> | ||
558 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XIVpccDwEea_b6UyFzv22g" showIcon="false"> | ||
559 | <labelFormat>bold</labelFormat> | ||
560 | </beginLabelStyle> | ||
561 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XIVpcsDwEea_b6UyFzv22g" showIcon="false"> | ||
562 | <labelFormat>bold</labelFormat> | ||
563 | </endLabelStyle> | ||
564 | </ownedStyle> | ||
565 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | ||
566 | </ownedDiagramElements> | ||
567 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
568 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_9rgp1cArEeaaj7sYFz2QKg"/> | ||
569 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
570 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | ||
571 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | ||
572 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/> | ||
573 | <target xmi:type="ecore:EPackage" href="ecore2logicannotations.ecore#/"/> | ||
574 | </diagram:DSemanticDiagram> | ||
575 | </xmi:XMI> | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend index cae489e3..85b488eb 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend | |||
@@ -1,7 +1,13 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.ecore2logic | 1 | package hu.bme.mit.inf.dslreasoner.ecore2logic |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
4 | import java.util.List | 9 | import java.util.List |
10 | import java.util.Set | ||
5 | import org.eclipse.emf.ecore.EAttribute | 11 | import org.eclipse.emf.ecore.EAttribute |
6 | import org.eclipse.emf.ecore.EClass | 12 | import org.eclipse.emf.ecore.EClass |
7 | import org.eclipse.emf.ecore.EEnum | 13 | import org.eclipse.emf.ecore.EEnum |
@@ -9,10 +15,6 @@ import org.eclipse.emf.ecore.EEnumLiteral | |||
9 | import org.eclipse.emf.ecore.EReference | 15 | import org.eclipse.emf.ecore.EReference |
10 | import org.eclipse.xtend.lib.annotations.Data | 16 | import org.eclipse.xtend.lib.annotations.Data |
11 | import org.eclipse.xtend.lib.annotations.Delegate | 17 | import org.eclipse.xtend.lib.annotations.Delegate |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
14 | import java.util.Set | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy | ||
16 | 18 | ||
17 | @Data class EcoreMetamodelDescriptor { | 19 | @Data class EcoreMetamodelDescriptor { |
18 | val List<EClass> classes; | 20 | val List<EClass> classes; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregateExpression.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregateExpression.java index be146469..589145c3 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregateExpression.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregateExpression.java | |||
@@ -2,6 +2,8 @@ | |||
2 | */ | 2 | */ |
3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage; | 3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage; |
4 | 4 | ||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
5 | 7 | ||
6 | /** | 8 | /** |
7 | * <!-- begin-user-doc --> | 9 | * <!-- begin-user-doc --> |
@@ -13,6 +15,8 @@ package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage; | |||
13 | * </p> | 15 | * </p> |
14 | * <ul> | 16 | * <ul> |
15 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getRelation <em>Relation</em>}</li> | 17 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getRelation <em>Relation</em>}</li> |
18 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getParameterSubstitution <em>Parameter Substitution</em>}</li> | ||
19 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getResultVariable <em>Result Variable</em>}</li> | ||
16 | * </ul> | 20 | * </ul> |
17 | * | 21 | * |
18 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression() | 22 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression() |
@@ -46,4 +50,38 @@ public interface AggregateExpression extends Term { | |||
46 | */ | 50 | */ |
47 | void setRelation(Relation value); | 51 | void setRelation(Relation value); |
48 | 52 | ||
53 | /** | ||
54 | * Returns the value of the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
55 | * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution}. | ||
56 | * <!-- begin-user-doc --> | ||
57 | * <!-- end-user-doc --> | ||
58 | * @return the value of the '<em>Parameter Substitution</em>' containment reference list. | ||
59 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression_ParameterSubstitution() | ||
60 | * @model containment="true" | ||
61 | * @generated | ||
62 | */ | ||
63 | EList<AggregatedParameterSubstitution> getParameterSubstitution(); | ||
64 | |||
65 | /** | ||
66 | * Returns the value of the '<em><b>Result Variable</b></em>' reference. | ||
67 | * <!-- begin-user-doc --> | ||
68 | * <!-- end-user-doc --> | ||
69 | * @return the value of the '<em>Result Variable</em>' reference. | ||
70 | * @see #setResultVariable(Variable) | ||
71 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression_ResultVariable() | ||
72 | * @model | ||
73 | * @generated | ||
74 | */ | ||
75 | Variable getResultVariable(); | ||
76 | |||
77 | /** | ||
78 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getResultVariable <em>Result Variable</em>}' reference. | ||
79 | * <!-- begin-user-doc --> | ||
80 | * <!-- end-user-doc --> | ||
81 | * @param value the new value of the '<em>Result Variable</em>' reference. | ||
82 | * @see #getResultVariable() | ||
83 | * @generated | ||
84 | */ | ||
85 | void setResultVariable(Variable value); | ||
86 | |||
49 | } // AggregateExpression | 87 | } // AggregateExpression |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregatedParameterSubstitution.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregatedParameterSubstitution.java new file mode 100644 index 00000000..94b6365d --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/AggregatedParameterSubstitution.java | |||
@@ -0,0 +1,46 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EObject; | ||
6 | |||
7 | /** | ||
8 | * <!-- begin-user-doc --> | ||
9 | * A representation of the model object '<em><b>Aggregated Parameter Substitution</b></em>'. | ||
10 | * <!-- end-user-doc --> | ||
11 | * | ||
12 | * <p> | ||
13 | * The following features are supported: | ||
14 | * </p> | ||
15 | * <ul> | ||
16 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution#getVariable <em>Variable</em>}</li> | ||
17 | * </ul> | ||
18 | * | ||
19 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregatedParameterSubstitution() | ||
20 | * @model | ||
21 | * @generated | ||
22 | */ | ||
23 | public interface AggregatedParameterSubstitution extends EObject { | ||
24 | /** | ||
25 | * Returns the value of the '<em><b>Variable</b></em>' reference. | ||
26 | * <!-- begin-user-doc --> | ||
27 | * <!-- end-user-doc --> | ||
28 | * @return the value of the '<em>Variable</em>' reference. | ||
29 | * @see #setVariable(Variable) | ||
30 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregatedParameterSubstitution_Variable() | ||
31 | * @model | ||
32 | * @generated | ||
33 | */ | ||
34 | Variable getVariable(); | ||
35 | |||
36 | /** | ||
37 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution#getVariable <em>Variable</em>}' reference. | ||
38 | * <!-- begin-user-doc --> | ||
39 | * <!-- end-user-doc --> | ||
40 | * @param value the new value of the '<em>Variable</em>' reference. | ||
41 | * @see #getVariable() | ||
42 | * @generated | ||
43 | */ | ||
44 | void setVariable(Variable value); | ||
45 | |||
46 | } // AggregatedParameterSubstitution | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguageFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguageFactory.java index a6b0a790..33d79329 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguageFactory.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguageFactory.java | |||
@@ -454,6 +454,15 @@ public interface LogiclanguageFactory extends EFactory { | |||
454 | Max createMax(); | 454 | Max createMax(); |
455 | 455 | ||
456 | /** | 456 | /** |
457 | * Returns a new object of class '<em>Aggregated Parameter Substitution</em>'. | ||
458 | * <!-- begin-user-doc --> | ||
459 | * <!-- end-user-doc --> | ||
460 | * @return a new object of class '<em>Aggregated Parameter Substitution</em>'. | ||
461 | * @generated | ||
462 | */ | ||
463 | AggregatedParameterSubstitution createAggregatedParameterSubstitution(); | ||
464 | |||
465 | /** | ||
457 | * Returns the package supported by this factory. | 466 | * Returns the package supported by this factory. |
458 | * <!-- begin-user-doc --> | 467 | * <!-- begin-user-doc --> |
459 | * <!-- end-user-doc --> | 468 | * <!-- end-user-doc --> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguagePackage.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguagePackage.java index ddfb75a2..193d9bdd 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguagePackage.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/LogiclanguagePackage.java | |||
@@ -2751,13 +2751,31 @@ public interface LogiclanguagePackage extends EPackage { | |||
2751 | int AGGREGATE_EXPRESSION__RELATION = TERM_FEATURE_COUNT + 0; | 2751 | int AGGREGATE_EXPRESSION__RELATION = TERM_FEATURE_COUNT + 0; |
2752 | 2752 | ||
2753 | /** | 2753 | /** |
2754 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
2755 | * <!-- begin-user-doc --> | ||
2756 | * <!-- end-user-doc --> | ||
2757 | * @generated | ||
2758 | * @ordered | ||
2759 | */ | ||
2760 | int AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = TERM_FEATURE_COUNT + 1; | ||
2761 | |||
2762 | /** | ||
2763 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
2764 | * <!-- begin-user-doc --> | ||
2765 | * <!-- end-user-doc --> | ||
2766 | * @generated | ||
2767 | * @ordered | ||
2768 | */ | ||
2769 | int AGGREGATE_EXPRESSION__RESULT_VARIABLE = TERM_FEATURE_COUNT + 2; | ||
2770 | |||
2771 | /** | ||
2754 | * The number of structural features of the '<em>Aggregate Expression</em>' class. | 2772 | * The number of structural features of the '<em>Aggregate Expression</em>' class. |
2755 | * <!-- begin-user-doc --> | 2773 | * <!-- begin-user-doc --> |
2756 | * <!-- end-user-doc --> | 2774 | * <!-- end-user-doc --> |
2757 | * @generated | 2775 | * @generated |
2758 | * @ordered | 2776 | * @ordered |
2759 | */ | 2777 | */ |
2760 | int AGGREGATE_EXPRESSION_FEATURE_COUNT = TERM_FEATURE_COUNT + 1; | 2778 | int AGGREGATE_EXPRESSION_FEATURE_COUNT = TERM_FEATURE_COUNT + 3; |
2761 | 2779 | ||
2762 | /** | 2780 | /** |
2763 | * The number of operations of the '<em>Aggregate Expression</em>' class. | 2781 | * The number of operations of the '<em>Aggregate Expression</em>' class. |
@@ -2788,6 +2806,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
2788 | int PROJECTED_AGGREGATE_EXPRESSION__RELATION = AGGREGATE_EXPRESSION__RELATION; | 2806 | int PROJECTED_AGGREGATE_EXPRESSION__RELATION = AGGREGATE_EXPRESSION__RELATION; |
2789 | 2807 | ||
2790 | /** | 2808 | /** |
2809 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
2810 | * <!-- begin-user-doc --> | ||
2811 | * <!-- end-user-doc --> | ||
2812 | * @generated | ||
2813 | * @ordered | ||
2814 | */ | ||
2815 | int PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | ||
2816 | |||
2817 | /** | ||
2818 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
2819 | * <!-- begin-user-doc --> | ||
2820 | * <!-- end-user-doc --> | ||
2821 | * @generated | ||
2822 | * @ordered | ||
2823 | */ | ||
2824 | int PROJECTED_AGGREGATE_EXPRESSION__RESULT_VARIABLE = AGGREGATE_EXPRESSION__RESULT_VARIABLE; | ||
2825 | |||
2826 | /** | ||
2791 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. | 2827 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. |
2792 | * <!-- begin-user-doc --> | 2828 | * <!-- begin-user-doc --> |
2793 | * <!-- end-user-doc --> | 2829 | * <!-- end-user-doc --> |
@@ -2834,6 +2870,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
2834 | int SUM__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; | 2870 | int SUM__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; |
2835 | 2871 | ||
2836 | /** | 2872 | /** |
2873 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
2874 | * <!-- begin-user-doc --> | ||
2875 | * <!-- end-user-doc --> | ||
2876 | * @generated | ||
2877 | * @ordered | ||
2878 | */ | ||
2879 | int SUM__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | ||
2880 | |||
2881 | /** | ||
2882 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
2883 | * <!-- begin-user-doc --> | ||
2884 | * <!-- end-user-doc --> | ||
2885 | * @generated | ||
2886 | * @ordered | ||
2887 | */ | ||
2888 | int SUM__RESULT_VARIABLE = PROJECTED_AGGREGATE_EXPRESSION__RESULT_VARIABLE; | ||
2889 | |||
2890 | /** | ||
2837 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. | 2891 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. |
2838 | * <!-- begin-user-doc --> | 2892 | * <!-- begin-user-doc --> |
2839 | * <!-- end-user-doc --> | 2893 | * <!-- end-user-doc --> |
@@ -2880,6 +2934,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
2880 | int COUNT__RELATION = AGGREGATE_EXPRESSION__RELATION; | 2934 | int COUNT__RELATION = AGGREGATE_EXPRESSION__RELATION; |
2881 | 2935 | ||
2882 | /** | 2936 | /** |
2937 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
2938 | * <!-- begin-user-doc --> | ||
2939 | * <!-- end-user-doc --> | ||
2940 | * @generated | ||
2941 | * @ordered | ||
2942 | */ | ||
2943 | int COUNT__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | ||
2944 | |||
2945 | /** | ||
2946 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
2947 | * <!-- begin-user-doc --> | ||
2948 | * <!-- end-user-doc --> | ||
2949 | * @generated | ||
2950 | * @ordered | ||
2951 | */ | ||
2952 | int COUNT__RESULT_VARIABLE = AGGREGATE_EXPRESSION__RESULT_VARIABLE; | ||
2953 | |||
2954 | /** | ||
2883 | * The number of structural features of the '<em>Count</em>' class. | 2955 | * The number of structural features of the '<em>Count</em>' class. |
2884 | * <!-- begin-user-doc --> | 2956 | * <!-- begin-user-doc --> |
2885 | * <!-- end-user-doc --> | 2957 | * <!-- end-user-doc --> |
@@ -2917,6 +2989,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
2917 | int MIN__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; | 2989 | int MIN__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; |
2918 | 2990 | ||
2919 | /** | 2991 | /** |
2992 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
2993 | * <!-- begin-user-doc --> | ||
2994 | * <!-- end-user-doc --> | ||
2995 | * @generated | ||
2996 | * @ordered | ||
2997 | */ | ||
2998 | int MIN__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | ||
2999 | |||
3000 | /** | ||
3001 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
3002 | * <!-- begin-user-doc --> | ||
3003 | * <!-- end-user-doc --> | ||
3004 | * @generated | ||
3005 | * @ordered | ||
3006 | */ | ||
3007 | int MIN__RESULT_VARIABLE = PROJECTED_AGGREGATE_EXPRESSION__RESULT_VARIABLE; | ||
3008 | |||
3009 | /** | ||
2920 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. | 3010 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. |
2921 | * <!-- begin-user-doc --> | 3011 | * <!-- begin-user-doc --> |
2922 | * <!-- end-user-doc --> | 3012 | * <!-- end-user-doc --> |
@@ -2963,6 +3053,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
2963 | int MAX__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; | 3053 | int MAX__RELATION = PROJECTED_AGGREGATE_EXPRESSION__RELATION; |
2964 | 3054 | ||
2965 | /** | 3055 | /** |
3056 | * The feature id for the '<em><b>Parameter Substitution</b></em>' containment reference list. | ||
3057 | * <!-- begin-user-doc --> | ||
3058 | * <!-- end-user-doc --> | ||
3059 | * @generated | ||
3060 | * @ordered | ||
3061 | */ | ||
3062 | int MAX__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | ||
3063 | |||
3064 | /** | ||
3065 | * The feature id for the '<em><b>Result Variable</b></em>' reference. | ||
3066 | * <!-- begin-user-doc --> | ||
3067 | * <!-- end-user-doc --> | ||
3068 | * @generated | ||
3069 | * @ordered | ||
3070 | */ | ||
3071 | int MAX__RESULT_VARIABLE = PROJECTED_AGGREGATE_EXPRESSION__RESULT_VARIABLE; | ||
3072 | |||
3073 | /** | ||
2966 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. | 3074 | * The feature id for the '<em><b>Projection Index</b></em>' attribute. |
2967 | * <!-- begin-user-doc --> | 3075 | * <!-- begin-user-doc --> |
2968 | * <!-- end-user-doc --> | 3076 | * <!-- end-user-doc --> |
@@ -2991,6 +3099,44 @@ public interface LogiclanguagePackage extends EPackage { | |||
2991 | 3099 | ||
2992 | 3100 | ||
2993 | /** | 3101 | /** |
3102 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregatedParameterSubstitutionImpl <em>Aggregated Parameter Substitution</em>}' class. | ||
3103 | * <!-- begin-user-doc --> | ||
3104 | * <!-- end-user-doc --> | ||
3105 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregatedParameterSubstitutionImpl | ||
3106 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.LogiclanguagePackageImpl#getAggregatedParameterSubstitution() | ||
3107 | * @generated | ||
3108 | */ | ||
3109 | int AGGREGATED_PARAMETER_SUBSTITUTION = 65; | ||
3110 | |||
3111 | /** | ||
3112 | * The feature id for the '<em><b>Variable</b></em>' reference. | ||
3113 | * <!-- begin-user-doc --> | ||
3114 | * <!-- end-user-doc --> | ||
3115 | * @generated | ||
3116 | * @ordered | ||
3117 | */ | ||
3118 | int AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE = 0; | ||
3119 | |||
3120 | /** | ||
3121 | * The number of structural features of the '<em>Aggregated Parameter Substitution</em>' class. | ||
3122 | * <!-- begin-user-doc --> | ||
3123 | * <!-- end-user-doc --> | ||
3124 | * @generated | ||
3125 | * @ordered | ||
3126 | */ | ||
3127 | int AGGREGATED_PARAMETER_SUBSTITUTION_FEATURE_COUNT = 1; | ||
3128 | |||
3129 | /** | ||
3130 | * The number of operations of the '<em>Aggregated Parameter Substitution</em>' class. | ||
3131 | * <!-- begin-user-doc --> | ||
3132 | * <!-- end-user-doc --> | ||
3133 | * @generated | ||
3134 | * @ordered | ||
3135 | */ | ||
3136 | int AGGREGATED_PARAMETER_SUBSTITUTION_OPERATION_COUNT = 0; | ||
3137 | |||
3138 | |||
3139 | /** | ||
2994 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type <em>Type</em>}'. | 3140 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type <em>Type</em>}'. |
2995 | * <!-- begin-user-doc --> | 3141 | * <!-- begin-user-doc --> |
2996 | * <!-- end-user-doc --> | 3142 | * <!-- end-user-doc --> |
@@ -4306,6 +4452,28 @@ public interface LogiclanguagePackage extends EPackage { | |||
4306 | EReference getAggregateExpression_Relation(); | 4452 | EReference getAggregateExpression_Relation(); |
4307 | 4453 | ||
4308 | /** | 4454 | /** |
4455 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getParameterSubstitution <em>Parameter Substitution</em>}'. | ||
4456 | * <!-- begin-user-doc --> | ||
4457 | * <!-- end-user-doc --> | ||
4458 | * @return the meta object for the containment reference list '<em>Parameter Substitution</em>'. | ||
4459 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getParameterSubstitution() | ||
4460 | * @see #getAggregateExpression() | ||
4461 | * @generated | ||
4462 | */ | ||
4463 | EReference getAggregateExpression_ParameterSubstitution(); | ||
4464 | |||
4465 | /** | ||
4466 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getResultVariable <em>Result Variable</em>}'. | ||
4467 | * <!-- begin-user-doc --> | ||
4468 | * <!-- end-user-doc --> | ||
4469 | * @return the meta object for the reference '<em>Result Variable</em>'. | ||
4470 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression#getResultVariable() | ||
4471 | * @see #getAggregateExpression() | ||
4472 | * @generated | ||
4473 | */ | ||
4474 | EReference getAggregateExpression_ResultVariable(); | ||
4475 | |||
4476 | /** | ||
4309 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Sum <em>Sum</em>}'. | 4477 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Sum <em>Sum</em>}'. |
4310 | * <!-- begin-user-doc --> | 4478 | * <!-- begin-user-doc --> |
4311 | * <!-- end-user-doc --> | 4479 | * <!-- end-user-doc --> |
@@ -4367,6 +4535,27 @@ public interface LogiclanguagePackage extends EPackage { | |||
4367 | EAttribute getProjectedAggregateExpression_ProjectionIndex(); | 4535 | EAttribute getProjectedAggregateExpression_ProjectionIndex(); |
4368 | 4536 | ||
4369 | /** | 4537 | /** |
4538 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution <em>Aggregated Parameter Substitution</em>}'. | ||
4539 | * <!-- begin-user-doc --> | ||
4540 | * <!-- end-user-doc --> | ||
4541 | * @return the meta object for class '<em>Aggregated Parameter Substitution</em>'. | ||
4542 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution | ||
4543 | * @generated | ||
4544 | */ | ||
4545 | EClass getAggregatedParameterSubstitution(); | ||
4546 | |||
4547 | /** | ||
4548 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution#getVariable <em>Variable</em>}'. | ||
4549 | * <!-- begin-user-doc --> | ||
4550 | * <!-- end-user-doc --> | ||
4551 | * @return the meta object for the reference '<em>Variable</em>'. | ||
4552 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution#getVariable() | ||
4553 | * @see #getAggregatedParameterSubstitution() | ||
4554 | * @generated | ||
4555 | */ | ||
4556 | EReference getAggregatedParameterSubstitution_Variable(); | ||
4557 | |||
4558 | /** | ||
4370 | * Returns the factory that creates the instances of the model. | 4559 | * Returns the factory that creates the instances of the model. |
4371 | * <!-- begin-user-doc --> | 4560 | * <!-- begin-user-doc --> |
4372 | * <!-- end-user-doc --> | 4561 | * <!-- end-user-doc --> |
@@ -5510,6 +5699,22 @@ public interface LogiclanguagePackage extends EPackage { | |||
5510 | EReference AGGREGATE_EXPRESSION__RELATION = eINSTANCE.getAggregateExpression_Relation(); | 5699 | EReference AGGREGATE_EXPRESSION__RELATION = eINSTANCE.getAggregateExpression_Relation(); |
5511 | 5700 | ||
5512 | /** | 5701 | /** |
5702 | * The meta object literal for the '<em><b>Parameter Substitution</b></em>' containment reference list feature. | ||
5703 | * <!-- begin-user-doc --> | ||
5704 | * <!-- end-user-doc --> | ||
5705 | * @generated | ||
5706 | */ | ||
5707 | EReference AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = eINSTANCE.getAggregateExpression_ParameterSubstitution(); | ||
5708 | |||
5709 | /** | ||
5710 | * The meta object literal for the '<em><b>Result Variable</b></em>' reference feature. | ||
5711 | * <!-- begin-user-doc --> | ||
5712 | * <!-- end-user-doc --> | ||
5713 | * @generated | ||
5714 | */ | ||
5715 | EReference AGGREGATE_EXPRESSION__RESULT_VARIABLE = eINSTANCE.getAggregateExpression_ResultVariable(); | ||
5716 | |||
5717 | /** | ||
5513 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.SumImpl <em>Sum</em>}' class. | 5718 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.SumImpl <em>Sum</em>}' class. |
5514 | * <!-- begin-user-doc --> | 5719 | * <!-- begin-user-doc --> |
5515 | * <!-- end-user-doc --> | 5720 | * <!-- end-user-doc --> |
@@ -5567,6 +5772,24 @@ public interface LogiclanguagePackage extends EPackage { | |||
5567 | */ | 5772 | */ |
5568 | EAttribute PROJECTED_AGGREGATE_EXPRESSION__PROJECTION_INDEX = eINSTANCE.getProjectedAggregateExpression_ProjectionIndex(); | 5773 | EAttribute PROJECTED_AGGREGATE_EXPRESSION__PROJECTION_INDEX = eINSTANCE.getProjectedAggregateExpression_ProjectionIndex(); |
5569 | 5774 | ||
5775 | /** | ||
5776 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregatedParameterSubstitutionImpl <em>Aggregated Parameter Substitution</em>}' class. | ||
5777 | * <!-- begin-user-doc --> | ||
5778 | * <!-- end-user-doc --> | ||
5779 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregatedParameterSubstitutionImpl | ||
5780 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.LogiclanguagePackageImpl#getAggregatedParameterSubstitution() | ||
5781 | * @generated | ||
5782 | */ | ||
5783 | EClass AGGREGATED_PARAMETER_SUBSTITUTION = eINSTANCE.getAggregatedParameterSubstitution(); | ||
5784 | |||
5785 | /** | ||
5786 | * The meta object literal for the '<em><b>Variable</b></em>' reference feature. | ||
5787 | * <!-- begin-user-doc --> | ||
5788 | * <!-- end-user-doc --> | ||
5789 | * @generated | ||
5790 | */ | ||
5791 | EReference AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE = eINSTANCE.getAggregatedParameterSubstitution_Variable(); | ||
5792 | |||
5570 | } | 5793 | } |
5571 | 5794 | ||
5572 | } //LogiclanguagePackage | 5795 | } //LogiclanguagePackage |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregateExpressionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregateExpressionImpl.java index fc1420b0..31155b84 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregateExpressionImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregateExpressionImpl.java | |||
@@ -3,15 +3,22 @@ | |||
3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl; | 3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl; |
4 | 4 | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression; | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression; |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution; | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; |
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; |
8 | 9 | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
11 | import java.util.Collection; | ||
9 | import org.eclipse.emf.common.notify.Notification; | 12 | import org.eclipse.emf.common.notify.Notification; |
10 | 13 | ||
14 | import org.eclipse.emf.common.notify.NotificationChain; | ||
15 | import org.eclipse.emf.common.util.EList; | ||
11 | import org.eclipse.emf.ecore.EClass; | 16 | import org.eclipse.emf.ecore.EClass; |
12 | import org.eclipse.emf.ecore.InternalEObject; | 17 | import org.eclipse.emf.ecore.InternalEObject; |
13 | 18 | ||
14 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | 19 | import org.eclipse.emf.ecore.impl.ENotificationImpl; |
20 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
21 | import org.eclipse.emf.ecore.util.InternalEList; | ||
15 | 22 | ||
16 | /** | 23 | /** |
17 | * <!-- begin-user-doc --> | 24 | * <!-- begin-user-doc --> |
@@ -22,6 +29,8 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; | |||
22 | * </p> | 29 | * </p> |
23 | * <ul> | 30 | * <ul> |
24 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregateExpressionImpl#getRelation <em>Relation</em>}</li> | 31 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregateExpressionImpl#getRelation <em>Relation</em>}</li> |
32 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregateExpressionImpl#getParameterSubstitution <em>Parameter Substitution</em>}</li> | ||
33 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregateExpressionImpl#getResultVariable <em>Result Variable</em>}</li> | ||
25 | * </ul> | 34 | * </ul> |
26 | * | 35 | * |
27 | * @generated | 36 | * @generated |
@@ -38,6 +47,26 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
38 | protected Relation relation; | 47 | protected Relation relation; |
39 | 48 | ||
40 | /** | 49 | /** |
50 | * The cached value of the '{@link #getParameterSubstitution() <em>Parameter Substitution</em>}' containment reference list. | ||
51 | * <!-- begin-user-doc --> | ||
52 | * <!-- end-user-doc --> | ||
53 | * @see #getParameterSubstitution() | ||
54 | * @generated | ||
55 | * @ordered | ||
56 | */ | ||
57 | protected EList<AggregatedParameterSubstitution> parameterSubstitution; | ||
58 | |||
59 | /** | ||
60 | * The cached value of the '{@link #getResultVariable() <em>Result Variable</em>}' reference. | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @see #getResultVariable() | ||
64 | * @generated | ||
65 | * @ordered | ||
66 | */ | ||
67 | protected Variable resultVariable; | ||
68 | |||
69 | /** | ||
41 | * <!-- begin-user-doc --> | 70 | * <!-- begin-user-doc --> |
42 | * <!-- end-user-doc --> | 71 | * <!-- end-user-doc --> |
43 | * @generated | 72 | * @generated |
@@ -102,11 +131,83 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
102 | * @generated | 131 | * @generated |
103 | */ | 132 | */ |
104 | @Override | 133 | @Override |
134 | public EList<AggregatedParameterSubstitution> getParameterSubstitution() { | ||
135 | if (parameterSubstitution == null) { | ||
136 | parameterSubstitution = new EObjectContainmentEList<AggregatedParameterSubstitution>(AggregatedParameterSubstitution.class, this, LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION); | ||
137 | } | ||
138 | return parameterSubstitution; | ||
139 | } | ||
140 | |||
141 | /** | ||
142 | * <!-- begin-user-doc --> | ||
143 | * <!-- end-user-doc --> | ||
144 | * @generated | ||
145 | */ | ||
146 | @Override | ||
147 | public Variable getResultVariable() { | ||
148 | if (resultVariable != null && resultVariable.eIsProxy()) { | ||
149 | InternalEObject oldResultVariable = (InternalEObject)resultVariable; | ||
150 | resultVariable = (Variable)eResolveProxy(oldResultVariable); | ||
151 | if (resultVariable != oldResultVariable) { | ||
152 | if (eNotificationRequired()) | ||
153 | eNotify(new ENotificationImpl(this, Notification.RESOLVE, LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE, oldResultVariable, resultVariable)); | ||
154 | } | ||
155 | } | ||
156 | return resultVariable; | ||
157 | } | ||
158 | |||
159 | /** | ||
160 | * <!-- begin-user-doc --> | ||
161 | * <!-- end-user-doc --> | ||
162 | * @generated | ||
163 | */ | ||
164 | public Variable basicGetResultVariable() { | ||
165 | return resultVariable; | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * <!-- begin-user-doc --> | ||
170 | * <!-- end-user-doc --> | ||
171 | * @generated | ||
172 | */ | ||
173 | @Override | ||
174 | public void setResultVariable(Variable newResultVariable) { | ||
175 | Variable oldResultVariable = resultVariable; | ||
176 | resultVariable = newResultVariable; | ||
177 | if (eNotificationRequired()) | ||
178 | eNotify(new ENotificationImpl(this, Notification.SET, LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE, oldResultVariable, resultVariable)); | ||
179 | } | ||
180 | |||
181 | /** | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | @Override | ||
187 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
188 | switch (featureID) { | ||
189 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | ||
190 | return ((InternalEList<?>)getParameterSubstitution()).basicRemove(otherEnd, msgs); | ||
191 | } | ||
192 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
193 | } | ||
194 | |||
195 | /** | ||
196 | * <!-- begin-user-doc --> | ||
197 | * <!-- end-user-doc --> | ||
198 | * @generated | ||
199 | */ | ||
200 | @Override | ||
105 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | 201 | public Object eGet(int featureID, boolean resolve, boolean coreType) { |
106 | switch (featureID) { | 202 | switch (featureID) { |
107 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: | 203 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: |
108 | if (resolve) return getRelation(); | 204 | if (resolve) return getRelation(); |
109 | return basicGetRelation(); | 205 | return basicGetRelation(); |
206 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | ||
207 | return getParameterSubstitution(); | ||
208 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
209 | if (resolve) return getResultVariable(); | ||
210 | return basicGetResultVariable(); | ||
110 | } | 211 | } |
111 | return super.eGet(featureID, resolve, coreType); | 212 | return super.eGet(featureID, resolve, coreType); |
112 | } | 213 | } |
@@ -116,12 +217,20 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
116 | * <!-- end-user-doc --> | 217 | * <!-- end-user-doc --> |
117 | * @generated | 218 | * @generated |
118 | */ | 219 | */ |
220 | @SuppressWarnings("unchecked") | ||
119 | @Override | 221 | @Override |
120 | public void eSet(int featureID, Object newValue) { | 222 | public void eSet(int featureID, Object newValue) { |
121 | switch (featureID) { | 223 | switch (featureID) { |
122 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: | 224 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: |
123 | setRelation((Relation)newValue); | 225 | setRelation((Relation)newValue); |
124 | return; | 226 | return; |
227 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | ||
228 | getParameterSubstitution().clear(); | ||
229 | getParameterSubstitution().addAll((Collection<? extends AggregatedParameterSubstitution>)newValue); | ||
230 | return; | ||
231 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
232 | setResultVariable((Variable)newValue); | ||
233 | return; | ||
125 | } | 234 | } |
126 | super.eSet(featureID, newValue); | 235 | super.eSet(featureID, newValue); |
127 | } | 236 | } |
@@ -137,6 +246,12 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
137 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: | 246 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: |
138 | setRelation((Relation)null); | 247 | setRelation((Relation)null); |
139 | return; | 248 | return; |
249 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | ||
250 | getParameterSubstitution().clear(); | ||
251 | return; | ||
252 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
253 | setResultVariable((Variable)null); | ||
254 | return; | ||
140 | } | 255 | } |
141 | super.eUnset(featureID); | 256 | super.eUnset(featureID); |
142 | } | 257 | } |
@@ -151,6 +266,10 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
151 | switch (featureID) { | 266 | switch (featureID) { |
152 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: | 267 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RELATION: |
153 | return relation != null; | 268 | return relation != null; |
269 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | ||
270 | return parameterSubstitution != null && !parameterSubstitution.isEmpty(); | ||
271 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
272 | return resultVariable != null; | ||
154 | } | 273 | } |
155 | return super.eIsSet(featureID); | 274 | return super.eIsSet(featureID); |
156 | } | 275 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregatedParameterSubstitutionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregatedParameterSubstitutionImpl.java new file mode 100644 index 00000000..15af0f21 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/AggregatedParameterSubstitutionImpl.java | |||
@@ -0,0 +1,159 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution; | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
8 | |||
9 | import org.eclipse.emf.common.notify.Notification; | ||
10 | |||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.emf.ecore.InternalEObject; | ||
13 | |||
14 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
15 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
16 | |||
17 | /** | ||
18 | * <!-- begin-user-doc --> | ||
19 | * An implementation of the model object '<em><b>Aggregated Parameter Substitution</b></em>'. | ||
20 | * <!-- end-user-doc --> | ||
21 | * <p> | ||
22 | * The following features are implemented: | ||
23 | * </p> | ||
24 | * <ul> | ||
25 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregatedParameterSubstitutionImpl#getVariable <em>Variable</em>}</li> | ||
26 | * </ul> | ||
27 | * | ||
28 | * @generated | ||
29 | */ | ||
30 | public class AggregatedParameterSubstitutionImpl extends MinimalEObjectImpl.Container implements AggregatedParameterSubstitution { | ||
31 | /** | ||
32 | * The cached value of the '{@link #getVariable() <em>Variable</em>}' reference. | ||
33 | * <!-- begin-user-doc --> | ||
34 | * <!-- end-user-doc --> | ||
35 | * @see #getVariable() | ||
36 | * @generated | ||
37 | * @ordered | ||
38 | */ | ||
39 | protected Variable variable; | ||
40 | |||
41 | /** | ||
42 | * <!-- begin-user-doc --> | ||
43 | * <!-- end-user-doc --> | ||
44 | * @generated | ||
45 | */ | ||
46 | protected AggregatedParameterSubstitutionImpl() { | ||
47 | super(); | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * <!-- begin-user-doc --> | ||
52 | * <!-- end-user-doc --> | ||
53 | * @generated | ||
54 | */ | ||
55 | @Override | ||
56 | protected EClass eStaticClass() { | ||
57 | return LogiclanguagePackage.Literals.AGGREGATED_PARAMETER_SUBSTITUTION; | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @generated | ||
64 | */ | ||
65 | @Override | ||
66 | public Variable getVariable() { | ||
67 | if (variable != null && variable.eIsProxy()) { | ||
68 | InternalEObject oldVariable = (InternalEObject)variable; | ||
69 | variable = (Variable)eResolveProxy(oldVariable); | ||
70 | if (variable != oldVariable) { | ||
71 | if (eNotificationRequired()) | ||
72 | eNotify(new ENotificationImpl(this, Notification.RESOLVE, LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE, oldVariable, variable)); | ||
73 | } | ||
74 | } | ||
75 | return variable; | ||
76 | } | ||
77 | |||
78 | /** | ||
79 | * <!-- begin-user-doc --> | ||
80 | * <!-- end-user-doc --> | ||
81 | * @generated | ||
82 | */ | ||
83 | public Variable basicGetVariable() { | ||
84 | return variable; | ||
85 | } | ||
86 | |||
87 | /** | ||
88 | * <!-- begin-user-doc --> | ||
89 | * <!-- end-user-doc --> | ||
90 | * @generated | ||
91 | */ | ||
92 | @Override | ||
93 | public void setVariable(Variable newVariable) { | ||
94 | Variable oldVariable = variable; | ||
95 | variable = newVariable; | ||
96 | if (eNotificationRequired()) | ||
97 | eNotify(new ENotificationImpl(this, Notification.SET, LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE, oldVariable, variable)); | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * <!-- begin-user-doc --> | ||
102 | * <!-- end-user-doc --> | ||
103 | * @generated | ||
104 | */ | ||
105 | @Override | ||
106 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
107 | switch (featureID) { | ||
108 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE: | ||
109 | if (resolve) return getVariable(); | ||
110 | return basicGetVariable(); | ||
111 | } | ||
112 | return super.eGet(featureID, resolve, coreType); | ||
113 | } | ||
114 | |||
115 | /** | ||
116 | * <!-- begin-user-doc --> | ||
117 | * <!-- end-user-doc --> | ||
118 | * @generated | ||
119 | */ | ||
120 | @Override | ||
121 | public void eSet(int featureID, Object newValue) { | ||
122 | switch (featureID) { | ||
123 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE: | ||
124 | setVariable((Variable)newValue); | ||
125 | return; | ||
126 | } | ||
127 | super.eSet(featureID, newValue); | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * <!-- begin-user-doc --> | ||
132 | * <!-- end-user-doc --> | ||
133 | * @generated | ||
134 | */ | ||
135 | @Override | ||
136 | public void eUnset(int featureID) { | ||
137 | switch (featureID) { | ||
138 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE: | ||
139 | setVariable((Variable)null); | ||
140 | return; | ||
141 | } | ||
142 | super.eUnset(featureID); | ||
143 | } | ||
144 | |||
145 | /** | ||
146 | * <!-- begin-user-doc --> | ||
147 | * <!-- end-user-doc --> | ||
148 | * @generated | ||
149 | */ | ||
150 | @Override | ||
151 | public boolean eIsSet(int featureID) { | ||
152 | switch (featureID) { | ||
153 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE: | ||
154 | return variable != null; | ||
155 | } | ||
156 | return super.eIsSet(featureID); | ||
157 | } | ||
158 | |||
159 | } //AggregatedParameterSubstitutionImpl | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguageFactoryImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguageFactoryImpl.java index b890b6e0..b8d87d99 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguageFactoryImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguageFactoryImpl.java | |||
@@ -104,6 +104,7 @@ public class LogiclanguageFactoryImpl extends EFactoryImpl implements Logiclangu | |||
104 | case LogiclanguagePackage.COUNT: return createCount(); | 104 | case LogiclanguagePackage.COUNT: return createCount(); |
105 | case LogiclanguagePackage.MIN: return createMin(); | 105 | case LogiclanguagePackage.MIN: return createMin(); |
106 | case LogiclanguagePackage.MAX: return createMax(); | 106 | case LogiclanguagePackage.MAX: return createMax(); |
107 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION: return createAggregatedParameterSubstitution(); | ||
107 | default: | 108 | default: |
108 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | 109 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); |
109 | } | 110 | } |
@@ -643,6 +644,17 @@ public class LogiclanguageFactoryImpl extends EFactoryImpl implements Logiclangu | |||
643 | * @generated | 644 | * @generated |
644 | */ | 645 | */ |
645 | @Override | 646 | @Override |
647 | public AggregatedParameterSubstitution createAggregatedParameterSubstitution() { | ||
648 | AggregatedParameterSubstitutionImpl aggregatedParameterSubstitution = new AggregatedParameterSubstitutionImpl(); | ||
649 | return aggregatedParameterSubstitution; | ||
650 | } | ||
651 | |||
652 | /** | ||
653 | * <!-- begin-user-doc --> | ||
654 | * <!-- end-user-doc --> | ||
655 | * @generated | ||
656 | */ | ||
657 | @Override | ||
646 | public LogiclanguagePackage getLogiclanguagePackage() { | 658 | public LogiclanguagePackage getLogiclanguagePackage() { |
647 | return (LogiclanguagePackage)getEPackage(); | 659 | return (LogiclanguagePackage)getEPackage(); |
648 | } | 660 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguagePackageImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguagePackageImpl.java index 6d370c0f..03a679e4 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguagePackageImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/impl/LogiclanguagePackageImpl.java | |||
@@ -3,6 +3,7 @@ | |||
3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl; | 3 | package hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl; |
4 | 4 | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression; | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression; |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution; | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And; | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And; |
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AtomicTerm; | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AtomicTerm; |
@@ -548,6 +549,13 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
548 | private EClass projectedAggregateExpressionEClass = null; | 549 | private EClass projectedAggregateExpressionEClass = null; |
549 | 550 | ||
550 | /** | 551 | /** |
552 | * <!-- begin-user-doc --> | ||
553 | * <!-- end-user-doc --> | ||
554 | * @generated | ||
555 | */ | ||
556 | private EClass aggregatedParameterSubstitutionEClass = null; | ||
557 | |||
558 | /** | ||
551 | * Creates an instance of the model <b>Package</b>, registered with | 559 | * Creates an instance of the model <b>Package</b>, registered with |
552 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | 560 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package |
553 | * package URI value. | 561 | * package URI value. |
@@ -1874,6 +1882,26 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
1874 | * @generated | 1882 | * @generated |
1875 | */ | 1883 | */ |
1876 | @Override | 1884 | @Override |
1885 | public EReference getAggregateExpression_ParameterSubstitution() { | ||
1886 | return (EReference)aggregateExpressionEClass.getEStructuralFeatures().get(1); | ||
1887 | } | ||
1888 | |||
1889 | /** | ||
1890 | * <!-- begin-user-doc --> | ||
1891 | * <!-- end-user-doc --> | ||
1892 | * @generated | ||
1893 | */ | ||
1894 | @Override | ||
1895 | public EReference getAggregateExpression_ResultVariable() { | ||
1896 | return (EReference)aggregateExpressionEClass.getEStructuralFeatures().get(2); | ||
1897 | } | ||
1898 | |||
1899 | /** | ||
1900 | * <!-- begin-user-doc --> | ||
1901 | * <!-- end-user-doc --> | ||
1902 | * @generated | ||
1903 | */ | ||
1904 | @Override | ||
1877 | public EClass getSum() { | 1905 | public EClass getSum() { |
1878 | return sumEClass; | 1906 | return sumEClass; |
1879 | } | 1907 | } |
@@ -1934,6 +1962,26 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
1934 | * @generated | 1962 | * @generated |
1935 | */ | 1963 | */ |
1936 | @Override | 1964 | @Override |
1965 | public EClass getAggregatedParameterSubstitution() { | ||
1966 | return aggregatedParameterSubstitutionEClass; | ||
1967 | } | ||
1968 | |||
1969 | /** | ||
1970 | * <!-- begin-user-doc --> | ||
1971 | * <!-- end-user-doc --> | ||
1972 | * @generated | ||
1973 | */ | ||
1974 | @Override | ||
1975 | public EReference getAggregatedParameterSubstitution_Variable() { | ||
1976 | return (EReference)aggregatedParameterSubstitutionEClass.getEStructuralFeatures().get(0); | ||
1977 | } | ||
1978 | |||
1979 | /** | ||
1980 | * <!-- begin-user-doc --> | ||
1981 | * <!-- end-user-doc --> | ||
1982 | * @generated | ||
1983 | */ | ||
1984 | @Override | ||
1937 | public LogiclanguageFactory getLogiclanguageFactory() { | 1985 | public LogiclanguageFactory getLogiclanguageFactory() { |
1938 | return (LogiclanguageFactory)getEFactoryInstance(); | 1986 | return (LogiclanguageFactory)getEFactoryInstance(); |
1939 | } | 1987 | } |
@@ -2141,6 +2189,8 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2141 | 2189 | ||
2142 | aggregateExpressionEClass = createEClass(AGGREGATE_EXPRESSION); | 2190 | aggregateExpressionEClass = createEClass(AGGREGATE_EXPRESSION); |
2143 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RELATION); | 2191 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RELATION); |
2192 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION); | ||
2193 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RESULT_VARIABLE); | ||
2144 | 2194 | ||
2145 | sumEClass = createEClass(SUM); | 2195 | sumEClass = createEClass(SUM); |
2146 | 2196 | ||
@@ -2152,6 +2202,9 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2152 | 2202 | ||
2153 | projectedAggregateExpressionEClass = createEClass(PROJECTED_AGGREGATE_EXPRESSION); | 2203 | projectedAggregateExpressionEClass = createEClass(PROJECTED_AGGREGATE_EXPRESSION); |
2154 | createEAttribute(projectedAggregateExpressionEClass, PROJECTED_AGGREGATE_EXPRESSION__PROJECTION_INDEX); | 2204 | createEAttribute(projectedAggregateExpressionEClass, PROJECTED_AGGREGATE_EXPRESSION__PROJECTION_INDEX); |
2205 | |||
2206 | aggregatedParameterSubstitutionEClass = createEClass(AGGREGATED_PARAMETER_SUBSTITUTION); | ||
2207 | createEReference(aggregatedParameterSubstitutionEClass, AGGREGATED_PARAMETER_SUBSTITUTION__VARIABLE); | ||
2155 | } | 2208 | } |
2156 | 2209 | ||
2157 | /** | 2210 | /** |
@@ -2433,6 +2486,8 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2433 | 2486 | ||
2434 | initEClass(aggregateExpressionEClass, AggregateExpression.class, "AggregateExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 2487 | initEClass(aggregateExpressionEClass, AggregateExpression.class, "AggregateExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
2435 | initEReference(getAggregateExpression_Relation(), this.getRelation(), null, "relation", null, 0, 1, AggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 2488 | initEReference(getAggregateExpression_Relation(), this.getRelation(), null, "relation", null, 0, 1, AggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
2489 | initEReference(getAggregateExpression_ParameterSubstitution(), this.getAggregatedParameterSubstitution(), null, "parameterSubstitution", null, 0, -1, AggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
2490 | initEReference(getAggregateExpression_ResultVariable(), this.getVariable(), null, "resultVariable", null, 0, 1, AggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
2436 | 2491 | ||
2437 | initEClass(sumEClass, Sum.class, "Sum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 2492 | initEClass(sumEClass, Sum.class, "Sum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
2438 | 2493 | ||
@@ -2445,6 +2500,9 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2445 | initEClass(projectedAggregateExpressionEClass, ProjectedAggregateExpression.class, "ProjectedAggregateExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 2500 | initEClass(projectedAggregateExpressionEClass, ProjectedAggregateExpression.class, "ProjectedAggregateExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
2446 | initEAttribute(getProjectedAggregateExpression_ProjectionIndex(), ecorePackage.getEInt(), "projectionIndex", "-1", 1, 1, ProjectedAggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 2501 | initEAttribute(getProjectedAggregateExpression_ProjectionIndex(), ecorePackage.getEInt(), "projectionIndex", "-1", 1, 1, ProjectedAggregateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
2447 | 2502 | ||
2503 | initEClass(aggregatedParameterSubstitutionEClass, AggregatedParameterSubstitution.class, "AggregatedParameterSubstitution", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
2504 | initEReference(getAggregatedParameterSubstitution_Variable(), this.getVariable(), null, "variable", null, 0, 1, AggregatedParameterSubstitution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
2505 | |||
2448 | // Create resource | 2506 | // Create resource |
2449 | createResource(eNS_URI); | 2507 | createResource(eNS_URI); |
2450 | } | 2508 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageAdapterFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageAdapterFactory.java index 25edee70..3fc7c298 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageAdapterFactory.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageAdapterFactory.java | |||
@@ -328,6 +328,10 @@ public class LogiclanguageAdapterFactory extends AdapterFactoryImpl { | |||
328 | return createProjectedAggregateExpressionAdapter(); | 328 | return createProjectedAggregateExpressionAdapter(); |
329 | } | 329 | } |
330 | @Override | 330 | @Override |
331 | public Adapter caseAggregatedParameterSubstitution(AggregatedParameterSubstitution object) { | ||
332 | return createAggregatedParameterSubstitutionAdapter(); | ||
333 | } | ||
334 | @Override | ||
331 | public Adapter defaultCase(EObject object) { | 335 | public Adapter defaultCase(EObject object) { |
332 | return createEObjectAdapter(); | 336 | return createEObjectAdapter(); |
333 | } | 337 | } |
@@ -1258,6 +1262,20 @@ public class LogiclanguageAdapterFactory extends AdapterFactoryImpl { | |||
1258 | } | 1262 | } |
1259 | 1263 | ||
1260 | /** | 1264 | /** |
1265 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution <em>Aggregated Parameter Substitution</em>}'. | ||
1266 | * <!-- begin-user-doc --> | ||
1267 | * This default implementation returns null so that we can easily ignore cases; | ||
1268 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
1269 | * <!-- end-user-doc --> | ||
1270 | * @return the new adapter. | ||
1271 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterSubstitution | ||
1272 | * @generated | ||
1273 | */ | ||
1274 | public Adapter createAggregatedParameterSubstitutionAdapter() { | ||
1275 | return null; | ||
1276 | } | ||
1277 | |||
1278 | /** | ||
1261 | * Creates a new adapter for the default case. | 1279 | * Creates a new adapter for the default case. |
1262 | * <!-- begin-user-doc --> | 1280 | * <!-- begin-user-doc --> |
1263 | * This default implementation returns null. | 1281 | * This default implementation returns null. |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageSwitch.java b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageSwitch.java index fc443484..ac821567 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageSwitch.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/ecore-gen/hu/bme/mit/inf/dslreasoner/logic/model/logiclanguage/util/LogiclanguageSwitch.java | |||
@@ -617,6 +617,12 @@ public class LogiclanguageSwitch<T> extends Switch<T> { | |||
617 | if (result == null) result = defaultCase(theEObject); | 617 | if (result == null) result = defaultCase(theEObject); |
618 | return result; | 618 | return result; |
619 | } | 619 | } |
620 | case LogiclanguagePackage.AGGREGATED_PARAMETER_SUBSTITUTION: { | ||
621 | AggregatedParameterSubstitution aggregatedParameterSubstitution = (AggregatedParameterSubstitution)theEObject; | ||
622 | T result = caseAggregatedParameterSubstitution(aggregatedParameterSubstitution); | ||
623 | if (result == null) result = defaultCase(theEObject); | ||
624 | return result; | ||
625 | } | ||
620 | default: return defaultCase(theEObject); | 626 | default: return defaultCase(theEObject); |
621 | } | 627 | } |
622 | } | 628 | } |
@@ -1597,6 +1603,21 @@ public class LogiclanguageSwitch<T> extends Switch<T> { | |||
1597 | } | 1603 | } |
1598 | 1604 | ||
1599 | /** | 1605 | /** |
1606 | * Returns the result of interpreting the object as an instance of '<em>Aggregated Parameter Substitution</em>'. | ||
1607 | * <!-- begin-user-doc --> | ||
1608 | * This implementation returns null; | ||
1609 | * returning a non-null result will terminate the switch. | ||
1610 | * <!-- end-user-doc --> | ||
1611 | * @param object the target of the switch. | ||
1612 | * @return the result of interpreting the object as an instance of '<em>Aggregated Parameter Substitution</em>'. | ||
1613 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
1614 | * @generated | ||
1615 | */ | ||
1616 | public T caseAggregatedParameterSubstitution(AggregatedParameterSubstitution object) { | ||
1617 | return null; | ||
1618 | } | ||
1619 | |||
1620 | /** | ||
1600 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. | 1621 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. |
1601 | * <!-- begin-user-doc --> | 1622 | * <!-- begin-user-doc --> |
1602 | * This implementation returns null; | 1623 | * This implementation returns null; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.aird b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.aird index 5673d66a..e96b4586 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.aird +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.aird | |||
@@ -7805,7 +7805,7 @@ | |||
7805 | <styles xmi:type="notation:FilteringStyle" xmi:id="_rsImpm6WEemSyfDlsGAqLA"/> | 7805 | <styles xmi:type="notation:FilteringStyle" xmi:id="_rsImpm6WEemSyfDlsGAqLA"/> |
7806 | </children> | 7806 | </children> |
7807 | <styles xmi:type="notation:ShapeStyle" xmi:id="_rsImoW6WEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7807 | <styles xmi:type="notation:ShapeStyle" xmi:id="_rsImoW6WEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7808 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsImom6WEemSyfDlsGAqLA" x="2085" y="363" width="135" height="40"/> | 7808 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsImom6WEemSyfDlsGAqLA" x="2280" y="365" width="135" height="40"/> |
7809 | </children> | 7809 | </children> |
7810 | <children xmi:type="notation:Node" xmi:id="_31nEcG6XEemSyfDlsGAqLA" type="2003" element="_309kMG6XEemSyfDlsGAqLA"> | 7810 | <children xmi:type="notation:Node" xmi:id="_31nEcG6XEemSyfDlsGAqLA" type="2003" element="_309kMG6XEemSyfDlsGAqLA"> |
7811 | <children xmi:type="notation:Node" xmi:id="_31nrgG6XEemSyfDlsGAqLA" type="5007"/> | 7811 | <children xmi:type="notation:Node" xmi:id="_31nrgG6XEemSyfDlsGAqLA" type="5007"/> |
@@ -7814,7 +7814,7 @@ | |||
7814 | <styles xmi:type="notation:FilteringStyle" xmi:id="_31nrg26XEemSyfDlsGAqLA"/> | 7814 | <styles xmi:type="notation:FilteringStyle" xmi:id="_31nrg26XEemSyfDlsGAqLA"/> |
7815 | </children> | 7815 | </children> |
7816 | <styles xmi:type="notation:ShapeStyle" xmi:id="_31nEcW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7816 | <styles xmi:type="notation:ShapeStyle" xmi:id="_31nEcW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7817 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31nEcm6XEemSyfDlsGAqLA" x="2196" y="564" width="60" height="41"/> | 7817 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31nEcm6XEemSyfDlsGAqLA" x="2391" y="566" width="60" height="41"/> |
7818 | </children> | 7818 | </children> |
7819 | <children xmi:type="notation:Node" xmi:id="_53F0AG6XEemSyfDlsGAqLA" type="2003" element="_52k2oG6XEemSyfDlsGAqLA"> | 7819 | <children xmi:type="notation:Node" xmi:id="_53F0AG6XEemSyfDlsGAqLA" type="2003" element="_52k2oG6XEemSyfDlsGAqLA"> |
7820 | <children xmi:type="notation:Node" xmi:id="_53F0A26XEemSyfDlsGAqLA" type="5007"/> | 7820 | <children xmi:type="notation:Node" xmi:id="_53F0A26XEemSyfDlsGAqLA" type="5007"/> |
@@ -7823,7 +7823,7 @@ | |||
7823 | <styles xmi:type="notation:FilteringStyle" xmi:id="_53F0Bm6XEemSyfDlsGAqLA"/> | 7823 | <styles xmi:type="notation:FilteringStyle" xmi:id="_53F0Bm6XEemSyfDlsGAqLA"/> |
7824 | </children> | 7824 | </children> |
7825 | <styles xmi:type="notation:ShapeStyle" xmi:id="_53F0AW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7825 | <styles xmi:type="notation:ShapeStyle" xmi:id="_53F0AW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7826 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_53F0Am6XEemSyfDlsGAqLA" x="2115" y="466" width="75" height="28"/> | 7826 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_53F0Am6XEemSyfDlsGAqLA" x="2310" y="468" width="75" height="28"/> |
7827 | </children> | 7827 | </children> |
7828 | <children xmi:type="notation:Node" xmi:id="_8nYKUG6XEemSyfDlsGAqLA" type="2003" element="_8mxtYG6XEemSyfDlsGAqLA"> | 7828 | <children xmi:type="notation:Node" xmi:id="_8nYKUG6XEemSyfDlsGAqLA" type="2003" element="_8mxtYG6XEemSyfDlsGAqLA"> |
7829 | <children xmi:type="notation:Node" xmi:id="_8nYxYG6XEemSyfDlsGAqLA" type="5007"/> | 7829 | <children xmi:type="notation:Node" xmi:id="_8nYxYG6XEemSyfDlsGAqLA" type="5007"/> |
@@ -7832,7 +7832,7 @@ | |||
7832 | <styles xmi:type="notation:FilteringStyle" xmi:id="_8nYxY26XEemSyfDlsGAqLA"/> | 7832 | <styles xmi:type="notation:FilteringStyle" xmi:id="_8nYxY26XEemSyfDlsGAqLA"/> |
7833 | </children> | 7833 | </children> |
7834 | <styles xmi:type="notation:ShapeStyle" xmi:id="_8nYKUW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7834 | <styles xmi:type="notation:ShapeStyle" xmi:id="_8nYKUW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7835 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8nYKUm6XEemSyfDlsGAqLA" x="2268" y="564" width="63" height="16"/> | 7835 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8nYKUm6XEemSyfDlsGAqLA" x="2463" y="566" width="63" height="16"/> |
7836 | </children> | 7836 | </children> |
7837 | <children xmi:type="notation:Node" xmi:id="_-vo3UG6XEemSyfDlsGAqLA" type="2003" element="_-vAlMG6XEemSyfDlsGAqLA"> | 7837 | <children xmi:type="notation:Node" xmi:id="_-vo3UG6XEemSyfDlsGAqLA" type="2003" element="_-vAlMG6XEemSyfDlsGAqLA"> |
7838 | <children xmi:type="notation:Node" xmi:id="_-vpeYG6XEemSyfDlsGAqLA" type="5007"/> | 7838 | <children xmi:type="notation:Node" xmi:id="_-vpeYG6XEemSyfDlsGAqLA" type="5007"/> |
@@ -7841,7 +7841,7 @@ | |||
7841 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-vpeY26XEemSyfDlsGAqLA"/> | 7841 | <styles xmi:type="notation:FilteringStyle" xmi:id="_-vpeY26XEemSyfDlsGAqLA"/> |
7842 | </children> | 7842 | </children> |
7843 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-vo3UW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7843 | <styles xmi:type="notation:ShapeStyle" xmi:id="_-vo3UW6XEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7844 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-vo3Um6XEemSyfDlsGAqLA" x="2340" y="564" width="60" height="16"/> | 7844 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-vo3Um6XEemSyfDlsGAqLA" x="2535" y="566" width="60" height="16"/> |
7845 | </children> | 7845 | </children> |
7846 | <children xmi:type="notation:Node" xmi:id="_9KcB0G6cEemSyfDlsGAqLA" type="2003" element="_9J4BIG6cEemSyfDlsGAqLA"> | 7846 | <children xmi:type="notation:Node" xmi:id="_9KcB0G6cEemSyfDlsGAqLA" type="2003" element="_9J4BIG6cEemSyfDlsGAqLA"> |
7847 | <children xmi:type="notation:Node" xmi:id="_9KcB026cEemSyfDlsGAqLA" type="5007"/> | 7847 | <children xmi:type="notation:Node" xmi:id="_9KcB026cEemSyfDlsGAqLA" type="5007"/> |
@@ -7854,7 +7854,16 @@ | |||
7854 | <styles xmi:type="notation:FilteringStyle" xmi:id="_9KcB1m6cEemSyfDlsGAqLA"/> | 7854 | <styles xmi:type="notation:FilteringStyle" xmi:id="_9KcB1m6cEemSyfDlsGAqLA"/> |
7855 | </children> | 7855 | </children> |
7856 | <styles xmi:type="notation:ShapeStyle" xmi:id="_9KcB0W6cEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> | 7856 | <styles xmi:type="notation:ShapeStyle" xmi:id="_9KcB0W6cEemSyfDlsGAqLA" fontName="Segoe UI" fontHeight="8"/> |
7857 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9KcB0m6cEemSyfDlsGAqLA" x="2196" y="466" width="183" height="53"/> | 7857 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9KcB0m6cEemSyfDlsGAqLA" x="2391" y="468" width="183" height="53"/> |
7858 | </children> | ||
7859 | <children xmi:type="notation:Node" xmi:id="_qmVssKJeEemXzuA5M0BZIw" type="2003" element="_qkRQIKJeEemXzuA5M0BZIw"> | ||
7860 | <children xmi:type="notation:Node" xmi:id="_qmh58KJeEemXzuA5M0BZIw" type="5007"/> | ||
7861 | <children xmi:type="notation:Node" xmi:id="_qmihAKJeEemXzuA5M0BZIw" type="7004"> | ||
7862 | <styles xmi:type="notation:SortingStyle" xmi:id="_qmihAaJeEemXzuA5M0BZIw"/> | ||
7863 | <styles xmi:type="notation:FilteringStyle" xmi:id="_qmihAqJeEemXzuA5M0BZIw"/> | ||
7864 | </children> | ||
7865 | <styles xmi:type="notation:ShapeStyle" xmi:id="_qmVssaJeEemXzuA5M0BZIw" fontName="Segoe UI" fontHeight="8"/> | ||
7866 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qmVssqJeEemXzuA5M0BZIw" x="2028" y="367" width="219" height="41"/> | ||
7858 | </children> | 7867 | </children> |
7859 | <styles xmi:type="notation:DiagramStyle" xmi:id="_l6X5OrdnEeau1vMV3Bsx4w"/> | 7868 | <styles xmi:type="notation:DiagramStyle" xmi:id="_l6X5OrdnEeau1vMV3Bsx4w"/> |
7860 | <edges xmi:type="notation:Edge" xmi:id="_l6X5a7dnEeau1vMV3Bsx4w" type="4001" element="_l6Zt6bdnEeau1vMV3Bsx4w" source="_l6XR7LdnEeau1vMV3Bsx4w" target="_l6XR27dnEeau1vMV3Bsx4w"> | 7869 | <edges xmi:type="notation:Edge" xmi:id="_l6X5a7dnEeau1vMV3Bsx4w" type="4001" element="_l6Zt6bdnEeau1vMV3Bsx4w" source="_l6XR7LdnEeau1vMV3Bsx4w" target="_l6XR27dnEeau1vMV3Bsx4w"> |
@@ -9011,17 +9020,17 @@ | |||
9011 | </edges> | 9020 | </edges> |
9012 | <edges xmi:type="notation:Edge" xmi:id="_hKdI4G6cEemSyfDlsGAqLA" type="4001" element="_hJ8ymW6cEemSyfDlsGAqLA" source="_rsImoG6WEemSyfDlsGAqLA" target="_hTMLdIKhEeeAppuRs-roLg"> | 9021 | <edges xmi:type="notation:Edge" xmi:id="_hKdI4G6cEemSyfDlsGAqLA" type="4001" element="_hJ8ymW6cEemSyfDlsGAqLA" source="_rsImoG6WEemSyfDlsGAqLA" target="_hTMLdIKhEeeAppuRs-roLg"> |
9013 | <children xmi:type="notation:Node" xmi:id="_hKdv8G6cEemSyfDlsGAqLA" type="6001"> | 9022 | <children xmi:type="notation:Node" xmi:id="_hKdv8G6cEemSyfDlsGAqLA" type="6001"> |
9014 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv8W6cEemSyfDlsGAqLA" x="143" y="-10"/> | 9023 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv8W6cEemSyfDlsGAqLA" x="239" y="-10"/> |
9015 | </children> | 9024 | </children> |
9016 | <children xmi:type="notation:Node" xmi:id="_hKdv8m6cEemSyfDlsGAqLA" type="6002"> | 9025 | <children xmi:type="notation:Node" xmi:id="_hKdv8m6cEemSyfDlsGAqLA" type="6002"> |
9017 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv826cEemSyfDlsGAqLA" x="27"/> | 9026 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv826cEemSyfDlsGAqLA" x="-4"/> |
9018 | </children> | 9027 | </children> |
9019 | <children xmi:type="notation:Node" xmi:id="_hKdv9G6cEemSyfDlsGAqLA" type="6003"> | 9028 | <children xmi:type="notation:Node" xmi:id="_hKdv9G6cEemSyfDlsGAqLA" type="6003"> |
9020 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv9W6cEemSyfDlsGAqLA" x="136" y="5"/> | 9029 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKdv9W6cEemSyfDlsGAqLA" x="165" y="5"/> |
9021 | </children> | 9030 | </children> |
9022 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hKdI4W6cEemSyfDlsGAqLA" routing="Rectilinear"/> | 9031 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hKdI4W6cEemSyfDlsGAqLA" routing="Rectilinear"/> |
9023 | <styles xmi:type="notation:FontStyle" xmi:id="_hKdI4m6cEemSyfDlsGAqLA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | 9032 | <styles xmi:type="notation:FontStyle" xmi:id="_hKdI4m6cEemSyfDlsGAqLA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> |
9024 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hKdI426cEemSyfDlsGAqLA" points="[15, 30, 720, -126]$[15, 228, 720, 72]$[-765, 228, -60, 72]$[-765, 204, -60, 48]"/> | 9033 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hKdI426cEemSyfDlsGAqLA" points="[15, 30, 915, -124]$[15, 226, 915, 72]$[-960, 226, -60, 72]$[-960, 202, -60, 48]"/> |
9025 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hKdv9m6cEemSyfDlsGAqLA" id="(0.0,0.23076923076923078)"/> | 9034 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hKdv9m6cEemSyfDlsGAqLA" id="(0.0,0.23076923076923078)"/> |
9026 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hKdv926cEemSyfDlsGAqLA" id="(0.6990291262135923,0.0)"/> | 9035 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hKdv926cEemSyfDlsGAqLA" id="(0.6990291262135923,0.0)"/> |
9027 | </edges> | 9036 | </edges> |
@@ -9105,6 +9114,54 @@ | |||
9105 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PSa65G6dEemSyfDlsGAqLA" id="(1.0172413793103448,0.0)"/> | 9114 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PSa65G6dEemSyfDlsGAqLA" id="(1.0172413793103448,0.0)"/> |
9106 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PSa65W6dEemSyfDlsGAqLA" id="(0.5,0.38235294117647056)"/> | 9115 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PSa65W6dEemSyfDlsGAqLA" id="(0.5,0.38235294117647056)"/> |
9107 | </edges> | 9116 | </edges> |
9117 | <edges xmi:type="notation:Edge" xmi:id="_uJz-AKJfEemXzuA5M0BZIw" type="4001" element="_uI5YDKJfEemXzuA5M0BZIw" source="_rsImoG6WEemSyfDlsGAqLA" target="_qmVssKJeEemXzuA5M0BZIw"> | ||
9118 | <children xmi:type="notation:Node" xmi:id="_uJ1zMKJfEemXzuA5M0BZIw" type="6001"> | ||
9119 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJ1zMaJfEemXzuA5M0BZIw" x="4" y="32"/> | ||
9120 | </children> | ||
9121 | <children xmi:type="notation:Node" xmi:id="_uJ3BUKJfEemXzuA5M0BZIw" type="6002"> | ||
9122 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJ3BUaJfEemXzuA5M0BZIw" x="7"/> | ||
9123 | </children> | ||
9124 | <children xmi:type="notation:Node" xmi:id="_uJ3oYKJfEemXzuA5M0BZIw" type="6003"> | ||
9125 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJ3oYaJfEemXzuA5M0BZIw" x="-2"/> | ||
9126 | </children> | ||
9127 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_uJz-AaJfEemXzuA5M0BZIw" routing="Rectilinear"/> | ||
9128 | <styles xmi:type="notation:FontStyle" xmi:id="_uJz-AqJfEemXzuA5M0BZIw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
9129 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uJz-A6JfEemXzuA5M0BZIw" points="[-133, 2, 252, -3]$[-168, 2, 217, -3]"/> | ||
9130 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uJ6rsKJfEemXzuA5M0BZIw" id="(1.0,0.48717948717948717)"/> | ||
9131 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uJ6rsaJfEemXzuA5M0BZIw" id="(0.0,0.5641025641025641)"/> | ||
9132 | </edges> | ||
9133 | <edges xmi:type="notation:Edge" xmi:id="__oNHgKJfEemXzuA5M0BZIw" type="4001" element="__nLz2aJfEemXzuA5M0BZIw" source="_qmVssKJeEemXzuA5M0BZIw" target="_l6XSGLdnEeau1vMV3Bsx4w"> | ||
9134 | <children xmi:type="notation:Node" xmi:id="__oNukKJfEemXzuA5M0BZIw" type="6001"> | ||
9135 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oNukaJfEemXzuA5M0BZIw" y="-10"/> | ||
9136 | </children> | ||
9137 | <children xmi:type="notation:Node" xmi:id="__oNukqJfEemXzuA5M0BZIw" type="6002"> | ||
9138 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oNuk6JfEemXzuA5M0BZIw" y="10"/> | ||
9139 | </children> | ||
9140 | <children xmi:type="notation:Node" xmi:id="__oNulKJfEemXzuA5M0BZIw" type="6003"> | ||
9141 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oNulaJfEemXzuA5M0BZIw" y="10"/> | ||
9142 | </children> | ||
9143 | <styles xmi:type="notation:ConnectorStyle" xmi:id="__oNHgaJfEemXzuA5M0BZIw" routing="Rectilinear"/> | ||
9144 | <styles xmi:type="notation:FontStyle" xmi:id="__oNHgqJfEemXzuA5M0BZIw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
9145 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__oNHg6JfEemXzuA5M0BZIw" points="[0, 0, 86, -62]$[0, 62, 86, 0]$[-86, 62, 0, 0]"/> | ||
9146 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oOVoKJfEemXzuA5M0BZIw" id="(0.6082949308755761,1.0)"/> | ||
9147 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oOVoaJfEemXzuA5M0BZIw" id="(1.0,0.3076923076923077)"/> | ||
9148 | </edges> | ||
9149 | <edges xmi:type="notation:Edge" xmi:id="_QZPVkKJ9EemXzuA5M0BZIw" type="4001" element="_QYZBAKJ9EemXzuA5M0BZIw" source="_rsImoG6WEemSyfDlsGAqLA" target="_l6XSGLdnEeau1vMV3Bsx4w"> | ||
9150 | <children xmi:type="notation:Node" xmi:id="_QZP8oKJ9EemXzuA5M0BZIw" type="6001"> | ||
9151 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QZP8oaJ9EemXzuA5M0BZIw" x="-12" y="-10"/> | ||
9152 | </children> | ||
9153 | <children xmi:type="notation:Node" xmi:id="_QZP8oqJ9EemXzuA5M0BZIw" type="6002"> | ||
9154 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QZP8o6J9EemXzuA5M0BZIw" x="4" y="10"/> | ||
9155 | </children> | ||
9156 | <children xmi:type="notation:Node" xmi:id="_QZQjsKJ9EemXzuA5M0BZIw" type="6003"> | ||
9157 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QZQjsaJ9EemXzuA5M0BZIw" x="-4" y="10"/> | ||
9158 | </children> | ||
9159 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_QZPVkaJ9EemXzuA5M0BZIw" routing="Rectilinear"/> | ||
9160 | <styles xmi:type="notation:FontStyle" xmi:id="_QZPVkqJ9EemXzuA5M0BZIw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
9161 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QZPVk6J9EemXzuA5M0BZIw" points="[-36, 0, 206, -76]$[-36, 89, 206, 13]$[-242, 89, 0, 13]"/> | ||
9162 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QZQjsqJ9EemXzuA5M0BZIw" id="(0.2706766917293233,1.0)"/> | ||
9163 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QZQjs6J9EemXzuA5M0BZIw" id="(1.0,0.6153846153846154)"/> | ||
9164 | </edges> | ||
9108 | </data> | 9165 | </data> |
9109 | </ownedAnnotationEntries> | 9166 | </ownedAnnotationEntries> |
9110 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_l6ZIGbdnEeau1vMV3Bsx4w" name="Term" tooltipText="" outgoingEdges="_l6ZufbdnEeau1vMV3Bsx4w" incomingEdges="_l6Zt6bdnEeau1vMV3Bsx4w _l6Zt9bdnEeau1vMV3Bsx4w _l6Zt-bdnEeau1vMV3Bsx4w _l6Zt_bdnEeau1vMV3Bsx4w _l6ZuAbdnEeau1vMV3Bsx4w _l6ZuBbdnEeau1vMV3Bsx4w _l6ZuCbdnEeau1vMV3Bsx4w _l6ZuDbdnEeau1vMV3Bsx4w _l6ZuEbdnEeau1vMV3Bsx4w _l6ZuFbdnEeau1vMV3Bsx4w _l6ZuGbdnEeau1vMV3Bsx4w _l6ZuHbdnEeau1vMV3Bsx4w _l6ZuIbdnEeau1vMV3Bsx4w _l6ZuJbdnEeau1vMV3Bsx4w _l6ZuKbdnEeau1vMV3Bsx4w _l6ZuLbdnEeau1vMV3Bsx4w _l6ZuMbdnEeau1vMV3Bsx4w _l6ZuNbdnEeau1vMV3Bsx4w _l6ZuObdnEeau1vMV3Bsx4w _l6ZuPbdnEeau1vMV3Bsx4w _l6ZuQbdnEeau1vMV3Bsx4w _l6ZuRbdnEeau1vMV3Bsx4w _l6ZuhbdnEeau1vMV3Bsx4w _l6ZuibdnEeau1vMV3Bsx4w _l6ZunbdnEeau1vMV3Bsx4w _l6ZuqbdnEeau1vMV3Bsx4w _l6ZuwbdnEeau1vMV3Bsx4w _l6Zu3bdnEeau1vMV3Bsx4w _l6ZvHbdnEeau1vMV3Bsx4w _l6ZvIbdnEeau1vMV3Bsx4w _l6ZvJbdnEeau1vMV3Bsx4w _l6ZvKbdnEeau1vMV3Bsx4w _l6ZvZ7dnEeau1vMV3Bsx4w _kQZhsLd1Eeau1vMV3Bsx4w _BoaVwLqxEeau1vMV3Bsx4w _Vi5psIKgEeeAppuRs-roLg _YRIxkIKgEeeAppuRs-roLg _sGSk0IKlEeeAppuRs-roLg _za0wsm6WEemSyfDlsGAqLA" width="12" height="10"> | 9167 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_l6ZIGbdnEeau1vMV3Bsx4w" name="Term" tooltipText="" outgoingEdges="_l6ZufbdnEeau1vMV3Bsx4w" incomingEdges="_l6Zt6bdnEeau1vMV3Bsx4w _l6Zt9bdnEeau1vMV3Bsx4w _l6Zt-bdnEeau1vMV3Bsx4w _l6Zt_bdnEeau1vMV3Bsx4w _l6ZuAbdnEeau1vMV3Bsx4w _l6ZuBbdnEeau1vMV3Bsx4w _l6ZuCbdnEeau1vMV3Bsx4w _l6ZuDbdnEeau1vMV3Bsx4w _l6ZuEbdnEeau1vMV3Bsx4w _l6ZuFbdnEeau1vMV3Bsx4w _l6ZuGbdnEeau1vMV3Bsx4w _l6ZuHbdnEeau1vMV3Bsx4w _l6ZuIbdnEeau1vMV3Bsx4w _l6ZuJbdnEeau1vMV3Bsx4w _l6ZuKbdnEeau1vMV3Bsx4w _l6ZuLbdnEeau1vMV3Bsx4w _l6ZuMbdnEeau1vMV3Bsx4w _l6ZuNbdnEeau1vMV3Bsx4w _l6ZuObdnEeau1vMV3Bsx4w _l6ZuPbdnEeau1vMV3Bsx4w _l6ZuQbdnEeau1vMV3Bsx4w _l6ZuRbdnEeau1vMV3Bsx4w _l6ZuhbdnEeau1vMV3Bsx4w _l6ZuibdnEeau1vMV3Bsx4w _l6ZunbdnEeau1vMV3Bsx4w _l6ZuqbdnEeau1vMV3Bsx4w _l6ZuwbdnEeau1vMV3Bsx4w _l6Zu3bdnEeau1vMV3Bsx4w _l6ZvHbdnEeau1vMV3Bsx4w _l6ZvIbdnEeau1vMV3Bsx4w _l6ZvJbdnEeau1vMV3Bsx4w _l6ZvKbdnEeau1vMV3Bsx4w _l6ZvZ7dnEeau1vMV3Bsx4w _kQZhsLd1Eeau1vMV3Bsx4w _BoaVwLqxEeau1vMV3Bsx4w _Vi5psIKgEeeAppuRs-roLg _YRIxkIKgEeeAppuRs-roLg _sGSk0IKlEeeAppuRs-roLg _za0wsm6WEemSyfDlsGAqLA" width="12" height="10"> |
@@ -9199,7 +9256,7 @@ | |||
9199 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | 9256 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
9200 | </ownedElements> | 9257 | </ownedElements> |
9201 | </ownedDiagramElements> | 9258 | </ownedDiagramElements> |
9202 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_l6ZIL7dnEeau1vMV3Bsx4w" name="Variable" tooltipText="" outgoingEdges="_JfkfULd8Eeau1vMV3Bsx4w _e1jg0IKgEeeAppuRs-roLg" incomingEdges="_l6Zt8bdnEeau1vMV3Bsx4w" width="12" height="10"> | 9259 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_l6ZIL7dnEeau1vMV3Bsx4w" name="Variable" tooltipText="" outgoingEdges="_JfkfULd8Eeau1vMV3Bsx4w _e1jg0IKgEeeAppuRs-roLg" incomingEdges="_l6Zt8bdnEeau1vMV3Bsx4w __nLz2aJfEemXzuA5M0BZIw _QYZBAKJ9EemXzuA5M0BZIw" width="12" height="10"> |
9203 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> | 9260 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> |
9204 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> | 9261 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> |
9205 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 9262 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -10473,7 +10530,7 @@ | |||
10473 | </ownedStyle> | 10530 | </ownedStyle> |
10474 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 10531 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
10475 | </ownedDiagramElements> | 10532 | </ownedDiagramElements> |
10476 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_rrY_wG6WEemSyfDlsGAqLA" name="AggregateExpression" tooltipText="" outgoingEdges="_za0wsm6WEemSyfDlsGAqLA _hJ8ymW6cEemSyfDlsGAqLA" incomingEdges="_wovb6G6cEemSyfDlsGAqLA _OKfpkm6dEemSyfDlsGAqLA" width="12" height="10"> | 10533 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_rrY_wG6WEemSyfDlsGAqLA" name="AggregateExpression" tooltipText="" outgoingEdges="_za0wsm6WEemSyfDlsGAqLA _hJ8ymW6cEemSyfDlsGAqLA _uI5YDKJfEemXzuA5M0BZIw _QYZBAKJ9EemXzuA5M0BZIw" incomingEdges="_wovb6G6cEemSyfDlsGAqLA _OKfpkm6dEemSyfDlsGAqLA" width="12" height="10"> |
10477 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> | 10534 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> |
10478 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> | 10535 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> |
10479 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 10536 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -10635,6 +10692,58 @@ | |||
10635 | </ownedStyle> | 10692 | </ownedStyle> |
10636 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 10693 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
10637 | </ownedDiagramElements> | 10694 | </ownedDiagramElements> |
10695 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_qkRQIKJeEemXzuA5M0BZIw" name="AggregatedParameterSubstitution" tooltipText="" outgoingEdges="__nLz2aJfEemXzuA5M0BZIw" incomingEdges="_uI5YDKJfEemXzuA5M0BZIw" width="12" height="10"> | ||
10696 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregatedParameterSubstitution"/> | ||
10697 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregatedParameterSubstitution"/> | ||
10698 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
10699 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
10700 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
10701 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qkTFUKJeEemXzuA5M0BZIw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
10702 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
10703 | </ownedStyle> | ||
10704 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
10705 | </ownedDiagramElements> | ||
10706 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_uI5YDKJfEemXzuA5M0BZIw" name="[0..*] parameterSubstitution" sourceNode="_rrY_wG6WEemSyfDlsGAqLA" targetNode="_qkRQIKJeEemXzuA5M0BZIw"> | ||
10707 | <target xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregateExpression/parameterSubstitution"/> | ||
10708 | <semanticElements xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregateExpression/parameterSubstitution"/> | ||
10709 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_uI6mIKJfEemXzuA5M0BZIw" description="_l6XRhLdnEeau1vMV3Bsx4w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
10710 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_uI6mIqJfEemXzuA5M0BZIw" showIcon="false"> | ||
10711 | <customFeatures>labelSize</customFeatures> | ||
10712 | </centerLabelStyle> | ||
10713 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_uI6mIaJfEemXzuA5M0BZIw" showIcon="false" labelColor="39,76,114"> | ||
10714 | <customFeatures>labelSize</customFeatures> | ||
10715 | </endLabelStyle> | ||
10716 | </ownedStyle> | ||
10717 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
10718 | </ownedDiagramElements> | ||
10719 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="__nLz2aJfEemXzuA5M0BZIw" name="[0..1] variable" sourceNode="_qkRQIKJeEemXzuA5M0BZIw" targetNode="_l6ZIL7dnEeau1vMV3Bsx4w"> | ||
10720 | <target xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregatedParameterSubstitution/variable"/> | ||
10721 | <semanticElements xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregatedParameterSubstitution/variable"/> | ||
10722 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="__nNB8KJfEemXzuA5M0BZIw" routingStyle="manhattan" strokeColor="0,0,0"> | ||
10723 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> | ||
10724 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="__nNB8qJfEemXzuA5M0BZIw" showIcon="false"> | ||
10725 | <customFeatures>labelSize</customFeatures> | ||
10726 | </centerLabelStyle> | ||
10727 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="__nNB8aJfEemXzuA5M0BZIw" showIcon="false" labelColor="39,76,114"> | ||
10728 | <customFeatures>labelSize</customFeatures> | ||
10729 | </endLabelStyle> | ||
10730 | </ownedStyle> | ||
10731 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
10732 | </ownedDiagramElements> | ||
10733 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_QYZBAKJ9EemXzuA5M0BZIw" name="[0..1] resultVariable" sourceNode="_rrY_wG6WEemSyfDlsGAqLA" targetNode="_l6ZIL7dnEeau1vMV3Bsx4w"> | ||
10734 | <target xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregateExpression/resultVariable"/> | ||
10735 | <semanticElements xmi:type="ecore:EReference" href="logiclanguage.ecore#//AggregateExpression/resultVariable"/> | ||
10736 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_QYZBAaJ9EemXzuA5M0BZIw" routingStyle="manhattan" strokeColor="0,0,0"> | ||
10737 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> | ||
10738 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_QYZBA6J9EemXzuA5M0BZIw" showIcon="false"> | ||
10739 | <customFeatures>labelSize</customFeatures> | ||
10740 | </centerLabelStyle> | ||
10741 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_QYZBAqJ9EemXzuA5M0BZIw" showIcon="false" labelColor="39,76,114"> | ||
10742 | <customFeatures>labelSize</customFeatures> | ||
10743 | </endLabelStyle> | ||
10744 | </ownedStyle> | ||
10745 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
10746 | </ownedDiagramElements> | ||
10638 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 10747 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
10639 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_l6Zva7dnEeau1vMV3Bsx4w"/> | 10748 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_l6Zva7dnEeau1vMV3Bsx4w"/> |
10640 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | 10749 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore index fdbc1c27..a91d4407 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore | |||
@@ -215,6 +215,9 @@ | |||
215 | <eClassifiers xsi:type="ecore:EClass" name="AggregateExpression" abstract="true" | 215 | <eClassifiers xsi:type="ecore:EClass" name="AggregateExpression" abstract="true" |
216 | eSuperTypes="#//Term"> | 216 | eSuperTypes="#//Term"> |
217 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | 217 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> |
218 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution" | ||
219 | upperBound="-1" eType="#//AggregatedParameterSubstitution" containment="true"/> | ||
220 | <eStructuralFeatures xsi:type="ecore:EReference" name="resultVariable" eType="#//Variable"/> | ||
218 | </eClassifiers> | 221 | </eClassifiers> |
219 | <eClassifiers xsi:type="ecore:EClass" name="Sum" eSuperTypes="#//ProjectedAggregateExpression"/> | 222 | <eClassifiers xsi:type="ecore:EClass" name="Sum" eSuperTypes="#//ProjectedAggregateExpression"/> |
220 | <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//AggregateExpression"/> | 223 | <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//AggregateExpression"/> |
@@ -225,4 +228,7 @@ | |||
225 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="projectionIndex" lowerBound="1" | 228 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="projectionIndex" lowerBound="1" |
226 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="-1"/> | 229 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="-1"/> |
227 | </eClassifiers> | 230 | </eClassifiers> |
231 | <eClassifiers xsi:type="ecore:EClass" name="AggregatedParameterSubstitution"> | ||
232 | <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//Variable"/> | ||
233 | </eClassifiers> | ||
228 | </ecore:EPackage> | 234 | </ecore:EPackage> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel index 303080e7..0f35db7c 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel | |||
@@ -168,6 +168,8 @@ | |||
168 | <genClasses ecoreClass="logiclanguage.ecore#//Pow"/> | 168 | <genClasses ecoreClass="logiclanguage.ecore#//Pow"/> |
169 | <genClasses image="false" ecoreClass="logiclanguage.ecore#//AggregateExpression"> | 169 | <genClasses image="false" ecoreClass="logiclanguage.ecore#//AggregateExpression"> |
170 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference logiclanguage.ecore#//AggregateExpression/relation"/> | 170 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference logiclanguage.ecore#//AggregateExpression/relation"/> |
171 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference logiclanguage.ecore#//AggregateExpression/parameterSubstitution"/> | ||
172 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference logiclanguage.ecore#//AggregateExpression/resultVariable"/> | ||
171 | </genClasses> | 173 | </genClasses> |
172 | <genClasses ecoreClass="logiclanguage.ecore#//Sum"/> | 174 | <genClasses ecoreClass="logiclanguage.ecore#//Sum"/> |
173 | <genClasses ecoreClass="logiclanguage.ecore#//Count"/> | 175 | <genClasses ecoreClass="logiclanguage.ecore#//Count"/> |
@@ -176,6 +178,9 @@ | |||
176 | <genClasses image="false" ecoreClass="logiclanguage.ecore#//ProjectedAggregateExpression"> | 178 | <genClasses image="false" ecoreClass="logiclanguage.ecore#//ProjectedAggregateExpression"> |
177 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute logiclanguage.ecore#//ProjectedAggregateExpression/projectionIndex"/> | 179 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute logiclanguage.ecore#//ProjectedAggregateExpression/projectionIndex"/> |
178 | </genClasses> | 180 | </genClasses> |
181 | <genClasses ecoreClass="logiclanguage.ecore#//AggregatedParameterSubstitution"> | ||
182 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference logiclanguage.ecore#//AggregatedParameterSubstitution/variable"/> | ||
183 | </genClasses> | ||
179 | </genPackages> | 184 | </genPackages> |
180 | <genPackages prefix="Logicproblem" basePackage="hu.bme.mit.inf.dslreasoner.logic.model" | 185 | <genPackages prefix="Logicproblem" basePackage="hu.bme.mit.inf.dslreasoner.logic.model" |
181 | disposableProviderFactory="true" ecorePackage="logicproblem.ecore#/"> | 186 | disposableProviderFactory="true" ecorePackage="logicproblem.ecore#/"> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/plugin.xml b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/plugin.xml index 413002e2..bad09614 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/plugin.xml +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/plugin.xml | |||
@@ -1,27 +1,27 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- | 1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- |
2 | --><plugin> | 2 | --><plugin> |
3 | <extension point="org.eclipse.emf.ecore.generated_package"> | 3 | <extension point="org.eclipse.emf.ecore.generated_package"> |
4 | <!-- @generated logiclanguage --> | 4 | <!-- @generated logiclanguage --> |
5 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"/> | 5 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"/> |
6 | </extension> | 6 | </extension> |
7 | <extension point="org.eclipse.emf.ecore.generated_package"> | 7 | <extension point="org.eclipse.emf.ecore.generated_package"> |
8 | <!-- @generated logiclanguage --> | 8 | <!-- @generated logiclanguage --> |
9 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"/> | 9 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"/> |
10 | </extension> | 10 | </extension> |
11 | <extension point="org.eclipse.emf.ecore.generated_package"> | 11 | <extension point="org.eclipse.emf.ecore.generated_package"> |
12 | <!-- @generated logiclanguage --> | 12 | <!-- @generated logiclanguage --> |
13 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultPackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/result"/> | 13 | <package class="hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultPackage" genModel="model/logiclanguage.genmodel" uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/result"/> |
14 | </extension> | 14 | </extension> |
15 | <extension id="hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil" point="org.eclipse.viatra.query.runtime.queryspecification"> | 15 | <extension id="hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil" point="org.eclipse.viatra.query.runtime.queryspecification"> |
16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil" id="hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil"> | 16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil" id="hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeUtil"> |
17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.supertypeStar"/> | 17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.supertypeStar"/> |
18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.typeDirectElements"/> | 18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.typeDirectElements"/> |
19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.possibleDynamicType"/> | 19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.possibleDynamicType"/> |
20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.mustTypeElement"/> | 20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.mustTypeElement"/> |
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.typeSystemIsInconsistent"/> | 21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.typeSystemIsInconsistent"/> |
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.elementNotDefinedInSupertype"/> | 22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.elementNotDefinedInSupertype"/> |
23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.elementWithNoPossibleDynamicType"/> | 23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.elementWithNoPossibleDynamicType"/> |
24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.cyclicTypeHierarchy"/> | 24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.logic.model.patterns.cyclicTypeHierarchy"/> |
25 | </group> | 25 | </group> |
26 | </extension> | 26 | </extension> |
27 | </plugin> | 27 | </plugin> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend index 905859eb..cdcbb48a 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend | |||
@@ -3,22 +3,27 @@ package hu.bme.mit.inf.dslreasoner.logic.model.builder | |||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration | 3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration |
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition |
12 | import java.math.BigDecimal | ||
10 | import java.util.List | 13 | import java.util.List |
14 | import java.util.Map | ||
15 | import java.util.SortedSet | ||
16 | import java.util.TreeSet | ||
11 | 17 | ||
12 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 18 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
13 | import java.util.SortedSet | ||
14 | import java.math.BigDecimal | ||
15 | 19 | ||
16 | interface LogicModelInterpretation{ | 20 | interface LogicModelInterpretation { |
17 | 21 | ||
18 | /** | 22 | /** |
19 | * Returns the elements of a type. | 23 | * Returns the elements of a type. |
20 | */ | 24 | */ |
21 | def List<DefinedElement> getElements(Type type) | 25 | def List<DefinedElement> getElements(Type type) |
26 | |||
22 | /** | 27 | /** |
23 | * Returns the interpretation of a function. The parameters and the return values are encoded to primitive java objects defined by the following table: | 28 | * Returns the interpretation of a function. The parameters and the return values are encoded to primitive java objects defined by the following table: |
24 | * <p><table> | 29 | * <p><table> |
@@ -34,6 +39,7 @@ interface LogicModelInterpretation{ | |||
34 | * @return The result of the function call encoded as defined in the table. | 39 | * @return The result of the function call encoded as defined in the table. |
35 | */ | 40 | */ |
36 | def Object getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) | 41 | def Object getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) |
42 | |||
37 | /** | 43 | /** |
38 | * Returns the interpretation of a relation. The parameters are encoded to primitive java objects defined by the following table: | 44 | * Returns the interpretation of a relation. The parameters are encoded to primitive java objects defined by the following table: |
39 | * <p><table> | 45 | * <p><table> |
@@ -49,6 +55,7 @@ interface LogicModelInterpretation{ | |||
49 | * @return If the parameter tuple is in the relation. | 55 | * @return If the parameter tuple is in the relation. |
50 | */ | 56 | */ |
51 | def boolean getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) | 57 | def boolean getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) |
58 | |||
52 | /** | 59 | /** |
53 | * Returns the interpretation of a constant. The value is encoded to primitive java objects defined by the following table: | 60 | * Returns the interpretation of a constant. The value is encoded to primitive java objects defined by the following table: |
54 | * <p><table> | 61 | * <p><table> |
@@ -63,60 +70,89 @@ interface LogicModelInterpretation{ | |||
63 | * @return The value of the constant encoded as specified in the table. | 70 | * @return The value of the constant encoded as specified in the table. |
64 | */ | 71 | */ |
65 | def Object getInterpretation(ConstantDeclaration constant) | 72 | def Object getInterpretation(ConstantDeclaration constant) |
66 | 73 | ||
67 | /** | 74 | /** |
68 | * Returns all integers relevant to the logic structure. Not all integer is necessarily used. | 75 | * Returns all integers relevant to the logic structure. Not all integer is necessarily used. |
69 | */ | 76 | */ |
70 | def SortedSet<Integer> getAllIntegersInStructure() | 77 | def SortedSet<Integer> getAllIntegersInStructure() |
78 | |||
79 | def Map<TermDescription, Integer> getAllIntegersWithInterpretation() { | ||
80 | allIntegersInStructure.toMap [ integer | | ||
81 | (LogiclanguageFactory.eINSTANCE.createIntLiteral => [value = integer]) as TermDescription | ||
82 | ] | ||
83 | } | ||
84 | |||
71 | /** | 85 | /** |
72 | * Returns all real numbers relevant to the logic structure. Not all integer is necessarily used. | 86 | * Returns all real numbers relevant to the logic structure. Not all integer is necessarily used. |
73 | */ | 87 | */ |
74 | def SortedSet<BigDecimal> getAllRealsInStructure() | 88 | def SortedSet<BigDecimal> getAllRealsInStructure() |
75 | /** | 89 | |
90 | def Map<TermDescription, BigDecimal> getAllRealsWithInterpretation() { | ||
91 | allRealsInStructure.toMap [ real | | ||
92 | (LogiclanguageFactory.eINSTANCE.createRealLiteral => [value = real]) as TermDescription | ||
93 | ] | ||
94 | } | ||
95 | |||
96 | /** | ||
76 | * Returns all string values relevant to the logic structure. Not all integer is necessarily used. | 97 | * Returns all string values relevant to the logic structure. Not all integer is necessarily used. |
77 | */ | 98 | */ |
78 | def SortedSet<String> getAllStringsInStructure() | 99 | def SortedSet<String> getAllStringsInStructure() |
100 | |||
101 | def Map<TermDescription, String> getAllStringsWithInterpretation() { | ||
102 | allStringsInStructure.toMap [ string | | ||
103 | (LogiclanguageFactory.eINSTANCE.createStringLiteral => [value = string]) as TermDescription | ||
104 | ] | ||
105 | } | ||
106 | |||
107 | def SortedSet<Boolean> getAllBooleansInStructure() { | ||
108 | new TreeSet(#{true, false}) | ||
109 | } | ||
110 | |||
111 | def Map<TermDescription, Boolean> getAllBooleansWithInterpretation() { | ||
112 | allBooleansInStructure.toMap [ bool | | ||
113 | (LogiclanguageFactory.eINSTANCE.createBoolLiteral => [value = bool]) as TermDescription | ||
114 | ] | ||
115 | } | ||
79 | } | 116 | } |
80 | 117 | ||
81 | class Uninterpreted implements LogicModelInterpretation { | 118 | class Uninterpreted implements LogicModelInterpretation { |
82 | /*private val static unknownBecauseUninterpreted = LogiclanguageFactory.eINSTANCE.createUnknownBecauseUninterpreted | 119 | /*private val static unknownBecauseUninterpreted = LogiclanguageFactory.eINSTANCE.createUnknownBecauseUninterpreted |
83 | public def static getUnknownBecauseUninterpreted() {return Uninterpreted.unknownBecauseUninterpreted}*/ | 120 | public def static getUnknownBecauseUninterpreted() {return Uninterpreted.unknownBecauseUninterpreted}*/ |
84 | |||
85 | override getElements(Type type) { | 121 | override getElements(Type type) { |
86 | throw new UnsupportedOperationException("The interpteration is unknown.") | 122 | throw new UnsupportedOperationException("The interpteration is unknown.") |
87 | } | 123 | } |
88 | 124 | ||
89 | def getKnownElements(Type type) { | 125 | def getKnownElements(Type type) { |
90 | val allSubtypes = type.transitiveClosureStar[it.subtypes] | 126 | val allSubtypes = type.transitiveClosureStar[it.subtypes] |
91 | return allSubtypes.filter(TypeDefinition).map[elements].flatten.toList | 127 | return allSubtypes.filter(TypeDefinition).map[elements].flatten.toList |
92 | } | 128 | } |
93 | 129 | ||
94 | def allElementsAreInterpreted(Type type) { | 130 | def allElementsAreInterpreted(Type type) { |
95 | val allSubtypes = type.transitiveClosureStar[it.subtypes] | 131 | val allSubtypes = type.transitiveClosureStar[it.subtypes] |
96 | return allSubtypes.exists[it instanceof TypeDeclaration] | 132 | return allSubtypes.exists[it instanceof TypeDeclaration] |
97 | } | 133 | } |
98 | 134 | ||
99 | override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { | 135 | override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { |
100 | throw new UnsupportedOperationException("The interpteration is unknown.") | 136 | throw new UnsupportedOperationException("The interpteration is unknown.") |
101 | } | 137 | } |
102 | 138 | ||
103 | override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { | 139 | override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { |
104 | throw new UnsupportedOperationException("The interpteration is unknown.") | 140 | throw new UnsupportedOperationException("The interpteration is unknown.") |
105 | } | 141 | } |
106 | 142 | ||
107 | override getInterpretation(ConstantDeclaration constant) { | 143 | override getInterpretation(ConstantDeclaration constant) { |
108 | throw new UnsupportedOperationException("The interpteration is unknown.") | 144 | throw new UnsupportedOperationException("The interpteration is unknown.") |
109 | } | 145 | } |
110 | 146 | ||
111 | override getAllIntegersInStructure() { | 147 | override getAllIntegersInStructure() { |
112 | throw new UnsupportedOperationException("The interpteration is unknown.") | 148 | throw new UnsupportedOperationException("The interpteration is unknown.") |
113 | } | 149 | } |
114 | 150 | ||
115 | override getAllRealsInStructure() { | 151 | override getAllRealsInStructure() { |
116 | throw new UnsupportedOperationException("The interpteration is unknown.") | 152 | throw new UnsupportedOperationException("The interpteration is unknown.") |
117 | } | 153 | } |
118 | 154 | ||
119 | override getAllStringsInStructure() { | 155 | override getAllStringsInStructure() { |
120 | throw new UnsupportedOperationException("The interpteration is unknown.") | 156 | throw new UnsupportedOperationException("The interpteration is unknown.") |
121 | } | 157 | } |
122 | } \ No newline at end of file | 158 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend index f6bd9541..fa97cbef 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend | |||
@@ -1,5 +1,6 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.logic.model.builder | 1 | package hu.bme.mit.inf.dslreasoner.logic.model.builder |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregateExpression | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference | 6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference |
@@ -8,6 +9,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | |||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Function | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Function |
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ProjectedAggregateExpression | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.QuantifiedExpression | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.QuantifiedExpression |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference | 14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference |
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation |
@@ -46,16 +48,16 @@ class LogicProblemBuilderException extends Exception { | |||
46 | } | 48 | } |
47 | } | 49 | } |
48 | 50 | ||
49 | public class LogicProblemBuilder{ | 51 | class LogicProblemBuilder{ |
50 | val protected extension LogiclanguageFactory logicFactiory = LogiclanguageFactory.eINSTANCE | 52 | val protected extension LogiclanguageFactory logicFactiory = LogiclanguageFactory.eINSTANCE |
51 | val protected extension LogicproblemFactory problemFactory = LogicproblemFactory.eINSTANCE | 53 | val protected extension LogicproblemFactory problemFactory = LogicproblemFactory.eINSTANCE |
52 | val protected advancedConstructs = new LogicProblemBuilder_AdvancedConstructs(this) | 54 | val protected advancedConstructs = new LogicProblemBuilder_AdvancedConstructs(this) |
53 | 55 | ||
54 | def public createProblem(){ createLogicProblem } | 56 | def createProblem(){ createLogicProblem } |
55 | 57 | ||
56 | // Names | 58 | // Names |
57 | def protected String canonize(CharSequence name) { | 59 | def protected String canonize(CharSequence name) { |
58 | if(name == null) return "" | 60 | if(name === null) return "" |
59 | val result = name.toString.split("\\s+"); | 61 | val result = name.toString.split("\\s+"); |
60 | if(result.size == 1) { | 62 | if(result.size == 1) { |
61 | val element = result.get(0); | 63 | val element = result.get(0); |
@@ -82,23 +84,23 @@ public class LogicProblemBuilder{ | |||
82 | } | 84 | } |
83 | 85 | ||
84 | // Type builders | 86 | // Type builders |
85 | def public Element(CharSequence elementName) { return createDefinedElement => [x|x.name = elementName.canonize] } | 87 | def Element(CharSequence elementName) { return createDefinedElement => [x|x.name = elementName.canonize] } |
86 | def public Element() { return createDefinedElement } | 88 | def Element() { return createDefinedElement } |
87 | def public TypeDeclaration(CharSequence name, boolean isAbstract) { TypeDeclaration => [x | x.name = name.canonize x.isAbstract = isAbstract] } | 89 | def TypeDeclaration(CharSequence name, boolean isAbstract) { TypeDeclaration => [x | x.name = name.canonize x.isAbstract = isAbstract] } |
88 | def public TypeDeclaration() { createTypeDeclaration } | 90 | def TypeDeclaration() { createTypeDeclaration } |
89 | def public TypeDefinition(CharSequence name, boolean isAbstract, DefinedElement... elements) { TypeDefinition(name, isAbstract, elements as Iterable<DefinedElement>) } | 91 | def TypeDefinition(CharSequence name, boolean isAbstract, DefinedElement... elements) { TypeDefinition(name, isAbstract, elements as Iterable<DefinedElement>) } |
90 | def public TypeDefinition(CharSequence name, boolean isAbstract, Iterable<DefinedElement> elements) { createTypeDefinition => [x | x.name = name.canonize x.isAbstract = isAbstract x.elements += elements ] } | 92 | def TypeDefinition(CharSequence name, boolean isAbstract, Iterable<DefinedElement> elements) { createTypeDefinition => [x | x.name = name.canonize x.isAbstract = isAbstract x.elements += elements ] } |
91 | 93 | ||
92 | def public Supertype(Type subtype, Type supertype) { | 94 | def Supertype(Type subtype, Type supertype) { |
93 | subtype.supertypes+=supertype | 95 | subtype.supertypes+=supertype |
94 | } | 96 | } |
95 | def public SetSupertype(Type subtype, Type supertype, boolean value) { | 97 | def SetSupertype(Type subtype, Type supertype, boolean value) { |
96 | if(value) subtype.supertypes+=supertype | 98 | if(value) subtype.supertypes+=supertype |
97 | else subtype.subtypes-=supertype | 99 | else subtype.subtypes-=supertype |
98 | } | 100 | } |
99 | 101 | ||
100 | // Type add | 102 | // Type add |
101 | def public add(LogicProblem problem, Type type) { | 103 | def add(LogicProblem problem, Type type) { |
102 | problem.nameIfAnonymType(type) | 104 | problem.nameIfAnonymType(type) |
103 | problem.types+=type | 105 | problem.types+=type |
104 | if(type instanceof TypeDefinition) { | 106 | if(type instanceof TypeDefinition) { |
@@ -118,10 +120,10 @@ public class LogicProblemBuilder{ | |||
118 | element.name = typeDefinition.elements.map[it.name].generateUniqueName[i | '''type «i.toString»'''] | 120 | element.name = typeDefinition.elements.map[it.name].generateUniqueName[i | '''type «i.toString»'''] |
119 | } | 121 | } |
120 | 122 | ||
121 | def public LogicBool() { createBoolTypeReference } | 123 | def LogicBool() { createBoolTypeReference } |
122 | def public LogicInt() { createIntTypeReference } | 124 | def LogicInt() { createIntTypeReference } |
123 | def public LogicReal() { createRealTypeReference } | 125 | def LogicReal() { createRealTypeReference } |
124 | def public LogicString() { createStringTypeReference } | 126 | def LogicString() { createStringTypeReference } |
125 | def toTypeReference(TypeDescriptor descriptor) { | 127 | def toTypeReference(TypeDescriptor descriptor) { |
126 | if(descriptor instanceof TypeReference) { return EcoreUtil.copy(descriptor); } | 128 | if(descriptor instanceof TypeReference) { return EcoreUtil.copy(descriptor); } |
127 | else if(descriptor instanceof Type) { return createComplexTypeReference => [referred = descriptor]} | 129 | else if(descriptor instanceof Type) { return createComplexTypeReference => [referred = descriptor]} |
@@ -129,31 +131,31 @@ public class LogicProblemBuilder{ | |||
129 | } | 131 | } |
130 | 132 | ||
131 | // Variables | 133 | // Variables |
132 | def public createVar(CharSequence name, TypeDescriptor range) { | 134 | def createVar(CharSequence name, TypeDescriptor range) { |
133 | return createVariable => [it.name = name.canonize it.range = range.toTypeReference] | 135 | return createVariable => [it.name = name.canonize it.range = range.toTypeReference] |
134 | } | 136 | } |
135 | 137 | ||
136 | // Functions | 138 | // Functions |
137 | def public FunctionDescription ->(TypeDescriptor parameter, TypeDescriptor range) { return #[parameter] -> range } | 139 | def FunctionDescription ->(TypeDescriptor parameter, TypeDescriptor range) { return #[parameter] -> range } |
138 | def public FunctionDescription ->(Iterable<? extends TypeDescriptor> parameters, TypeDescriptor range) { return new FunctionDescription(parameters.map[toTypeReference], range.toTypeReference); } | 140 | def FunctionDescription ->(Iterable<? extends TypeDescriptor> parameters, TypeDescriptor range) { return new FunctionDescription(parameters.map[toTypeReference], range.toTypeReference); } |
139 | def public FunctionDeclaration(CharSequence name, FunctionDescription functionDescription) { FunctionDeclaration(name,functionDescription.range, functionDescription.parameters) } | 141 | def FunctionDeclaration(CharSequence name, FunctionDescription functionDescription) { FunctionDeclaration(name,functionDescription.range, functionDescription.parameters) } |
140 | def public FunctionDeclaration(FunctionDescription functionDescription) { FunctionDeclaration(functionDescription.range, functionDescription.parameters) } | 142 | def FunctionDeclaration(FunctionDescription functionDescription) { FunctionDeclaration(functionDescription.range, functionDescription.parameters) } |
141 | def public FunctionDeclaration(CharSequence name, TypeDescriptor range, TypeDescriptor... parameters) { FunctionDeclaration(name, range, parameters as Iterable<? extends TypeReference>) } | 143 | def FunctionDeclaration(CharSequence name, TypeDescriptor range, TypeDescriptor... parameters) { FunctionDeclaration(name, range, parameters as Iterable<? extends TypeReference>) } |
142 | def public FunctionDeclaration(TypeDescriptor range, TypeDescriptor... parameters) { FunctionDeclaration(range, parameters as Iterable<? extends TypeReference>) } | 144 | def FunctionDeclaration(TypeDescriptor range, TypeDescriptor... parameters) { FunctionDeclaration(range, parameters as Iterable<? extends TypeReference>) } |
143 | def public FunctionDeclaration(CharSequence name, TypeDescriptor range, Iterable<? extends TypeDescriptor> parameters) { return FunctionDeclaration(range,parameters) => [x|x.name = name.canonize] } | 145 | def FunctionDeclaration(CharSequence name, TypeDescriptor range, Iterable<? extends TypeDescriptor> parameters) { return FunctionDeclaration(range,parameters) => [x|x.name = name.canonize] } |
144 | def public FunctionDeclaration(TypeDescriptor range, Iterable<? extends TypeDescriptor> parameters) { | 146 | def FunctionDeclaration(TypeDescriptor range, Iterable<? extends TypeDescriptor> parameters) { |
145 | val function = createFunctionDeclaration | 147 | val function = createFunctionDeclaration |
146 | for(parameter : parameters) function.parameters+=parameter.toTypeReference | 148 | for(parameter : parameters) function.parameters+=parameter.toTypeReference |
147 | function.range = range.toTypeReference | 149 | function.range = range.toTypeReference |
148 | return function | 150 | return function |
149 | } | 151 | } |
150 | 152 | ||
151 | def public FunctionDefinition(CharSequence name, TypeDescriptor range, Function1<VariableContext, ? extends TermDescription> expression) { | 153 | def FunctionDefinition(CharSequence name, TypeDescriptor range, Function1<VariableContext, ? extends TermDescription> expression) { |
152 | val context = new VariableContext(this,logicFactiory) | 154 | val context = new VariableContext(this,logicFactiory) |
153 | val definition = expression.apply(context) | 155 | val definition = expression.apply(context) |
154 | return FunctionDefinition(name,range,context.variables,definition); | 156 | return FunctionDefinition(name,range,context.variables,definition); |
155 | } | 157 | } |
156 | def public FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<Variable> variables, TermDescription definition) { | 158 | def FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<Variable> variables, TermDescription definition) { |
157 | return createFunctionDefinition => [ | 159 | return createFunctionDefinition => [ |
158 | it.name = name.canonize | 160 | it.name = name.canonize |
159 | it.parameters += variables.map[it.range.toTypeReference] | 161 | it.parameters += variables.map[it.range.toTypeReference] |
@@ -162,23 +164,23 @@ public class LogicProblemBuilder{ | |||
162 | it.value = definition.toTerm | 164 | it.value = definition.toTerm |
163 | ] | 165 | ] |
164 | } | 166 | } |
165 | def public FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<TypeDescriptor> parameters, Map<List<Term>,Term> parametersToValue) { | 167 | def FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<TypeDescriptor> parameters, Map<List<Term>,Term> parametersToValue) { |
166 | return FunctionDefinition(name,range,parameters,parametersToValue,null) | 168 | return FunctionDefinition(name,range,parameters,parametersToValue,null) |
167 | } | 169 | } |
168 | def public FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<TypeDescriptor> parameters, Map<List<Term>,Term> parametersToValue, Term defaultValue) { | 170 | def FunctionDefinition(CharSequence name, TypeDescriptor range, Iterable<TypeDescriptor> parameters, Map<List<Term>,Term> parametersToValue, Term defaultValue) { |
169 | val parameterList = parameters.toList; | 171 | val parameterList = parameters.toList; |
170 | val variableList = (1..parameterList.size).map[index | '''param «index»'''.createVar(parameterList.get(index-1))].toList | 172 | val variableList = (1..parameterList.size).map[index | '''param «index»'''.createVar(parameterList.get(index-1))].toList |
171 | return FunctionDefinition(name,range,variableList,advancedConstructs.FunctionDefinitionBody(variableList,parametersToValue,defaultValue)) | 173 | return FunctionDefinition(name,range,variableList,advancedConstructs.FunctionDefinitionBody(variableList,parametersToValue,defaultValue)) |
172 | } | 174 | } |
173 | 175 | ||
174 | // Add function to a problem | 176 | // Add function to a problem |
175 | def public add(LogicProblem input, Function function) { | 177 | def add(LogicProblem input, Function function) { |
176 | input.nameIfAnonymFunction(function) | 178 | input.nameIfAnonymFunction(function) |
177 | input.checkFunction(function) | 179 | input.checkFunction(function) |
178 | input.functions += function | 180 | input.functions += function |
179 | return function | 181 | return function |
180 | } | 182 | } |
181 | def public add(LogicProblem input, FunctionDescription functionDescription) { input.add(FunctionDeclaration(functionDescription)) } | 183 | def add(LogicProblem input, FunctionDescription functionDescription) { input.add(FunctionDeclaration(functionDescription)) } |
182 | def protected nameIfAnonymFunction(LogicProblem problem, Function functionDeclaration) { | 184 | def protected nameIfAnonymFunction(LogicProblem problem, Function functionDeclaration) { |
183 | if(functionDeclaration.name.nullOrEmpty) { | 185 | if(functionDeclaration.name.nullOrEmpty) { |
184 | functionDeclaration.name = problem.functions.map[it.name].generateUniqueName[i | "function"+i] | 186 | functionDeclaration.name = problem.functions.map[it.name].generateUniqueName[i | "function"+i] |
@@ -199,15 +201,15 @@ public class LogicProblemBuilder{ | |||
199 | } | 201 | } |
200 | 202 | ||
201 | // Constants | 203 | // Constants |
202 | def public ConstantDeclaration(CharSequence name, TypeDescriptor type) { ConstantDeclaration(type) => [it.name = name.canonize] } | 204 | def ConstantDeclaration(CharSequence name, TypeDescriptor type) { ConstantDeclaration(type) => [it.name = name.canonize] } |
203 | def public ConstantDeclaration(TypeDescriptor type) { createConstantDeclaration => [it.type = type.toTypeReference] } | 205 | def ConstantDeclaration(TypeDescriptor type) { createConstantDeclaration => [it.type = type.toTypeReference] } |
204 | 206 | ||
205 | def public ConstantDefinition(CharSequence name, TypeDescriptor type, TermDescription value) { | 207 | def ConstantDefinition(CharSequence name, TypeDescriptor type, TermDescription value) { |
206 | createConstantDefinition => [it.name = name.canonize it.type = type.toTypeReference it.value = value.toTerm] | 208 | createConstantDefinition => [it.name = name.canonize it.type = type.toTypeReference it.value = value.toTerm] |
207 | } | 209 | } |
208 | 210 | ||
209 | // Add constant to a problem | 211 | // Add constant to a problem |
210 | def public add(LogicProblem problem, Constant constant) { | 212 | def add(LogicProblem problem, Constant constant) { |
211 | problem.nameIfAnonymConstant(constant); | 213 | problem.nameIfAnonymConstant(constant); |
212 | problem.checkConstant(constant) | 214 | problem.checkConstant(constant) |
213 | problem.constants += constant | 215 | problem.constants += constant |
@@ -226,10 +228,10 @@ public class LogicProblemBuilder{ | |||
226 | } | 228 | } |
227 | 229 | ||
228 | // Relations | 230 | // Relations |
229 | def public RelationDeclaration(CharSequence name, TypeDescriptor... parameters) { return RelationDeclaration(name, parameters as Iterable<? extends TypeReference>) } | 231 | def RelationDeclaration(CharSequence name, TypeDescriptor... parameters) { return RelationDeclaration(name, parameters as Iterable<? extends TypeReference>) } |
230 | def public RelationDeclaration(CharSequence name, Iterable<? extends TypeDescriptor> parameters) { return RelationDeclaration(parameters) => [x|x.name = name.canonize] } | 232 | def RelationDeclaration(CharSequence name, Iterable<? extends TypeDescriptor> parameters) { return RelationDeclaration(parameters) => [x|x.name = name.canonize] } |
231 | def public RelationDeclaration(TypeDescriptor... parameters) { RelationDeclaration( parameters as Iterable<? extends TypeReference>) } | 233 | def RelationDeclaration(TypeDescriptor... parameters) { RelationDeclaration( parameters as Iterable<? extends TypeReference>) } |
232 | def public RelationDeclaration(Iterable<? extends TypeDescriptor> parameters) { | 234 | def RelationDeclaration(Iterable<? extends TypeDescriptor> parameters) { |
233 | val relation = createRelationDeclaration | 235 | val relation = createRelationDeclaration |
234 | for(parameter : parameters) { | 236 | for(parameter : parameters) { |
235 | relation.parameters+=parameter.toTypeReference | 237 | relation.parameters+=parameter.toTypeReference |
@@ -237,12 +239,12 @@ public class LogicProblemBuilder{ | |||
237 | return relation | 239 | return relation |
238 | } | 240 | } |
239 | 241 | ||
240 | def public RelationDefinition(CharSequence name, Function1<VariableContext, ? extends TermDescription> expression) { | 242 | def RelationDefinition(CharSequence name, Function1<VariableContext, ? extends TermDescription> expression) { |
241 | val context = new VariableContext(this,logicFactiory); | 243 | val context = new VariableContext(this,logicFactiory); |
242 | val definition = expression.apply(context); | 244 | val definition = expression.apply(context); |
243 | return RelationDefinition(name,context.variables,definition) | 245 | return RelationDefinition(name,context.variables,definition) |
244 | } | 246 | } |
245 | def public RelationDefinition(CharSequence name, Iterable<Variable> variables, TermDescription definition) { | 247 | def RelationDefinition(CharSequence name, Iterable<Variable> variables, TermDescription definition) { |
246 | return createRelationDefinition => [ | 248 | return createRelationDefinition => [ |
247 | it.name = name.canonize | 249 | it.name = name.canonize |
248 | it.parameters += variables.map[it.range.toTypeReference] | 250 | it.parameters += variables.map[it.range.toTypeReference] |
@@ -250,7 +252,7 @@ public class LogicProblemBuilder{ | |||
250 | it.value = definition?.toTerm | 252 | it.value = definition?.toTerm |
251 | ] | 253 | ] |
252 | } | 254 | } |
253 | def public RelationDefinition(CharSequence name, Iterable<? extends TypeDescriptor> parameters, Iterable<? extends List<? extends TermDescription>> possibleValues) { | 255 | def RelationDefinition(CharSequence name, Iterable<? extends TypeDescriptor> parameters, Iterable<? extends List<? extends TermDescription>> possibleValues) { |
254 | val res = createRelationDefinition => [it.name = name.canonize] | 256 | val res = createRelationDefinition => [it.name = name.canonize] |
255 | val variableMap = new ArrayList(parameters.size) | 257 | val variableMap = new ArrayList(parameters.size) |
256 | var index = 0 | 258 | var index = 0 |
@@ -267,7 +269,7 @@ public class LogicProblemBuilder{ | |||
267 | } | 269 | } |
268 | 270 | ||
269 | // Add Relation to a problem | 271 | // Add Relation to a problem |
270 | def public add(LogicProblem input, Relation relation) { | 272 | def add(LogicProblem input, Relation relation) { |
271 | input.nameIfAnonymRelation(relation) | 273 | input.nameIfAnonymRelation(relation) |
272 | input.checkRelation(relation) | 274 | input.checkRelation(relation) |
273 | input.relations+=relation | 275 | input.relations+=relation |
@@ -293,17 +295,17 @@ public class LogicProblemBuilder{ | |||
293 | } | 295 | } |
294 | 296 | ||
295 | // Assertion | 297 | // Assertion |
296 | def public Assertion(TermDescription term) { | 298 | def Assertion(TermDescription term) { |
297 | val result = term.toTerm | 299 | val result = term.toTerm |
298 | result.nameAnonymVariables(Collections.EMPTY_LIST) | 300 | result.nameAnonymVariables(Collections.EMPTY_LIST) |
299 | createAssertion => [it.value = result] | 301 | createAssertion => [it.value = result] |
300 | } | 302 | } |
301 | def public Assertion(CharSequence name, TermDescription term) { | 303 | def Assertion(CharSequence name, TermDescription term) { |
302 | val result = term.toTerm | 304 | val result = term.toTerm |
303 | result.nameAnonymVariables(Collections.EMPTY_LIST) | 305 | result.nameAnonymVariables(Collections.EMPTY_LIST) |
304 | createAssertion => [it.value = result it.name=name.canonize] | 306 | createAssertion => [it.value = result it.name=name.canonize] |
305 | } | 307 | } |
306 | def public add(LogicProblem problem, Assertion assertion) { | 308 | def add(LogicProblem problem, Assertion assertion) { |
307 | if(assertion.name.nullOrEmpty) { | 309 | if(assertion.name.nullOrEmpty) { |
308 | val name = problem.assertions.map[name].generateUniqueName["assertion"+it] | 310 | val name = problem.assertions.map[name].generateUniqueName["assertion"+it] |
309 | assertion.name=name | 311 | assertion.name=name |
@@ -313,7 +315,7 @@ public class LogicProblemBuilder{ | |||
313 | return assertion | 315 | return assertion |
314 | } | 316 | } |
315 | 317 | ||
316 | def public add(LogicProblem problem, TermDescription term) { | 318 | def add(LogicProblem problem, TermDescription term) { |
317 | problem.add(Assertion(term)) | 319 | problem.add(Assertion(term)) |
318 | } | 320 | } |
319 | 321 | ||
@@ -329,7 +331,7 @@ public class LogicProblemBuilder{ | |||
329 | } | 331 | } |
330 | } | 332 | } |
331 | 333 | ||
332 | def public checkDefinition(EObject definition) { | 334 | def checkDefinition(EObject definition) { |
333 | /*for(value : definition.eAllContents.filter(SymbolicValue).toIterable) { | 335 | /*for(value : definition.eAllContents.filter(SymbolicValue).toIterable) { |
334 | var referred = value.symbolicReference | 336 | var referred = value.symbolicReference |
335 | if(referred instanceof Variable) { | 337 | if(referred instanceof Variable) { |
@@ -341,7 +343,7 @@ public class LogicProblemBuilder{ | |||
341 | } | 343 | } |
342 | 344 | ||
343 | // Containment | 345 | // Containment |
344 | def public ContainmentHierarchy( | 346 | def ContainmentHierarchy( |
345 | Iterable<? extends Type> typesInHierarchy, | 347 | Iterable<? extends Type> typesInHierarchy, |
346 | Iterable<? extends Function> containmentFunctions, | 348 | Iterable<? extends Function> containmentFunctions, |
347 | Iterable<? extends Relation> containmentRelations, | 349 | Iterable<? extends Relation> containmentRelations, |
@@ -355,7 +357,7 @@ public class LogicProblemBuilder{ | |||
355 | ] | 357 | ] |
356 | return result | 358 | return result |
357 | } | 359 | } |
358 | def public add(LogicProblem problem, ContainmentHierarchy hierarchy) { | 360 | def add(LogicProblem problem, ContainmentHierarchy hierarchy) { |
359 | problem.containmentHierarchies+=hierarchy | 361 | problem.containmentHierarchies+=hierarchy |
360 | return hierarchy | 362 | return hierarchy |
361 | } | 363 | } |
@@ -413,7 +415,7 @@ public class LogicProblemBuilder{ | |||
413 | return result; | 415 | return result; |
414 | } | 416 | } |
415 | 417 | ||
416 | def public Term toTerm(TermDescription term) { | 418 | def Term toTerm(TermDescription term) { |
417 | if(term instanceof Term) return term | 419 | if(term instanceof Term) return term |
418 | else if (term instanceof Variable) return createSymbolicValue => [symbolicReference = term] | 420 | else if (term instanceof Variable) return createSymbolicValue => [symbolicReference = term] |
419 | else if (term instanceof Constant) return term.call() | 421 | else if (term instanceof Constant) return term.call() |
@@ -421,115 +423,166 @@ public class LogicProblemBuilder{ | |||
421 | else throw new UnsupportedOperationException("Can not create reference for symbolic declaration " + term.class.name) | 423 | else throw new UnsupportedOperationException("Can not create reference for symbolic declaration " + term.class.name) |
422 | } | 424 | } |
423 | 425 | ||
424 | def public !(TermDescription term) { Not(term) } | 426 | def !(TermDescription term) { Not(term) } |
425 | def public Not(TermDescription term) { createNot => [operand = term.toTerm] } | 427 | def Not(TermDescription term) { createNot => [operand = term.toTerm] } |
426 | 428 | ||
427 | def public &&(TermDescription a, TermDescription b) { And(a,b) } | 429 | def &&(TermDescription a, TermDescription b) { And(a,b) } |
428 | def public And(TermDescription... terms) { return And(terms as Iterable<? extends TermDescription>) } | 430 | def And(TermDescription... terms) { return And(terms as Iterable<? extends TermDescription>) } |
429 | def public And(Iterable<? extends TermDescription> terms) { createAnd => [operands += terms.map[toTerm]] } | 431 | def And(Iterable<? extends TermDescription> terms) { createAnd => [operands += terms.map[toTerm]] } |
430 | 432 | ||
431 | def public ||(TermDescription a, TermDescription b) { Or(a,b) } | 433 | def ||(TermDescription a, TermDescription b) { Or(a,b) } |
432 | def public Or(TermDescription... terms) { Or(terms as Iterable<? extends TermDescription>) } | 434 | def Or(TermDescription... terms) { Or(terms as Iterable<? extends TermDescription>) } |
433 | def public Or(Iterable<? extends TermDescription> terms) { createOr => [operands += terms.map[toTerm]] } | 435 | def Or(Iterable<? extends TermDescription> terms) { createOr => [operands += terms.map[toTerm]] } |
434 | 436 | ||
435 | def public =>(TermDescription a, TermDescription b) { Impl(a,b) } | 437 | def =>(TermDescription a, TermDescription b) { Impl(a,b) } |
436 | def public Impl(TermDescription a, TermDescription b) { createImpl => [leftOperand = a.toTerm rightOperand = b.toTerm] } | 438 | def Impl(TermDescription a, TermDescription b) { createImpl => [leftOperand = a.toTerm rightOperand = b.toTerm] } |
437 | 439 | ||
438 | def public <=>(TermDescription a, TermDescription b) { Iff(a,b)} | 440 | def <=>(TermDescription a, TermDescription b) { Iff(a,b)} |
439 | def public Iff(TermDescription a, TermDescription b) { createIff =>[leftOperand=a.toTerm rightOperand=b.toTerm] } | 441 | def Iff(TermDescription a, TermDescription b) { createIff =>[leftOperand=a.toTerm rightOperand=b.toTerm] } |
440 | 442 | ||
441 | def public ITE(TermDescription condition, TermDescription ifTrue, TermDescription ifFalse) { | 443 | def ITE(TermDescription condition, TermDescription ifTrue, TermDescription ifFalse) { |
442 | createIfThenElse => [it.condition = condition.toTerm it.ifTrue = ifTrue.toTerm it.ifFalse = ifFalse.toTerm] | 444 | createIfThenElse => [it.condition = condition.toTerm it.ifTrue = ifTrue.toTerm it.ifFalse = ifFalse.toTerm] |
443 | } | 445 | } |
444 | 446 | ||
445 | def public >(TermDescription left, TermDescription right) { MoreThan(left,right)} | 447 | def >(TermDescription left, TermDescription right) { MoreThan(left,right)} |
446 | def public MoreThan(TermDescription left, TermDescription right) { createMoreThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 448 | def MoreThan(TermDescription left, TermDescription right) { createMoreThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
447 | 449 | ||
448 | def public <(TermDescription left, TermDescription right) { LessThan(left,right)} | 450 | def <(TermDescription left, TermDescription right) { LessThan(left,right)} |
449 | def public LessThan(TermDescription left, TermDescription right) { createLessThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 451 | def LessThan(TermDescription left, TermDescription right) { createLessThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
450 | 452 | ||
451 | def public <=(TermDescription left, TermDescription right) { LessOrEqual(left,right) } | 453 | def <=(TermDescription left, TermDescription right) { LessOrEqual(left,right) } |
452 | def public LessOrEqual(TermDescription left, TermDescription right) { createLessOrEqualThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 454 | def LessOrEqual(TermDescription left, TermDescription right) { createLessOrEqualThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
453 | 455 | ||
454 | def public >=(TermDescription left, TermDescription right) { MoreOrEqual(left,right) } | 456 | def >=(TermDescription left, TermDescription right) { MoreOrEqual(left,right) } |
455 | def public MoreOrEqual(TermDescription left, TermDescription right) { createMoreOrEqualThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 457 | def MoreOrEqual(TermDescription left, TermDescription right) { createMoreOrEqualThan => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
456 | 458 | ||
457 | def public ==(TermDescription left, TermDescription right) {Equals(left,right)} | 459 | def ==(TermDescription left, TermDescription right) {Equals(left,right)} |
458 | def public Equals(TermDescription left, TermDescription right) { createEquals => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 460 | def Equals(TermDescription left, TermDescription right) { createEquals => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
459 | 461 | ||
460 | def public !=(TermDescription left, TermDescription right) { Distinct(left,right) } | 462 | def !=(TermDescription left, TermDescription right) { Distinct(left,right) } |
461 | def public Distinct(TermDescription... terms) { return Distinct(terms as Iterable<? extends TermDescription>) } | 463 | def Distinct(TermDescription... terms) { return Distinct(terms as Iterable<? extends TermDescription>) } |
462 | def public Distinct(Iterable<? extends TermDescription> terms) { createDistinct => [operands += terms.map[toTerm]] } | 464 | def Distinct(Iterable<? extends TermDescription> terms) { createDistinct => [operands += terms.map[toTerm]] } |
463 | 465 | ||
464 | def public +(TermDescription left, TermDescription right) { Plus(left,right) } | 466 | def +(TermDescription left, TermDescription right) { Plus(left,right) } |
465 | def public Plus(TermDescription left, TermDescription right) { createPlus => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 467 | def Plus(TermDescription left, TermDescription right) { createPlus => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
466 | 468 | ||
467 | def public -(TermDescription left, TermDescription right) { Minus(left,right) } | 469 | def -(TermDescription left, TermDescription right) { Minus(left,right) } |
468 | def public Minus(TermDescription left, TermDescription right) { createMinus => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 470 | def Minus(TermDescription left, TermDescription right) { createMinus => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
469 | 471 | ||
470 | def public *(TermDescription left, TermDescription right) { Multiply(left,right) } | 472 | def *(TermDescription left, TermDescription right) { Multiply(left,right) } |
471 | def public Multiply(TermDescription left, TermDescription right) { createMultiply => [leftOperand=left.toTerm rightOperand=right.toTerm] } | 473 | def Multiply(TermDescription left, TermDescription right) { createMultiply => [leftOperand=left.toTerm rightOperand=right.toTerm] } |
472 | 474 | ||
473 | def public /(TermDescription left, TermDescription right) { Divide(left,right) } | 475 | def /(TermDescription left, TermDescription right) { Divide(left,right) } |
474 | def public Divide(TermDescription left, TermDescription right) { createDivison => [leftOperand = left.toTerm rightOperand = right.toTerm]} | 476 | def Divide(TermDescription left, TermDescription right) { createDivison => [leftOperand = left.toTerm rightOperand = right.toTerm]} |
475 | 477 | ||
476 | def public %(TermDescription left, TermDescription right) { Modulo(left,right) } | 478 | def %(TermDescription left, TermDescription right) { Modulo(left,right) } |
477 | def public Modulo(TermDescription left, TermDescription right) { createMod => [leftOperand = left.toTerm rightOperand = right.toTerm]} | 479 | def Modulo(TermDescription left, TermDescription right) { createMod => [leftOperand = left.toTerm rightOperand = right.toTerm]} |
478 | 480 | ||
479 | def public asTerm(boolean value) { createBoolLiteral => [x|x.value = value] } | 481 | def Pow(TermDescription left, TermDescription right) {createPow => [leftOperand = left.toTerm rightOperand = right.toTerm]} |
480 | def public asTerm(int value) { createIntLiteral => [x|x.value = value] } | 482 | def asTerm(boolean value) { createBoolLiteral => [x|x.value = value] } |
481 | def public asTerm(double value) { BigDecimal.valueOf(value).asTerm } | 483 | def asTerm(int value) { createIntLiteral => [x|x.value = value] } |
482 | def public asTerm(float value) { BigDecimal.valueOf(value).asTerm } | 484 | def asTerm(double value) { BigDecimal.valueOf(value).asTerm } |
483 | def public asTerm(BigDecimal value) { createRealLiteral => [x|x.value = value] } | 485 | def asTerm(float value) { BigDecimal.valueOf(value).asTerm } |
484 | def public asTerm(String value) { createStringLiteral => [x|x.value = value]} | 486 | def asTerm(BigDecimal value) { createRealLiteral => [x|x.value = value] } |
485 | def public InstanceOf(TermDescription term, TypeDescriptor type) { | 487 | def asTerm(String value) { createStringLiteral => [x|x.value = value]} |
488 | def InstanceOf(TermDescription term, TypeDescriptor type) { | ||
486 | createInstanceOf => [ | 489 | createInstanceOf => [ |
487 | it.value = term.toTerm | 490 | it.value = term.toTerm |
488 | it.range = type.toTypeReference | 491 | it.range = type.toTypeReference |
489 | ] | 492 | ] |
490 | } | 493 | } |
491 | def public transitiveClosure(Relation relation, TermDescription source, TermDescription target) { | 494 | def transitiveClosure(Relation relation, TermDescription source, TermDescription target) { |
492 | createTransitiveClosure => [ | 495 | createTransitiveClosure => [ |
493 | it.relation = relation | 496 | it.relation = relation |
494 | it.leftOperand = leftOperand | 497 | it.leftOperand = source.toTerm |
495 | it.rightOperand = rightOperand | 498 | it.rightOperand = target.toTerm |
496 | ] | 499 | ] |
497 | } | 500 | } |
498 | 501 | ||
499 | // QuantifiedExpressions | 502 | // QuantifiedExpressions |
500 | 503 | ||
501 | def public Forall(Function1<VariableContext, ? extends TermDescription> expression) { | 504 | def Forall(Function1<VariableContext, ? extends TermDescription> expression) { |
502 | val context = new VariableContext(this,logicFactiory) | 505 | val context = new VariableContext(this,logicFactiory) |
503 | val term = expression.apply(context) | 506 | val term = expression.apply(context) |
504 | return createForall => [x| x.quantifiedVariables+=context.variables x.expression = term.toTerm] | 507 | return createForall => [x| x.quantifiedVariables+=context.variables x.expression = term.toTerm] |
505 | } | 508 | } |
506 | def public Forall(TermDescription expression, Variable... variables) { | 509 | def Forall(TermDescription expression, Variable... variables) { |
507 | Forall(variables,expression) } | 510 | Forall(variables,expression) } |
508 | def public Forall(Iterable<? extends Variable> variables,TermDescription expression) { | 511 | def Forall(Iterable<? extends Variable> variables,TermDescription expression) { |
509 | val forallExpression = createForall | 512 | val forallExpression = createForall |
510 | for(variable : variables) forallExpression.quantifiedVariables += variable | 513 | for(variable : variables) forallExpression.quantifiedVariables += variable |
511 | forallExpression.expression = expression.toTerm | 514 | forallExpression.expression = expression.toTerm |
512 | return forallExpression | 515 | return forallExpression |
513 | } | 516 | } |
514 | 517 | ||
515 | def public Exists(Function1<VariableContext, ? extends TermDescription> expression) { | 518 | def Exists(Function1<VariableContext, ? extends TermDescription> expression) { |
516 | val context = new VariableContext(this,logicFactiory) | 519 | val context = new VariableContext(this,logicFactiory) |
517 | val term = expression.apply(context) | 520 | val term = expression.apply(context) |
518 | return createExists => [x| x.quantifiedVariables+=context.variables x.expression = term.toTerm] | 521 | return createExists => [x| x.quantifiedVariables+=context.variables x.expression = term.toTerm] |
519 | } | 522 | } |
520 | def public Exists(TermDescription expression, Variable... variables) { | 523 | def Exists(TermDescription expression, Variable... variables) { |
521 | Exists(variables,expression) } | 524 | Exists(variables,expression) } |
522 | def public Exists(Iterable<? extends Variable> variables, TermDescription expression) { | 525 | def Exists(Iterable<? extends Variable> variables, TermDescription expression) { |
523 | val existsExpression = createExists | 526 | val existsExpression = createExists |
524 | for(variable : variables) existsExpression.quantifiedVariables += variable | 527 | for(variable : variables) existsExpression.quantifiedVariables += variable |
525 | existsExpression.expression = expression.toTerm | 528 | existsExpression.expression = expression.toTerm |
526 | return existsExpression | 529 | return existsExpression |
527 | } | 530 | } |
528 | 531 | ||
532 | // AggregatedExpression | ||
533 | |||
534 | private def <T extends AggregateExpression> configureAggregateExpression(T expression, Relation referred, List<Variable> terms, Variable target) { | ||
535 | if(terms.size != referred.parameters.size) { | ||
536 | throw new LogicProblemBuilderException( | ||
537 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') | ||
538 | } else { | ||
539 | expression.relation = referred | ||
540 | expression.resultVariable = target | ||
541 | for(var i=0; i<referred.parameters.size;i++) { | ||
542 | val targetRelation = terms.get(i) | ||
543 | val substitution = createAggregatedParameterSubstitution => [it.variable = targetRelation] | ||
544 | expression.parameterSubstitution += substitution | ||
545 | } | ||
546 | return expression | ||
547 | } | ||
548 | } | ||
549 | private def <T extends ProjectedAggregateExpression> configureProjectedAggregateExpression(T expression, Relation referred, List<Variable> terms, Variable target, int projection) { | ||
550 | if(projection < 0 || projection >= referred.parameters.size) { | ||
551 | throw new LogicProblemBuilderException( | ||
552 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') | ||
553 | } else { | ||
554 | val res = expression.configureAggregateExpression(referred, terms,target) | ||
555 | if(res.parameterSubstitution.get(projection).variable !== null) { | ||
556 | throw new LogicProblemBuilderException( | ||
557 | '''Projection over set variable!''') | ||
558 | } | ||
559 | val projectionType = referred.parameters.get(projection) | ||
560 | if(!(projectionType instanceof IntTypeReference || projectionType instanceof RealTypeReference)) { | ||
561 | throw new LogicProblemBuilderException('''Projection over nunnumeric parameter!''' | ||
562 | ) | ||
563 | } | ||
564 | res.projectionIndex = projection | ||
565 | return res | ||
566 | } | ||
567 | |||
568 | } | ||
569 | def Count(Relation referred, List<Variable> terms, Variable result) { | ||
570 | createCount.configureAggregateExpression(referred,terms,result) | ||
571 | } | ||
572 | def Sum(Relation referred, List<Variable> terms, int projection, Variable result) { | ||
573 | createSum.configureProjectedAggregateExpression(referred,terms,result,projection) | ||
574 | } | ||
575 | def Min(Relation referred, List<Variable> terms, int projection, Variable result) { | ||
576 | createMin.configureProjectedAggregateExpression(referred,terms,result,projection) | ||
577 | } | ||
578 | def Max(Relation referred, List<Variable> terms, int projection, Variable result) { | ||
579 | createMax.configureProjectedAggregateExpression(referred,terms,result,projection) | ||
580 | } | ||
581 | |||
529 | // Function calls | 582 | // Function calls |
530 | def public call(Function function, TermDescription... substitutions) { | 583 | def call(Function function, TermDescription... substitutions) { |
531 | call(function, substitutions as Iterable<? extends TermDescription>) } | 584 | call(function, substitutions as Iterable<? extends TermDescription>) } |
532 | def public call(Function function, Iterable<? extends TermDescription> substitutions) { | 585 | def call(Function function, Iterable<? extends TermDescription> substitutions) { |
533 | val functionReference = createSymbolicValue | 586 | val functionReference = createSymbolicValue |
534 | functionReference.symbolicReference=function | 587 | functionReference.symbolicReference=function |
535 | val List<TermDescription> l= new LinkedList() | 588 | val List<TermDescription> l= new LinkedList() |
@@ -546,20 +599,22 @@ public class LogicProblemBuilder{ | |||
546 | } | 599 | } |
547 | 600 | ||
548 | // Relation calls | 601 | // Relation calls |
549 | def public call(Relation relation, TermDescription... substitution) { relation.call(substitution as Iterable<? extends TermDescription>)} | 602 | def call(Relation relation, TermDescription... substitution) { relation.call(substitution as Iterable<? extends TermDescription>)} |
550 | def public call(Relation relation, Iterable<? extends TermDescription> substitution) { | 603 | def call(Relation relation, Iterable<? extends TermDescription> substitution) { |
551 | val relationReference = createSymbolicValue | 604 | val relationReference = createSymbolicValue |
605 | if(relation === null) { | ||
606 | throw new LogicProblemBuilderException('''Call is referring to null!''') | ||
607 | } | ||
552 | relationReference.symbolicReference = relation | 608 | relationReference.symbolicReference = relation |
553 | //println('''«relation.name»(«substitution.size»->«relation.parameters»)''') | ||
554 | for(value : substitution) | 609 | for(value : substitution) |
555 | relationReference.parameterSubstitutions += value.toTerm | 610 | relationReference.parameterSubstitutions += value.toTerm |
556 | relationReference.checkRelationCall(relation) | 611 | relationReference.checkRelationCall(relation) |
557 | return relationReference | 612 | return relationReference |
558 | } | 613 | } |
559 | def private checkRelationCall(SymbolicValue value, Relation referredRelation) { | 614 | def private checkRelationCall(SymbolicValue value, Relation referredRelation) { |
560 | // if(value === null || referredRelation === null) { | 615 | if(value === null || referredRelation === null) { |
561 | // println("gebasz") | 616 | throw new LogicProblemBuilderException('''Call is referring to null!''') |
562 | // } | 617 | } |
563 | if(value.parameterSubstitutions.size != referredRelation.parameters.size) { | 618 | if(value.parameterSubstitutions.size != referredRelation.parameters.size) { |
564 | throw new LogicProblemBuilderException( | 619 | throw new LogicProblemBuilderException( |
565 | '''The relation "«referredRelation.name»" called has «referredRelation.parameters.size» parameters but it is called with «value.parameterSubstitutions.size»!''') | 620 | '''The relation "«referredRelation.name»" called has «referredRelation.parameters.size» parameters but it is called with «value.parameterSubstitutions.size»!''') |
@@ -567,11 +622,9 @@ public class LogicProblemBuilder{ | |||
567 | } | 622 | } |
568 | 623 | ||
569 | // constant evaluation | 624 | // constant evaluation |
570 | def public call(Constant constant) { | 625 | def call(Constant constant) { |
571 | val constantReference = createSymbolicValue | 626 | val constantReference = createSymbolicValue |
572 | constantReference.symbolicReference = constant | 627 | constantReference.symbolicReference = constant |
573 | return constantReference | 628 | return constantReference |
574 | } | 629 | } |
575 | |||
576 | |||
577 | } | 630 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend index b4d9a8fa..3e0c86c4 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend | |||
@@ -34,7 +34,7 @@ public class LogicReasonerException extends Exception { | |||
34 | } | 34 | } |
35 | } | 35 | } |
36 | 36 | ||
37 | abstract class LogicSolverConfiguration { | 37 | abstract class SolverConfiguration { |
38 | public static val Unlimited = -1; | 38 | public static val Unlimited = -1; |
39 | public static val String UndefinedPath = null | 39 | public static val String UndefinedPath = null |
40 | 40 | ||
@@ -42,7 +42,7 @@ abstract class LogicSolverConfiguration { | |||
42 | public String solverPath = UndefinedPath | 42 | public String solverPath = UndefinedPath |
43 | /** Max runtime limit in seconds. */ | 43 | /** Max runtime limit in seconds. */ |
44 | public int runtimeLimit = Unlimited | 44 | public int runtimeLimit = Unlimited |
45 | /** Max runtime limit in seconds. */ | 45 | /** Max memory limit in megabytes. */ |
46 | public int memoryLimit = Unlimited | 46 | public int memoryLimit = Unlimited |
47 | /** Documentation level of the solver. */ | 47 | /** Documentation level of the solver. */ |
48 | public DocumentationLevel documentationLevel = DocumentationLevel::NONE | 48 | public DocumentationLevel documentationLevel = DocumentationLevel::NONE |
@@ -52,7 +52,9 @@ abstract class LogicSolverConfiguration { | |||
52 | * or via a listener registered by {@link progressMonitor.addCancelListener}</li> | 52 | * or via a listener registered by {@link progressMonitor.addCancelListener}</li> |
53 | */ | 53 | */ |
54 | public SolverProgressMonitor progressMonitor = new NullSolverProgressMonitor | 54 | public SolverProgressMonitor progressMonitor = new NullSolverProgressMonitor |
55 | } | ||
55 | 56 | ||
57 | abstract class LogicSolverConfiguration extends SolverConfiguration { | ||
56 | public var TypeScopes typeScopes = new TypeScopes; | 58 | public var TypeScopes typeScopes = new TypeScopes; |
57 | public var SolutionScope solutionScope = new SolutionScope | 59 | public var SolutionScope solutionScope = new SolutionScope |
58 | } | 60 | } |
@@ -157,7 +159,7 @@ public class TypeScopes { | |||
157 | */ | 159 | */ |
158 | public class SolutionScope { | 160 | public class SolutionScope { |
159 | public static val All = Integer.MAX_VALUE; | 161 | public static val All = Integer.MAX_VALUE; |
160 | public var numberOfRequiredSolution = 1 | 162 | public var numberOfRequiredSolutions = 1 |
161 | } | 163 | } |
162 | /** Progress monitor class for a solver to | 164 | /** Progress monitor class for a solver to |
163 | * <li>(optionally) report progress via {@link worked}</li> | 165 | * <li>(optionally) report progress via {@link worked}</li> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend index d673cb17..a78ceb19 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend | |||
@@ -17,7 +17,7 @@ class StatisticsData { | |||
17 | } | 17 | } |
18 | 18 | ||
19 | class StatisticSections2CSV { | 19 | class StatisticSections2CSV { |
20 | static val separator = ';' | 20 | static val separator = ',' |
21 | static val empty = "" | 21 | static val empty = "" |
22 | 22 | ||
23 | private def getValue(Map<String, String> map,String key) { | 23 | private def getValue(Map<String, String> map,String key) { |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend index 39370d75..c5e81f94 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend | |||
@@ -12,7 +12,7 @@ class StatisticSections2Print { | |||
12 | { | 12 | { |
13 | var result = ""; | 13 | var result = ""; |
14 | for(statistic : statistics) { | 14 | for(statistic : statistics) { |
15 | result+= '''«statistic.readValue»;''' | 15 | result+= '''«statistic.readValue»,''' |
16 | } | 16 | } |
17 | return result | 17 | return result |
18 | } | 18 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend index 92deeae6..8d6b565a 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend | |||
@@ -3,23 +3,24 @@ package hu.bme.mit.inf.dslreasoner.logic2ecore | |||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | 4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
9 | import java.math.BigDecimal | ||
7 | import java.util.Collection | 10 | import java.util.Collection |
8 | import java.util.HashMap | 11 | import java.util.HashMap |
9 | import java.util.HashSet | 12 | import java.util.HashSet |
10 | import java.util.List | 13 | import java.util.List |
14 | import java.util.Map | ||
11 | import java.util.Set | 15 | import java.util.Set |
12 | import org.eclipse.emf.ecore.EClass | 16 | import org.eclipse.emf.ecore.EClass |
17 | import org.eclipse.emf.ecore.EDataType | ||
18 | import org.eclipse.emf.ecore.EEnum | ||
13 | import org.eclipse.emf.ecore.EObject | 19 | import org.eclipse.emf.ecore.EObject |
14 | import org.eclipse.emf.ecore.EStructuralFeature | 20 | import org.eclipse.emf.ecore.EStructuralFeature |
21 | import org.eclipse.emf.ecore.EcorePackage | ||
15 | 22 | ||
16 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 23 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
17 | import org.eclipse.emf.ecore.EEnum | ||
18 | import org.eclipse.emf.ecore.EDataType | ||
19 | import org.eclipse.emf.ecore.EcorePackage | ||
20 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
21 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
22 | import java.util.Map | ||
23 | 24 | ||
24 | class Logic2Ecore { | 25 | class Logic2Ecore { |
25 | val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder | 26 | val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder |
@@ -84,15 +85,15 @@ class Logic2Ecore { | |||
84 | if(attributeType.EContainingClass.isSuperTypeOf(sourceObject.eClass)) { | 85 | if(attributeType.EContainingClass.isSuperTypeOf(sourceObject.eClass)) { |
85 | val allElementsOfTargetDatatype = getAllElementsOfDatatype(attributeType.EAttributeType,forwardTrace,interpretation) | 86 | val allElementsOfTargetDatatype = getAllElementsOfDatatype(attributeType.EAttributeType,forwardTrace,interpretation) |
86 | for(l : allElementsOfTargetDatatype.entrySet) { | 87 | for(l : allElementsOfTargetDatatype.entrySet) { |
87 | val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,l.value,attributeType) | 88 | val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,l.key,attributeType) |
88 | val linkExist = interpretation.evalAsBool(expression) | 89 | val linkExist = interpretation.evalAsBool(expression) |
89 | if(linkExist) { | 90 | if(linkExist) { |
90 | if(attributeType.isMany) { | 91 | if(attributeType.isMany) { |
91 | val list = sourceObject.eGet(attributeType) as List<? super Object> | 92 | val list = sourceObject.eGet(attributeType) as List<? super Object> |
92 | list += l.key | 93 | list += l.value |
93 | } else { | 94 | } else { |
94 | try { | 95 | try { |
95 | sourceObject.eSet(attributeType,l.key) | 96 | sourceObject.eSet(attributeType,translateType(attributeType.EAttributeType,l.value)) |
96 | } catch(Exception e) { | 97 | } catch(Exception e) { |
97 | e.printStackTrace | 98 | e.printStackTrace |
98 | } | 99 | } |
@@ -107,34 +108,30 @@ class Logic2Ecore { | |||
107 | return element2Object.values.root | 108 | return element2Object.values.root |
108 | } | 109 | } |
109 | 110 | ||
111 | def translateType(EDataType type, Object value) { | ||
112 | if(type == EcorePackage.eINSTANCE.EFloat) { | ||
113 | val bd = value as BigDecimal | ||
114 | return bd.floatValue | ||
115 | } else if( type == EcorePackage.eINSTANCE.EDouble ) { | ||
116 | val bd = value as BigDecimal | ||
117 | return bd.doubleValue | ||
118 | } else return value | ||
119 | } | ||
110 | 120 | ||
111 | // if(attributeType.EAttributeType.isSuperTypeOf(targetObject.eClass)) { | 121 | protected dispatch def Map<? extends TermDescription, ? extends Object> getAllElementsOfDatatype(EEnum type, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { |
112 | // val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,targetElement,attributeType) | 122 | ecore2Logic.allLiteralsInScope(forwardTrace).toMap[ecore2Logic.Literal(forwardTrace,it)] |
113 | // val linkExist = interpretation.evalAsBool(expression) | ||
114 | // if(linkExist) { | ||
115 | // if(attributeType.isMany) { | ||
116 | // val list = sourceObject.eGet(attributeType) as List<? super EObject> | ||
117 | // list+= targetObject | ||
118 | // } else { | ||
119 | // sourceObject.eSet(referenceType,targetObject) | ||
120 | // } | ||
121 | // } | ||
122 | // } | ||
123 | |||
124 | protected dispatch def Map<? extends Object, ? extends TermDescription> getAllElementsOfDatatype(EEnum type, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { | ||
125 | ecore2Logic.allLiteralsInScope(forwardTrace).toInvertedMap[ecore2Logic.Literal(forwardTrace,it)] | ||
126 | } | 123 | } |
127 | 124 | ||
128 | protected dispatch def Map<? extends Object, ? extends TermDescription> getAllElementsOfDatatype(EDataType primitive, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { | 125 | protected dispatch def Map<? extends TermDescription, ? extends Object> getAllElementsOfDatatype(EDataType primitive, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { |
129 | val extension LogicProblemBuilder b = new LogicProblemBuilder | 126 | val extension LogicProblemBuilder b = new LogicProblemBuilder |
130 | if(primitive === EcorePackage.eINSTANCE.EInt || primitive === EcorePackage.eINSTANCE.EShort || primitive === EcorePackage.eINSTANCE.ELong) { | 127 | if(primitive === EcorePackage.eINSTANCE.EInt || primitive === EcorePackage.eINSTANCE.EShort || primitive === EcorePackage.eINSTANCE.ELong) { |
131 | interpretation.allIntegersInStructure.toInvertedMap[it.asTerm] | 128 | interpretation.allIntegersWithInterpretation |
132 | } else if(primitive === EcorePackage.eINSTANCE.EDouble || primitive === EcorePackage.eINSTANCE.EFloat) { | 129 | } else if(primitive === EcorePackage.eINSTANCE.EDouble || primitive === EcorePackage.eINSTANCE.EFloat) { |
133 | interpretation.allRealsInStructure.toInvertedMap[it.asTerm] | 130 | interpretation.allRealsWithInterpretation |
134 | } else if(primitive === EcorePackage.eINSTANCE.EString) { | 131 | } else if(primitive === EcorePackage.eINSTANCE.EString) { |
135 | interpretation.allStringsInStructure.toInvertedMap[it.asTerm] | 132 | interpretation.allStringsWithInterpretation |
136 | } else if(primitive === EcorePackage.eINSTANCE.EBoolean) { | 133 | } else if(primitive === EcorePackage.eINSTANCE.EBoolean) { |
137 | return #[false,true].toInvertedMap[it.asTerm] | 134 | interpretation.allBooleansWithInterpretation |
138 | } | 135 | } |
139 | } | 136 | } |
140 | 137 | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.classpath b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.classpath index 75ccaa90..849e2a7b 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.classpath +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.classpath | |||
@@ -1,9 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <classpath> | 2 | <classpath> |
3 | <classpathentry kind="src" path="ecore-gen"/> | 3 | <classpathentry kind="src" path="ecore-gen"/> |
4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> | 4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> |
5 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | 5 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> |
6 | <classpathentry kind="src" path="src"/> | 6 | <classpathentry kind="src" path="src"/> |
7 | <classpathentry kind="src" path="xtend-gen"/> | 7 | <classpathentry kind="src" path="xtend-gen"/> |
8 | <classpathentry kind="output" path="bin"/> | 8 | <classpathentry kind="lib" path="lib/com.microsoft.z3.jar"> |
9 | </classpath> | 9 | <attributes> |
10 | <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="hu.bme.mit.inf.dslreasoner.viatra2logic/lib"/> | ||
11 | </attributes> | ||
12 | </classpathentry> | ||
13 | <classpathentry kind="output" path="bin"/> | ||
14 | </classpath> | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.gitignore b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.gitignore index 8ae4e44d..40206e28 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.gitignore +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/.gitignore | |||
@@ -2,3 +2,4 @@ | |||
2 | /src-gen/ | 2 | /src-gen/ |
3 | /vql-gen/ | 3 | /vql-gen/ |
4 | /xtend-gen/ | 4 | /xtend-gen/ |
5 | /lib/* | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/META-INF/MANIFEST.MF b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/META-INF/MANIFEST.MF index 8fa4517d..c7242106 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/META-INF/MANIFEST.MF +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/META-INF/MANIFEST.MF | |||
@@ -18,7 +18,9 @@ Require-Bundle: com.google.guava, | |||
18 | hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0";visibility:=reexport, | 18 | hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0";visibility:=reexport, |
19 | org.eclipse.viatra.query.runtime.base.itc;bundle-version="1.5.0", | 19 | org.eclipse.viatra.query.runtime.base.itc;bundle-version="1.5.0", |
20 | org.eclipse.viatra.query.patternlanguage.emf;bundle-version="2.0.0", | 20 | org.eclipse.viatra.query.patternlanguage.emf;bundle-version="2.0.0", |
21 | org.eclipse.xtext | 21 | org.eclipse.xtext, |
22 | org.eclipse.xtext.xbase;bundle-version="2.18.0", | ||
23 | hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0" | ||
22 | Bundle-ActivationPolicy: lazy | 24 | Bundle-ActivationPolicy: lazy |
23 | Export-Package: hu.bme.mit.inf.dslreasoner.viatra2logic, | 25 | Export-Package: hu.bme.mit.inf.dslreasoner.viatra2logic, |
24 | hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations, | 26 | hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations, |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java index 717b0436..a4654103 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/TransfomedViatraQuery.java | |||
@@ -3,6 +3,7 @@ | |||
3 | package hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations; | 3 | package hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations; |
4 | 4 | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.RelationAnnotation; | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.RelationAnnotation; |
6 | import org.eclipse.emf.common.util.EList; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * <!-- begin-user-doc --> | 9 | * <!-- begin-user-doc --> |
@@ -15,6 +16,8 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.RelationAnnotation; | |||
15 | * <ul> | 16 | * <ul> |
16 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternFullyQualifiedName <em>Pattern Fully Qualified Name</em>}</li> | 17 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternFullyQualifiedName <em>Pattern Fully Qualified Name</em>}</li> |
17 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery <em>Pattern PQuery</em>}</li> | 18 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getPatternPQuery <em>Pattern PQuery</em>}</li> |
19 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getVariableTrace <em>Variable Trace</em>}</li> | ||
20 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getOptimizedDisjunction <em>Optimized Disjunction</em>}</li> | ||
18 | * </ul> | 21 | * </ul> |
19 | * | 22 | * |
20 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery() | 23 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery() |
@@ -74,4 +77,38 @@ public interface TransfomedViatraQuery extends RelationAnnotation { | |||
74 | * @generated | 77 | * @generated |
75 | */ | 78 | */ |
76 | void setPatternPQuery(Object value); | 79 | void setPatternPQuery(Object value); |
80 | |||
81 | /** | ||
82 | * Returns the value of the '<em><b>Variable Trace</b></em>' containment reference list. | ||
83 | * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping}. | ||
84 | * <!-- begin-user-doc --> | ||
85 | * <!-- end-user-doc --> | ||
86 | * @return the value of the '<em>Variable Trace</em>' containment reference list. | ||
87 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery_VariableTrace() | ||
88 | * @model containment="true" | ||
89 | * @generated | ||
90 | */ | ||
91 | EList<VariableMapping> getVariableTrace(); | ||
92 | |||
93 | /** | ||
94 | * Returns the value of the '<em><b>Optimized Disjunction</b></em>' attribute. | ||
95 | * <!-- begin-user-doc --> | ||
96 | * <!-- end-user-doc --> | ||
97 | * @return the value of the '<em>Optimized Disjunction</em>' attribute. | ||
98 | * @see #setOptimizedDisjunction(Object) | ||
99 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getTransfomedViatraQuery_OptimizedDisjunction() | ||
100 | * @model required="true" transient="true" | ||
101 | * @generated | ||
102 | */ | ||
103 | Object getOptimizedDisjunction(); | ||
104 | |||
105 | /** | ||
106 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getOptimizedDisjunction <em>Optimized Disjunction</em>}' attribute. | ||
107 | * <!-- begin-user-doc --> | ||
108 | * <!-- end-user-doc --> | ||
109 | * @param value the new value of the '<em>Optimized Disjunction</em>' attribute. | ||
110 | * @see #getOptimizedDisjunction() | ||
111 | * @generated | ||
112 | */ | ||
113 | void setOptimizedDisjunction(Object value); | ||
77 | } // TransfomedViatraQuery | 114 | } // TransfomedViatraQuery |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/VariableMapping.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/VariableMapping.java new file mode 100644 index 00000000..f2b88394 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/VariableMapping.java | |||
@@ -0,0 +1,71 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | |||
9 | /** | ||
10 | * <!-- begin-user-doc --> | ||
11 | * A representation of the model object '<em><b>Variable Mapping</b></em>'. | ||
12 | * <!-- end-user-doc --> | ||
13 | * | ||
14 | * <p> | ||
15 | * The following features are supported: | ||
16 | * </p> | ||
17 | * <ul> | ||
18 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getSourcePVariable <em>Source PVariable</em>}</li> | ||
19 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getTargetLogicVariable <em>Target Logic Variable</em>}</li> | ||
20 | * </ul> | ||
21 | * | ||
22 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getVariableMapping() | ||
23 | * @model | ||
24 | * @generated | ||
25 | */ | ||
26 | public interface VariableMapping extends EObject { | ||
27 | /** | ||
28 | * Returns the value of the '<em><b>Source PVariable</b></em>' attribute. | ||
29 | * <!-- begin-user-doc --> | ||
30 | * <!-- end-user-doc --> | ||
31 | * @return the value of the '<em>Source PVariable</em>' attribute. | ||
32 | * @see #setSourcePVariable(Object) | ||
33 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getVariableMapping_SourcePVariable() | ||
34 | * @model required="true" transient="true" | ||
35 | * @generated | ||
36 | */ | ||
37 | Object getSourcePVariable(); | ||
38 | |||
39 | /** | ||
40 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getSourcePVariable <em>Source PVariable</em>}' attribute. | ||
41 | * <!-- begin-user-doc --> | ||
42 | * <!-- end-user-doc --> | ||
43 | * @param value the new value of the '<em>Source PVariable</em>' attribute. | ||
44 | * @see #getSourcePVariable() | ||
45 | * @generated | ||
46 | */ | ||
47 | void setSourcePVariable(Object value); | ||
48 | |||
49 | /** | ||
50 | * Returns the value of the '<em><b>Target Logic Variable</b></em>' reference. | ||
51 | * <!-- begin-user-doc --> | ||
52 | * <!-- end-user-doc --> | ||
53 | * @return the value of the '<em>Target Logic Variable</em>' reference. | ||
54 | * @see #setTargetLogicVariable(Variable) | ||
55 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage#getVariableMapping_TargetLogicVariable() | ||
56 | * @model required="true" | ||
57 | * @generated | ||
58 | */ | ||
59 | Variable getTargetLogicVariable(); | ||
60 | |||
61 | /** | ||
62 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getTargetLogicVariable <em>Target Logic Variable</em>}' reference. | ||
63 | * <!-- begin-user-doc --> | ||
64 | * <!-- end-user-doc --> | ||
65 | * @param value the new value of the '<em>Target Logic Variable</em>' reference. | ||
66 | * @see #getTargetLogicVariable() | ||
67 | * @generated | ||
68 | */ | ||
69 | void setTargetLogicVariable(Variable value); | ||
70 | |||
71 | } // VariableMapping | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsFactory.java index 1343bee3..f9ad485a 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsFactory.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsFactory.java | |||
@@ -49,6 +49,15 @@ public interface Viatra2LogicAnnotationsFactory extends EFactory { | |||
49 | DefinedByDerivedFeature createDefinedByDerivedFeature(); | 49 | DefinedByDerivedFeature createDefinedByDerivedFeature(); |
50 | 50 | ||
51 | /** | 51 | /** |
52 | * Returns a new object of class '<em>Variable Mapping</em>'. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @return a new object of class '<em>Variable Mapping</em>'. | ||
56 | * @generated | ||
57 | */ | ||
58 | VariableMapping createVariableMapping(); | ||
59 | |||
60 | /** | ||
52 | * Returns the package supported by this factory. | 61 | * Returns the package supported by this factory. |
53 | * <!-- begin-user-doc --> | 62 | * <!-- begin-user-doc --> |
54 | * <!-- end-user-doc --> | 63 | * <!-- end-user-doc --> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java index 97df7608..a5dcda78 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/Viatra2LogicAnnotationsPackage.java | |||
@@ -96,13 +96,31 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
96 | int TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 1; | 96 | int TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 1; |
97 | 97 | ||
98 | /** | 98 | /** |
99 | * The feature id for the '<em><b>Variable Trace</b></em>' containment reference list. | ||
100 | * <!-- begin-user-doc --> | ||
101 | * <!-- end-user-doc --> | ||
102 | * @generated | ||
103 | * @ordered | ||
104 | */ | ||
105 | int TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 2; | ||
106 | |||
107 | /** | ||
108 | * The feature id for the '<em><b>Optimized Disjunction</b></em>' attribute. | ||
109 | * <!-- begin-user-doc --> | ||
110 | * <!-- end-user-doc --> | ||
111 | * @generated | ||
112 | * @ordered | ||
113 | */ | ||
114 | int TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 3; | ||
115 | |||
116 | /** | ||
99 | * The number of structural features of the '<em>Transfomed Viatra Query</em>' class. | 117 | * The number of structural features of the '<em>Transfomed Viatra Query</em>' class. |
100 | * <!-- begin-user-doc --> | 118 | * <!-- begin-user-doc --> |
101 | * <!-- end-user-doc --> | 119 | * <!-- end-user-doc --> |
102 | * @generated | 120 | * @generated |
103 | * @ordered | 121 | * @ordered |
104 | */ | 122 | */ |
105 | int TRANSFOMED_VIATRA_QUERY_FEATURE_COUNT = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 2; | 123 | int TRANSFOMED_VIATRA_QUERY_FEATURE_COUNT = LogicproblemPackage.RELATION_ANNOTATION_FEATURE_COUNT + 4; |
106 | 124 | ||
107 | /** | 125 | /** |
108 | * The number of operations of the '<em>Transfomed Viatra Query</em>' class. | 126 | * The number of operations of the '<em>Transfomed Viatra Query</em>' class. |
@@ -208,6 +226,53 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
208 | 226 | ||
209 | 227 | ||
210 | /** | 228 | /** |
229 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl <em>Variable Mapping</em>}' class. | ||
230 | * <!-- begin-user-doc --> | ||
231 | * <!-- end-user-doc --> | ||
232 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl | ||
233 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.Viatra2LogicAnnotationsPackageImpl#getVariableMapping() | ||
234 | * @generated | ||
235 | */ | ||
236 | int VARIABLE_MAPPING = 3; | ||
237 | |||
238 | /** | ||
239 | * The feature id for the '<em><b>Source PVariable</b></em>' attribute. | ||
240 | * <!-- begin-user-doc --> | ||
241 | * <!-- end-user-doc --> | ||
242 | * @generated | ||
243 | * @ordered | ||
244 | */ | ||
245 | int VARIABLE_MAPPING__SOURCE_PVARIABLE = 0; | ||
246 | |||
247 | /** | ||
248 | * The feature id for the '<em><b>Target Logic Variable</b></em>' reference. | ||
249 | * <!-- begin-user-doc --> | ||
250 | * <!-- end-user-doc --> | ||
251 | * @generated | ||
252 | * @ordered | ||
253 | */ | ||
254 | int VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE = 1; | ||
255 | |||
256 | /** | ||
257 | * The number of structural features of the '<em>Variable Mapping</em>' class. | ||
258 | * <!-- begin-user-doc --> | ||
259 | * <!-- end-user-doc --> | ||
260 | * @generated | ||
261 | * @ordered | ||
262 | */ | ||
263 | int VARIABLE_MAPPING_FEATURE_COUNT = 2; | ||
264 | |||
265 | /** | ||
266 | * The number of operations of the '<em>Variable Mapping</em>' class. | ||
267 | * <!-- begin-user-doc --> | ||
268 | * <!-- end-user-doc --> | ||
269 | * @generated | ||
270 | * @ordered | ||
271 | */ | ||
272 | int VARIABLE_MAPPING_OPERATION_COUNT = 0; | ||
273 | |||
274 | |||
275 | /** | ||
211 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery <em>Transfomed Viatra Query</em>}'. | 276 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery <em>Transfomed Viatra Query</em>}'. |
212 | * <!-- begin-user-doc --> | 277 | * <!-- begin-user-doc --> |
213 | * <!-- end-user-doc --> | 278 | * <!-- end-user-doc --> |
@@ -240,6 +305,28 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
240 | EAttribute getTransfomedViatraQuery_PatternPQuery(); | 305 | EAttribute getTransfomedViatraQuery_PatternPQuery(); |
241 | 306 | ||
242 | /** | 307 | /** |
308 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getVariableTrace <em>Variable Trace</em>}'. | ||
309 | * <!-- begin-user-doc --> | ||
310 | * <!-- end-user-doc --> | ||
311 | * @return the meta object for the containment reference list '<em>Variable Trace</em>'. | ||
312 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getVariableTrace() | ||
313 | * @see #getTransfomedViatraQuery() | ||
314 | * @generated | ||
315 | */ | ||
316 | EReference getTransfomedViatraQuery_VariableTrace(); | ||
317 | |||
318 | /** | ||
319 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getOptimizedDisjunction <em>Optimized Disjunction</em>}'. | ||
320 | * <!-- begin-user-doc --> | ||
321 | * <!-- end-user-doc --> | ||
322 | * @return the meta object for the attribute '<em>Optimized Disjunction</em>'. | ||
323 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery#getOptimizedDisjunction() | ||
324 | * @see #getTransfomedViatraQuery() | ||
325 | * @generated | ||
326 | */ | ||
327 | EAttribute getTransfomedViatraQuery_OptimizedDisjunction(); | ||
328 | |||
329 | /** | ||
243 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransformedViatraWellformednessConstraint <em>Transformed Viatra Wellformedness Constraint</em>}'. | 330 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransformedViatraWellformednessConstraint <em>Transformed Viatra Wellformedness Constraint</em>}'. |
244 | * <!-- begin-user-doc --> | 331 | * <!-- begin-user-doc --> |
245 | * <!-- end-user-doc --> | 332 | * <!-- end-user-doc --> |
@@ -282,6 +369,38 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
282 | EReference getDefinedByDerivedFeature_Query(); | 369 | EReference getDefinedByDerivedFeature_Query(); |
283 | 370 | ||
284 | /** | 371 | /** |
372 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping <em>Variable Mapping</em>}'. | ||
373 | * <!-- begin-user-doc --> | ||
374 | * <!-- end-user-doc --> | ||
375 | * @return the meta object for class '<em>Variable Mapping</em>'. | ||
376 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping | ||
377 | * @generated | ||
378 | */ | ||
379 | EClass getVariableMapping(); | ||
380 | |||
381 | /** | ||
382 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getSourcePVariable <em>Source PVariable</em>}'. | ||
383 | * <!-- begin-user-doc --> | ||
384 | * <!-- end-user-doc --> | ||
385 | * @return the meta object for the attribute '<em>Source PVariable</em>'. | ||
386 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getSourcePVariable() | ||
387 | * @see #getVariableMapping() | ||
388 | * @generated | ||
389 | */ | ||
390 | EAttribute getVariableMapping_SourcePVariable(); | ||
391 | |||
392 | /** | ||
393 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getTargetLogicVariable <em>Target Logic Variable</em>}'. | ||
394 | * <!-- begin-user-doc --> | ||
395 | * <!-- end-user-doc --> | ||
396 | * @return the meta object for the reference '<em>Target Logic Variable</em>'. | ||
397 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping#getTargetLogicVariable() | ||
398 | * @see #getVariableMapping() | ||
399 | * @generated | ||
400 | */ | ||
401 | EReference getVariableMapping_TargetLogicVariable(); | ||
402 | |||
403 | /** | ||
285 | * Returns the factory that creates the instances of the model. | 404 | * Returns the factory that creates the instances of the model. |
286 | * <!-- begin-user-doc --> | 405 | * <!-- begin-user-doc --> |
287 | * <!-- end-user-doc --> | 406 | * <!-- end-user-doc --> |
@@ -331,6 +450,22 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
331 | EAttribute TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = eINSTANCE.getTransfomedViatraQuery_PatternPQuery(); | 450 | EAttribute TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY = eINSTANCE.getTransfomedViatraQuery_PatternPQuery(); |
332 | 451 | ||
333 | /** | 452 | /** |
453 | * The meta object literal for the '<em><b>Variable Trace</b></em>' containment reference list feature. | ||
454 | * <!-- begin-user-doc --> | ||
455 | * <!-- end-user-doc --> | ||
456 | * @generated | ||
457 | */ | ||
458 | EReference TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE = eINSTANCE.getTransfomedViatraQuery_VariableTrace(); | ||
459 | |||
460 | /** | ||
461 | * The meta object literal for the '<em><b>Optimized Disjunction</b></em>' attribute feature. | ||
462 | * <!-- begin-user-doc --> | ||
463 | * <!-- end-user-doc --> | ||
464 | * @generated | ||
465 | */ | ||
466 | EAttribute TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION = eINSTANCE.getTransfomedViatraQuery_OptimizedDisjunction(); | ||
467 | |||
468 | /** | ||
334 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransformedViatraWellformednessConstraintImpl <em>Transformed Viatra Wellformedness Constraint</em>}' class. | 469 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransformedViatraWellformednessConstraintImpl <em>Transformed Viatra Wellformedness Constraint</em>}' class. |
335 | * <!-- begin-user-doc --> | 470 | * <!-- begin-user-doc --> |
336 | * <!-- end-user-doc --> | 471 | * <!-- end-user-doc --> |
@@ -366,6 +501,32 @@ public interface Viatra2LogicAnnotationsPackage extends EPackage { | |||
366 | */ | 501 | */ |
367 | EReference DEFINED_BY_DERIVED_FEATURE__QUERY = eINSTANCE.getDefinedByDerivedFeature_Query(); | 502 | EReference DEFINED_BY_DERIVED_FEATURE__QUERY = eINSTANCE.getDefinedByDerivedFeature_Query(); |
368 | 503 | ||
504 | /** | ||
505 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl <em>Variable Mapping</em>}' class. | ||
506 | * <!-- begin-user-doc --> | ||
507 | * <!-- end-user-doc --> | ||
508 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl | ||
509 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.Viatra2LogicAnnotationsPackageImpl#getVariableMapping() | ||
510 | * @generated | ||
511 | */ | ||
512 | EClass VARIABLE_MAPPING = eINSTANCE.getVariableMapping(); | ||
513 | |||
514 | /** | ||
515 | * The meta object literal for the '<em><b>Source PVariable</b></em>' attribute feature. | ||
516 | * <!-- begin-user-doc --> | ||
517 | * <!-- end-user-doc --> | ||
518 | * @generated | ||
519 | */ | ||
520 | EAttribute VARIABLE_MAPPING__SOURCE_PVARIABLE = eINSTANCE.getVariableMapping_SourcePVariable(); | ||
521 | |||
522 | /** | ||
523 | * The meta object literal for the '<em><b>Target Logic Variable</b></em>' reference feature. | ||
524 | * <!-- begin-user-doc --> | ||
525 | * <!-- end-user-doc --> | ||
526 | * @generated | ||
527 | */ | ||
528 | EReference VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE = eINSTANCE.getVariableMapping_TargetLogicVariable(); | ||
529 | |||
369 | } | 530 | } |
370 | 531 | ||
371 | } //Viatra2LogicAnnotationsPackage | 532 | } //Viatra2LogicAnnotationsPackage |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/DefinedByDerivedFeatureImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/DefinedByDerivedFeatureImpl.java index c2098ed0..a489c673 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/DefinedByDerivedFeatureImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/DefinedByDerivedFeatureImpl.java | |||
@@ -63,6 +63,7 @@ public class DefinedByDerivedFeatureImpl extends RelationAnnotationImpl implemen | |||
63 | * <!-- end-user-doc --> | 63 | * <!-- end-user-doc --> |
64 | * @generated | 64 | * @generated |
65 | */ | 65 | */ |
66 | @Override | ||
66 | public TransfomedViatraQuery getQuery() { | 67 | public TransfomedViatraQuery getQuery() { |
67 | if (query != null && query.eIsProxy()) { | 68 | if (query != null && query.eIsProxy()) { |
68 | InternalEObject oldQuery = (InternalEObject)query; | 69 | InternalEObject oldQuery = (InternalEObject)query; |
@@ -89,6 +90,7 @@ public class DefinedByDerivedFeatureImpl extends RelationAnnotationImpl implemen | |||
89 | * <!-- end-user-doc --> | 90 | * <!-- end-user-doc --> |
90 | * @generated | 91 | * @generated |
91 | */ | 92 | */ |
93 | @Override | ||
92 | public void setQuery(TransfomedViatraQuery newQuery) { | 94 | public void setQuery(TransfomedViatraQuery newQuery) { |
93 | TransfomedViatraQuery oldQuery = query; | 95 | TransfomedViatraQuery oldQuery = query; |
94 | query = newQuery; | 96 | query = newQuery; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java index d7f9ff68..d0233450 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransfomedViatraQueryImpl.java | |||
@@ -5,11 +5,18 @@ package hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl; | |||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.impl.RelationAnnotationImpl; | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.impl.RelationAnnotationImpl; |
6 | 6 | ||
7 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery; | 7 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery; |
8 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping; | ||
8 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | 9 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; |
9 | 10 | ||
11 | import java.util.Collection; | ||
10 | import org.eclipse.emf.common.notify.Notification; | 12 | import org.eclipse.emf.common.notify.Notification; |
13 | import org.eclipse.emf.common.notify.NotificationChain; | ||
14 | import org.eclipse.emf.common.util.EList; | ||
11 | import org.eclipse.emf.ecore.EClass; | 15 | import org.eclipse.emf.ecore.EClass; |
16 | import org.eclipse.emf.ecore.InternalEObject; | ||
12 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | 17 | import org.eclipse.emf.ecore.impl.ENotificationImpl; |
18 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
19 | import org.eclipse.emf.ecore.util.InternalEList; | ||
13 | 20 | ||
14 | /** | 21 | /** |
15 | * <!-- begin-user-doc --> | 22 | * <!-- begin-user-doc --> |
@@ -21,6 +28,8 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; | |||
21 | * <ul> | 28 | * <ul> |
22 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternFullyQualifiedName <em>Pattern Fully Qualified Name</em>}</li> | 29 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternFullyQualifiedName <em>Pattern Fully Qualified Name</em>}</li> |
23 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternPQuery <em>Pattern PQuery</em>}</li> | 30 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getPatternPQuery <em>Pattern PQuery</em>}</li> |
31 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getVariableTrace <em>Variable Trace</em>}</li> | ||
32 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.TransfomedViatraQueryImpl#getOptimizedDisjunction <em>Optimized Disjunction</em>}</li> | ||
24 | * </ul> | 33 | * </ul> |
25 | * | 34 | * |
26 | * @generated | 35 | * @generated |
@@ -64,6 +73,33 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
64 | */ | 73 | */ |
65 | protected Object patternPQuery = PATTERN_PQUERY_EDEFAULT; | 74 | protected Object patternPQuery = PATTERN_PQUERY_EDEFAULT; |
66 | /** | 75 | /** |
76 | * The cached value of the '{@link #getVariableTrace() <em>Variable Trace</em>}' containment reference list. | ||
77 | * <!-- begin-user-doc --> | ||
78 | * <!-- end-user-doc --> | ||
79 | * @see #getVariableTrace() | ||
80 | * @generated | ||
81 | * @ordered | ||
82 | */ | ||
83 | protected EList<VariableMapping> variableTrace; | ||
84 | /** | ||
85 | * The default value of the '{@link #getOptimizedDisjunction() <em>Optimized Disjunction</em>}' attribute. | ||
86 | * <!-- begin-user-doc --> | ||
87 | * <!-- end-user-doc --> | ||
88 | * @see #getOptimizedDisjunction() | ||
89 | * @generated | ||
90 | * @ordered | ||
91 | */ | ||
92 | protected static final Object OPTIMIZED_DISJUNCTION_EDEFAULT = null; | ||
93 | /** | ||
94 | * The cached value of the '{@link #getOptimizedDisjunction() <em>Optimized Disjunction</em>}' attribute. | ||
95 | * <!-- begin-user-doc --> | ||
96 | * <!-- end-user-doc --> | ||
97 | * @see #getOptimizedDisjunction() | ||
98 | * @generated | ||
99 | * @ordered | ||
100 | */ | ||
101 | protected Object optimizedDisjunction = OPTIMIZED_DISJUNCTION_EDEFAULT; | ||
102 | /** | ||
67 | * <!-- begin-user-doc --> | 103 | * <!-- begin-user-doc --> |
68 | * <!-- end-user-doc --> | 104 | * <!-- end-user-doc --> |
69 | * @generated | 105 | * @generated |
@@ -87,6 +123,7 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
87 | * <!-- end-user-doc --> | 123 | * <!-- end-user-doc --> |
88 | * @generated | 124 | * @generated |
89 | */ | 125 | */ |
126 | @Override | ||
90 | public String getPatternFullyQualifiedName() { | 127 | public String getPatternFullyQualifiedName() { |
91 | return patternFullyQualifiedName; | 128 | return patternFullyQualifiedName; |
92 | } | 129 | } |
@@ -96,6 +133,7 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
96 | * <!-- end-user-doc --> | 133 | * <!-- end-user-doc --> |
97 | * @generated | 134 | * @generated |
98 | */ | 135 | */ |
136 | @Override | ||
99 | public void setPatternFullyQualifiedName(String newPatternFullyQualifiedName) { | 137 | public void setPatternFullyQualifiedName(String newPatternFullyQualifiedName) { |
100 | String oldPatternFullyQualifiedName = patternFullyQualifiedName; | 138 | String oldPatternFullyQualifiedName = patternFullyQualifiedName; |
101 | patternFullyQualifiedName = newPatternFullyQualifiedName; | 139 | patternFullyQualifiedName = newPatternFullyQualifiedName; |
@@ -108,6 +146,7 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
108 | * <!-- end-user-doc --> | 146 | * <!-- end-user-doc --> |
109 | * @generated | 147 | * @generated |
110 | */ | 148 | */ |
149 | @Override | ||
111 | public Object getPatternPQuery() { | 150 | public Object getPatternPQuery() { |
112 | return patternPQuery; | 151 | return patternPQuery; |
113 | } | 152 | } |
@@ -117,6 +156,7 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
117 | * <!-- end-user-doc --> | 156 | * <!-- end-user-doc --> |
118 | * @generated | 157 | * @generated |
119 | */ | 158 | */ |
159 | @Override | ||
120 | public void setPatternPQuery(Object newPatternPQuery) { | 160 | public void setPatternPQuery(Object newPatternPQuery) { |
121 | Object oldPatternPQuery = patternPQuery; | 161 | Object oldPatternPQuery = patternPQuery; |
122 | patternPQuery = newPatternPQuery; | 162 | patternPQuery = newPatternPQuery; |
@@ -130,12 +170,66 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
130 | * @generated | 170 | * @generated |
131 | */ | 171 | */ |
132 | @Override | 172 | @Override |
173 | public EList<VariableMapping> getVariableTrace() { | ||
174 | if (variableTrace == null) { | ||
175 | variableTrace = new EObjectContainmentEList<VariableMapping>(VariableMapping.class, this, Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE); | ||
176 | } | ||
177 | return variableTrace; | ||
178 | } | ||
179 | |||
180 | /** | ||
181 | * <!-- begin-user-doc --> | ||
182 | * <!-- end-user-doc --> | ||
183 | * @generated | ||
184 | */ | ||
185 | @Override | ||
186 | public Object getOptimizedDisjunction() { | ||
187 | return optimizedDisjunction; | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * <!-- begin-user-doc --> | ||
192 | * <!-- end-user-doc --> | ||
193 | * @generated | ||
194 | */ | ||
195 | @Override | ||
196 | public void setOptimizedDisjunction(Object newOptimizedDisjunction) { | ||
197 | Object oldOptimizedDisjunction = optimizedDisjunction; | ||
198 | optimizedDisjunction = newOptimizedDisjunction; | ||
199 | if (eNotificationRequired()) | ||
200 | eNotify(new ENotificationImpl(this, Notification.SET, Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION, oldOptimizedDisjunction, optimizedDisjunction)); | ||
201 | } | ||
202 | |||
203 | /** | ||
204 | * <!-- begin-user-doc --> | ||
205 | * <!-- end-user-doc --> | ||
206 | * @generated | ||
207 | */ | ||
208 | @Override | ||
209 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
210 | switch (featureID) { | ||
211 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE: | ||
212 | return ((InternalEList<?>)getVariableTrace()).basicRemove(otherEnd, msgs); | ||
213 | } | ||
214 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
215 | } | ||
216 | |||
217 | /** | ||
218 | * <!-- begin-user-doc --> | ||
219 | * <!-- end-user-doc --> | ||
220 | * @generated | ||
221 | */ | ||
222 | @Override | ||
133 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | 223 | public Object eGet(int featureID, boolean resolve, boolean coreType) { |
134 | switch (featureID) { | 224 | switch (featureID) { |
135 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME: | 225 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME: |
136 | return getPatternFullyQualifiedName(); | 226 | return getPatternFullyQualifiedName(); |
137 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: | 227 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: |
138 | return getPatternPQuery(); | 228 | return getPatternPQuery(); |
229 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE: | ||
230 | return getVariableTrace(); | ||
231 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION: | ||
232 | return getOptimizedDisjunction(); | ||
139 | } | 233 | } |
140 | return super.eGet(featureID, resolve, coreType); | 234 | return super.eGet(featureID, resolve, coreType); |
141 | } | 235 | } |
@@ -145,6 +239,7 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
145 | * <!-- end-user-doc --> | 239 | * <!-- end-user-doc --> |
146 | * @generated | 240 | * @generated |
147 | */ | 241 | */ |
242 | @SuppressWarnings("unchecked") | ||
148 | @Override | 243 | @Override |
149 | public void eSet(int featureID, Object newValue) { | 244 | public void eSet(int featureID, Object newValue) { |
150 | switch (featureID) { | 245 | switch (featureID) { |
@@ -154,6 +249,13 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
154 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: | 249 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: |
155 | setPatternPQuery(newValue); | 250 | setPatternPQuery(newValue); |
156 | return; | 251 | return; |
252 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE: | ||
253 | getVariableTrace().clear(); | ||
254 | getVariableTrace().addAll((Collection<? extends VariableMapping>)newValue); | ||
255 | return; | ||
256 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION: | ||
257 | setOptimizedDisjunction(newValue); | ||
258 | return; | ||
157 | } | 259 | } |
158 | super.eSet(featureID, newValue); | 260 | super.eSet(featureID, newValue); |
159 | } | 261 | } |
@@ -172,6 +274,12 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
172 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: | 274 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: |
173 | setPatternPQuery(PATTERN_PQUERY_EDEFAULT); | 275 | setPatternPQuery(PATTERN_PQUERY_EDEFAULT); |
174 | return; | 276 | return; |
277 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE: | ||
278 | getVariableTrace().clear(); | ||
279 | return; | ||
280 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION: | ||
281 | setOptimizedDisjunction(OPTIMIZED_DISJUNCTION_EDEFAULT); | ||
282 | return; | ||
175 | } | 283 | } |
176 | super.eUnset(featureID); | 284 | super.eUnset(featureID); |
177 | } | 285 | } |
@@ -188,6 +296,10 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
188 | return PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT == null ? patternFullyQualifiedName != null : !PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT.equals(patternFullyQualifiedName); | 296 | return PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT == null ? patternFullyQualifiedName != null : !PATTERN_FULLY_QUALIFIED_NAME_EDEFAULT.equals(patternFullyQualifiedName); |
189 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: | 297 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY: |
190 | return PATTERN_PQUERY_EDEFAULT == null ? patternPQuery != null : !PATTERN_PQUERY_EDEFAULT.equals(patternPQuery); | 298 | return PATTERN_PQUERY_EDEFAULT == null ? patternPQuery != null : !PATTERN_PQUERY_EDEFAULT.equals(patternPQuery); |
299 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE: | ||
300 | return variableTrace != null && !variableTrace.isEmpty(); | ||
301 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION: | ||
302 | return OPTIMIZED_DISJUNCTION_EDEFAULT == null ? optimizedDisjunction != null : !OPTIMIZED_DISJUNCTION_EDEFAULT.equals(optimizedDisjunction); | ||
191 | } | 303 | } |
192 | return super.eIsSet(featureID); | 304 | return super.eIsSet(featureID); |
193 | } | 305 | } |
@@ -201,11 +313,13 @@ public class TransfomedViatraQueryImpl extends RelationAnnotationImpl implements | |||
201 | public String toString() { | 313 | public String toString() { |
202 | if (eIsProxy()) return super.toString(); | 314 | if (eIsProxy()) return super.toString(); |
203 | 315 | ||
204 | StringBuffer result = new StringBuffer(super.toString()); | 316 | StringBuilder result = new StringBuilder(super.toString()); |
205 | result.append(" (patternFullyQualifiedName: "); | 317 | result.append(" (patternFullyQualifiedName: "); |
206 | result.append(patternFullyQualifiedName); | 318 | result.append(patternFullyQualifiedName); |
207 | result.append(", patternPQuery: "); | 319 | result.append(", patternPQuery: "); |
208 | result.append(patternPQuery); | 320 | result.append(patternPQuery); |
321 | result.append(", optimizedDisjunction: "); | ||
322 | result.append(optimizedDisjunction); | ||
209 | result.append(')'); | 323 | result.append(')'); |
210 | return result.toString(); | 324 | return result.toString(); |
211 | } | 325 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransformedViatraWellformednessConstraintImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransformedViatraWellformednessConstraintImpl.java index be0c3078..3e41c3fd 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransformedViatraWellformednessConstraintImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/TransformedViatraWellformednessConstraintImpl.java | |||
@@ -63,6 +63,7 @@ public class TransformedViatraWellformednessConstraintImpl extends AssertionAnno | |||
63 | * <!-- end-user-doc --> | 63 | * <!-- end-user-doc --> |
64 | * @generated | 64 | * @generated |
65 | */ | 65 | */ |
66 | @Override | ||
66 | public TransfomedViatraQuery getQuery() { | 67 | public TransfomedViatraQuery getQuery() { |
67 | if (query != null && query.eIsProxy()) { | 68 | if (query != null && query.eIsProxy()) { |
68 | InternalEObject oldQuery = (InternalEObject)query; | 69 | InternalEObject oldQuery = (InternalEObject)query; |
@@ -89,6 +90,7 @@ public class TransformedViatraWellformednessConstraintImpl extends AssertionAnno | |||
89 | * <!-- end-user-doc --> | 90 | * <!-- end-user-doc --> |
90 | * @generated | 91 | * @generated |
91 | */ | 92 | */ |
93 | @Override | ||
92 | public void setQuery(TransfomedViatraQuery newQuery) { | 94 | public void setQuery(TransfomedViatraQuery newQuery) { |
93 | TransfomedViatraQuery oldQuery = query; | 95 | TransfomedViatraQuery oldQuery = query; |
94 | query = newQuery; | 96 | query = newQuery; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/VariableMappingImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/VariableMappingImpl.java new file mode 100644 index 00000000..020c71c7 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/VariableMappingImpl.java | |||
@@ -0,0 +1,230 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
6 | |||
7 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping; | ||
8 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | ||
9 | |||
10 | import org.eclipse.emf.common.notify.Notification; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.emf.ecore.InternalEObject; | ||
14 | |||
15 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
16 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
17 | |||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * An implementation of the model object '<em><b>Variable Mapping</b></em>'. | ||
21 | * <!-- end-user-doc --> | ||
22 | * <p> | ||
23 | * The following features are implemented: | ||
24 | * </p> | ||
25 | * <ul> | ||
26 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl#getSourcePVariable <em>Source PVariable</em>}</li> | ||
27 | * <li>{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.impl.VariableMappingImpl#getTargetLogicVariable <em>Target Logic Variable</em>}</li> | ||
28 | * </ul> | ||
29 | * | ||
30 | * @generated | ||
31 | */ | ||
32 | public class VariableMappingImpl extends MinimalEObjectImpl.Container implements VariableMapping { | ||
33 | /** | ||
34 | * The default value of the '{@link #getSourcePVariable() <em>Source PVariable</em>}' attribute. | ||
35 | * <!-- begin-user-doc --> | ||
36 | * <!-- end-user-doc --> | ||
37 | * @see #getSourcePVariable() | ||
38 | * @generated | ||
39 | * @ordered | ||
40 | */ | ||
41 | protected static final Object SOURCE_PVARIABLE_EDEFAULT = null; | ||
42 | |||
43 | /** | ||
44 | * The cached value of the '{@link #getSourcePVariable() <em>Source PVariable</em>}' attribute. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * <!-- end-user-doc --> | ||
47 | * @see #getSourcePVariable() | ||
48 | * @generated | ||
49 | * @ordered | ||
50 | */ | ||
51 | protected Object sourcePVariable = SOURCE_PVARIABLE_EDEFAULT; | ||
52 | |||
53 | /** | ||
54 | * The cached value of the '{@link #getTargetLogicVariable() <em>Target Logic Variable</em>}' reference. | ||
55 | * <!-- begin-user-doc --> | ||
56 | * <!-- end-user-doc --> | ||
57 | * @see #getTargetLogicVariable() | ||
58 | * @generated | ||
59 | * @ordered | ||
60 | */ | ||
61 | protected Variable targetLogicVariable; | ||
62 | |||
63 | /** | ||
64 | * <!-- begin-user-doc --> | ||
65 | * <!-- end-user-doc --> | ||
66 | * @generated | ||
67 | */ | ||
68 | protected VariableMappingImpl() { | ||
69 | super(); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * <!-- begin-user-doc --> | ||
74 | * <!-- end-user-doc --> | ||
75 | * @generated | ||
76 | */ | ||
77 | @Override | ||
78 | protected EClass eStaticClass() { | ||
79 | return Viatra2LogicAnnotationsPackage.Literals.VARIABLE_MAPPING; | ||
80 | } | ||
81 | |||
82 | /** | ||
83 | * <!-- begin-user-doc --> | ||
84 | * <!-- end-user-doc --> | ||
85 | * @generated | ||
86 | */ | ||
87 | @Override | ||
88 | public Object getSourcePVariable() { | ||
89 | return sourcePVariable; | ||
90 | } | ||
91 | |||
92 | /** | ||
93 | * <!-- begin-user-doc --> | ||
94 | * <!-- end-user-doc --> | ||
95 | * @generated | ||
96 | */ | ||
97 | @Override | ||
98 | public void setSourcePVariable(Object newSourcePVariable) { | ||
99 | Object oldSourcePVariable = sourcePVariable; | ||
100 | sourcePVariable = newSourcePVariable; | ||
101 | if (eNotificationRequired()) | ||
102 | eNotify(new ENotificationImpl(this, Notification.SET, Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__SOURCE_PVARIABLE, oldSourcePVariable, sourcePVariable)); | ||
103 | } | ||
104 | |||
105 | /** | ||
106 | * <!-- begin-user-doc --> | ||
107 | * <!-- end-user-doc --> | ||
108 | * @generated | ||
109 | */ | ||
110 | @Override | ||
111 | public Variable getTargetLogicVariable() { | ||
112 | if (targetLogicVariable != null && targetLogicVariable.eIsProxy()) { | ||
113 | InternalEObject oldTargetLogicVariable = (InternalEObject)targetLogicVariable; | ||
114 | targetLogicVariable = (Variable)eResolveProxy(oldTargetLogicVariable); | ||
115 | if (targetLogicVariable != oldTargetLogicVariable) { | ||
116 | if (eNotificationRequired()) | ||
117 | eNotify(new ENotificationImpl(this, Notification.RESOLVE, Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE, oldTargetLogicVariable, targetLogicVariable)); | ||
118 | } | ||
119 | } | ||
120 | return targetLogicVariable; | ||
121 | } | ||
122 | |||
123 | /** | ||
124 | * <!-- begin-user-doc --> | ||
125 | * <!-- end-user-doc --> | ||
126 | * @generated | ||
127 | */ | ||
128 | public Variable basicGetTargetLogicVariable() { | ||
129 | return targetLogicVariable; | ||
130 | } | ||
131 | |||
132 | /** | ||
133 | * <!-- begin-user-doc --> | ||
134 | * <!-- end-user-doc --> | ||
135 | * @generated | ||
136 | */ | ||
137 | @Override | ||
138 | public void setTargetLogicVariable(Variable newTargetLogicVariable) { | ||
139 | Variable oldTargetLogicVariable = targetLogicVariable; | ||
140 | targetLogicVariable = newTargetLogicVariable; | ||
141 | if (eNotificationRequired()) | ||
142 | eNotify(new ENotificationImpl(this, Notification.SET, Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE, oldTargetLogicVariable, targetLogicVariable)); | ||
143 | } | ||
144 | |||
145 | /** | ||
146 | * <!-- begin-user-doc --> | ||
147 | * <!-- end-user-doc --> | ||
148 | * @generated | ||
149 | */ | ||
150 | @Override | ||
151 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
152 | switch (featureID) { | ||
153 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__SOURCE_PVARIABLE: | ||
154 | return getSourcePVariable(); | ||
155 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE: | ||
156 | if (resolve) return getTargetLogicVariable(); | ||
157 | return basicGetTargetLogicVariable(); | ||
158 | } | ||
159 | return super.eGet(featureID, resolve, coreType); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * <!-- begin-user-doc --> | ||
164 | * <!-- end-user-doc --> | ||
165 | * @generated | ||
166 | */ | ||
167 | @Override | ||
168 | public void eSet(int featureID, Object newValue) { | ||
169 | switch (featureID) { | ||
170 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__SOURCE_PVARIABLE: | ||
171 | setSourcePVariable(newValue); | ||
172 | return; | ||
173 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE: | ||
174 | setTargetLogicVariable((Variable)newValue); | ||
175 | return; | ||
176 | } | ||
177 | super.eSet(featureID, newValue); | ||
178 | } | ||
179 | |||
180 | /** | ||
181 | * <!-- begin-user-doc --> | ||
182 | * <!-- end-user-doc --> | ||
183 | * @generated | ||
184 | */ | ||
185 | @Override | ||
186 | public void eUnset(int featureID) { | ||
187 | switch (featureID) { | ||
188 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__SOURCE_PVARIABLE: | ||
189 | setSourcePVariable(SOURCE_PVARIABLE_EDEFAULT); | ||
190 | return; | ||
191 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE: | ||
192 | setTargetLogicVariable((Variable)null); | ||
193 | return; | ||
194 | } | ||
195 | super.eUnset(featureID); | ||
196 | } | ||
197 | |||
198 | /** | ||
199 | * <!-- begin-user-doc --> | ||
200 | * <!-- end-user-doc --> | ||
201 | * @generated | ||
202 | */ | ||
203 | @Override | ||
204 | public boolean eIsSet(int featureID) { | ||
205 | switch (featureID) { | ||
206 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__SOURCE_PVARIABLE: | ||
207 | return SOURCE_PVARIABLE_EDEFAULT == null ? sourcePVariable != null : !SOURCE_PVARIABLE_EDEFAULT.equals(sourcePVariable); | ||
208 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE: | ||
209 | return targetLogicVariable != null; | ||
210 | } | ||
211 | return super.eIsSet(featureID); | ||
212 | } | ||
213 | |||
214 | /** | ||
215 | * <!-- begin-user-doc --> | ||
216 | * <!-- end-user-doc --> | ||
217 | * @generated | ||
218 | */ | ||
219 | @Override | ||
220 | public String toString() { | ||
221 | if (eIsProxy()) return super.toString(); | ||
222 | |||
223 | StringBuilder result = new StringBuilder(super.toString()); | ||
224 | result.append(" (sourcePVariable: "); | ||
225 | result.append(sourcePVariable); | ||
226 | result.append(')'); | ||
227 | return result.toString(); | ||
228 | } | ||
229 | |||
230 | } //VariableMappingImpl | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsFactoryImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsFactoryImpl.java index fc8f23c7..33b726c2 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsFactoryImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsFactoryImpl.java | |||
@@ -59,6 +59,7 @@ public class Viatra2LogicAnnotationsFactoryImpl extends EFactoryImpl implements | |||
59 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY: return createTransfomedViatraQuery(); | 59 | case Viatra2LogicAnnotationsPackage.TRANSFOMED_VIATRA_QUERY: return createTransfomedViatraQuery(); |
60 | case Viatra2LogicAnnotationsPackage.TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT: return createTransformedViatraWellformednessConstraint(); | 60 | case Viatra2LogicAnnotationsPackage.TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT: return createTransformedViatraWellformednessConstraint(); |
61 | case Viatra2LogicAnnotationsPackage.DEFINED_BY_DERIVED_FEATURE: return createDefinedByDerivedFeature(); | 61 | case Viatra2LogicAnnotationsPackage.DEFINED_BY_DERIVED_FEATURE: return createDefinedByDerivedFeature(); |
62 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING: return createVariableMapping(); | ||
62 | default: | 63 | default: |
63 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | 64 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); |
64 | } | 65 | } |
@@ -69,6 +70,7 @@ public class Viatra2LogicAnnotationsFactoryImpl extends EFactoryImpl implements | |||
69 | * <!-- end-user-doc --> | 70 | * <!-- end-user-doc --> |
70 | * @generated | 71 | * @generated |
71 | */ | 72 | */ |
73 | @Override | ||
72 | public TransfomedViatraQuery createTransfomedViatraQuery() { | 74 | public TransfomedViatraQuery createTransfomedViatraQuery() { |
73 | TransfomedViatraQueryImpl transfomedViatraQuery = new TransfomedViatraQueryImpl(); | 75 | TransfomedViatraQueryImpl transfomedViatraQuery = new TransfomedViatraQueryImpl(); |
74 | return transfomedViatraQuery; | 76 | return transfomedViatraQuery; |
@@ -79,6 +81,7 @@ public class Viatra2LogicAnnotationsFactoryImpl extends EFactoryImpl implements | |||
79 | * <!-- end-user-doc --> | 81 | * <!-- end-user-doc --> |
80 | * @generated | 82 | * @generated |
81 | */ | 83 | */ |
84 | @Override | ||
82 | public TransformedViatraWellformednessConstraint createTransformedViatraWellformednessConstraint() { | 85 | public TransformedViatraWellformednessConstraint createTransformedViatraWellformednessConstraint() { |
83 | TransformedViatraWellformednessConstraintImpl transformedViatraWellformednessConstraint = new TransformedViatraWellformednessConstraintImpl(); | 86 | TransformedViatraWellformednessConstraintImpl transformedViatraWellformednessConstraint = new TransformedViatraWellformednessConstraintImpl(); |
84 | return transformedViatraWellformednessConstraint; | 87 | return transformedViatraWellformednessConstraint; |
@@ -89,6 +92,7 @@ public class Viatra2LogicAnnotationsFactoryImpl extends EFactoryImpl implements | |||
89 | * <!-- end-user-doc --> | 92 | * <!-- end-user-doc --> |
90 | * @generated | 93 | * @generated |
91 | */ | 94 | */ |
95 | @Override | ||
92 | public DefinedByDerivedFeature createDefinedByDerivedFeature() { | 96 | public DefinedByDerivedFeature createDefinedByDerivedFeature() { |
93 | DefinedByDerivedFeatureImpl definedByDerivedFeature = new DefinedByDerivedFeatureImpl(); | 97 | DefinedByDerivedFeatureImpl definedByDerivedFeature = new DefinedByDerivedFeatureImpl(); |
94 | return definedByDerivedFeature; | 98 | return definedByDerivedFeature; |
@@ -99,6 +103,18 @@ public class Viatra2LogicAnnotationsFactoryImpl extends EFactoryImpl implements | |||
99 | * <!-- end-user-doc --> | 103 | * <!-- end-user-doc --> |
100 | * @generated | 104 | * @generated |
101 | */ | 105 | */ |
106 | @Override | ||
107 | public VariableMapping createVariableMapping() { | ||
108 | VariableMappingImpl variableMapping = new VariableMappingImpl(); | ||
109 | return variableMapping; | ||
110 | } | ||
111 | |||
112 | /** | ||
113 | * <!-- begin-user-doc --> | ||
114 | * <!-- end-user-doc --> | ||
115 | * @generated | ||
116 | */ | ||
117 | @Override | ||
102 | public Viatra2LogicAnnotationsPackage getViatra2LogicAnnotationsPackage() { | 118 | public Viatra2LogicAnnotationsPackage getViatra2LogicAnnotationsPackage() { |
103 | return (Viatra2LogicAnnotationsPackage)getEPackage(); | 119 | return (Viatra2LogicAnnotationsPackage)getEPackage(); |
104 | } | 120 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java index 06965e87..ae96f617 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/impl/Viatra2LogicAnnotationsPackageImpl.java | |||
@@ -9,6 +9,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; | |||
9 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.DefinedByDerivedFeature; | 9 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.DefinedByDerivedFeature; |
10 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery; | 10 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery; |
11 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransformedViatraWellformednessConstraint; | 11 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransformedViatraWellformednessConstraint; |
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping; | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsFactory; | 13 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsFactory; |
13 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | 14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; |
14 | 15 | ||
@@ -48,6 +49,13 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
48 | private EClass definedByDerivedFeatureEClass = null; | 49 | private EClass definedByDerivedFeatureEClass = null; |
49 | 50 | ||
50 | /** | 51 | /** |
52 | * <!-- begin-user-doc --> | ||
53 | * <!-- end-user-doc --> | ||
54 | * @generated | ||
55 | */ | ||
56 | private EClass variableMappingEClass = null; | ||
57 | |||
58 | /** | ||
51 | * Creates an instance of the model <b>Package</b>, registered with | 59 | * Creates an instance of the model <b>Package</b>, registered with |
52 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | 60 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package |
53 | * package URI value. | 61 | * package URI value. |
@@ -75,7 +83,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
75 | 83 | ||
76 | /** | 84 | /** |
77 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. | 85 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. |
78 | * | 86 | * |
79 | * <p>This method is used to initialize {@link Viatra2LogicAnnotationsPackage#eINSTANCE} when that field is accessed. | 87 | * <p>This method is used to initialize {@link Viatra2LogicAnnotationsPackage#eINSTANCE} when that field is accessed. |
80 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. | 88 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. |
81 | * <!-- begin-user-doc --> | 89 | * <!-- begin-user-doc --> |
@@ -89,7 +97,8 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
89 | if (isInited) return (Viatra2LogicAnnotationsPackage)EPackage.Registry.INSTANCE.getEPackage(Viatra2LogicAnnotationsPackage.eNS_URI); | 97 | if (isInited) return (Viatra2LogicAnnotationsPackage)EPackage.Registry.INSTANCE.getEPackage(Viatra2LogicAnnotationsPackage.eNS_URI); |
90 | 98 | ||
91 | // Obtain or create and register package | 99 | // Obtain or create and register package |
92 | Viatra2LogicAnnotationsPackageImpl theViatra2LogicAnnotationsPackage = (Viatra2LogicAnnotationsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Viatra2LogicAnnotationsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Viatra2LogicAnnotationsPackageImpl()); | 100 | Object registeredViatra2LogicAnnotationsPackage = EPackage.Registry.INSTANCE.get(eNS_URI); |
101 | Viatra2LogicAnnotationsPackageImpl theViatra2LogicAnnotationsPackage = registeredViatra2LogicAnnotationsPackage instanceof Viatra2LogicAnnotationsPackageImpl ? (Viatra2LogicAnnotationsPackageImpl)registeredViatra2LogicAnnotationsPackage : new Viatra2LogicAnnotationsPackageImpl(); | ||
93 | 102 | ||
94 | isInited = true; | 103 | isInited = true; |
95 | 104 | ||
@@ -106,7 +115,6 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
106 | // Mark meta-data to indicate it can't be changed | 115 | // Mark meta-data to indicate it can't be changed |
107 | theViatra2LogicAnnotationsPackage.freeze(); | 116 | theViatra2LogicAnnotationsPackage.freeze(); |
108 | 117 | ||
109 | |||
110 | // Update the registry and return the package | 118 | // Update the registry and return the package |
111 | EPackage.Registry.INSTANCE.put(Viatra2LogicAnnotationsPackage.eNS_URI, theViatra2LogicAnnotationsPackage); | 119 | EPackage.Registry.INSTANCE.put(Viatra2LogicAnnotationsPackage.eNS_URI, theViatra2LogicAnnotationsPackage); |
112 | return theViatra2LogicAnnotationsPackage; | 120 | return theViatra2LogicAnnotationsPackage; |
@@ -117,6 +125,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
117 | * <!-- end-user-doc --> | 125 | * <!-- end-user-doc --> |
118 | * @generated | 126 | * @generated |
119 | */ | 127 | */ |
128 | @Override | ||
120 | public EClass getTransfomedViatraQuery() { | 129 | public EClass getTransfomedViatraQuery() { |
121 | return transfomedViatraQueryEClass; | 130 | return transfomedViatraQueryEClass; |
122 | } | 131 | } |
@@ -126,6 +135,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
126 | * <!-- end-user-doc --> | 135 | * <!-- end-user-doc --> |
127 | * @generated | 136 | * @generated |
128 | */ | 137 | */ |
138 | @Override | ||
129 | public EAttribute getTransfomedViatraQuery_PatternFullyQualifiedName() { | 139 | public EAttribute getTransfomedViatraQuery_PatternFullyQualifiedName() { |
130 | return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(0); | 140 | return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(0); |
131 | } | 141 | } |
@@ -135,6 +145,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
135 | * <!-- end-user-doc --> | 145 | * <!-- end-user-doc --> |
136 | * @generated | 146 | * @generated |
137 | */ | 147 | */ |
148 | @Override | ||
138 | public EAttribute getTransfomedViatraQuery_PatternPQuery() { | 149 | public EAttribute getTransfomedViatraQuery_PatternPQuery() { |
139 | return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(1); | 150 | return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(1); |
140 | } | 151 | } |
@@ -144,6 +155,27 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
144 | * <!-- end-user-doc --> | 155 | * <!-- end-user-doc --> |
145 | * @generated | 156 | * @generated |
146 | */ | 157 | */ |
158 | @Override | ||
159 | public EReference getTransfomedViatraQuery_VariableTrace() { | ||
160 | return (EReference)transfomedViatraQueryEClass.getEStructuralFeatures().get(2); | ||
161 | } | ||
162 | |||
163 | /** | ||
164 | * <!-- begin-user-doc --> | ||
165 | * <!-- end-user-doc --> | ||
166 | * @generated | ||
167 | */ | ||
168 | @Override | ||
169 | public EAttribute getTransfomedViatraQuery_OptimizedDisjunction() { | ||
170 | return (EAttribute)transfomedViatraQueryEClass.getEStructuralFeatures().get(3); | ||
171 | } | ||
172 | |||
173 | /** | ||
174 | * <!-- begin-user-doc --> | ||
175 | * <!-- end-user-doc --> | ||
176 | * @generated | ||
177 | */ | ||
178 | @Override | ||
147 | public EClass getTransformedViatraWellformednessConstraint() { | 179 | public EClass getTransformedViatraWellformednessConstraint() { |
148 | return transformedViatraWellformednessConstraintEClass; | 180 | return transformedViatraWellformednessConstraintEClass; |
149 | } | 181 | } |
@@ -153,6 +185,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
153 | * <!-- end-user-doc --> | 185 | * <!-- end-user-doc --> |
154 | * @generated | 186 | * @generated |
155 | */ | 187 | */ |
188 | @Override | ||
156 | public EReference getTransformedViatraWellformednessConstraint_Query() { | 189 | public EReference getTransformedViatraWellformednessConstraint_Query() { |
157 | return (EReference)transformedViatraWellformednessConstraintEClass.getEStructuralFeatures().get(0); | 190 | return (EReference)transformedViatraWellformednessConstraintEClass.getEStructuralFeatures().get(0); |
158 | } | 191 | } |
@@ -162,6 +195,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
162 | * <!-- end-user-doc --> | 195 | * <!-- end-user-doc --> |
163 | * @generated | 196 | * @generated |
164 | */ | 197 | */ |
198 | @Override | ||
165 | public EClass getDefinedByDerivedFeature() { | 199 | public EClass getDefinedByDerivedFeature() { |
166 | return definedByDerivedFeatureEClass; | 200 | return definedByDerivedFeatureEClass; |
167 | } | 201 | } |
@@ -171,6 +205,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
171 | * <!-- end-user-doc --> | 205 | * <!-- end-user-doc --> |
172 | * @generated | 206 | * @generated |
173 | */ | 207 | */ |
208 | @Override | ||
174 | public EReference getDefinedByDerivedFeature_Query() { | 209 | public EReference getDefinedByDerivedFeature_Query() { |
175 | return (EReference)definedByDerivedFeatureEClass.getEStructuralFeatures().get(0); | 210 | return (EReference)definedByDerivedFeatureEClass.getEStructuralFeatures().get(0); |
176 | } | 211 | } |
@@ -180,6 +215,37 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
180 | * <!-- end-user-doc --> | 215 | * <!-- end-user-doc --> |
181 | * @generated | 216 | * @generated |
182 | */ | 217 | */ |
218 | @Override | ||
219 | public EClass getVariableMapping() { | ||
220 | return variableMappingEClass; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * <!-- begin-user-doc --> | ||
225 | * <!-- end-user-doc --> | ||
226 | * @generated | ||
227 | */ | ||
228 | @Override | ||
229 | public EAttribute getVariableMapping_SourcePVariable() { | ||
230 | return (EAttribute)variableMappingEClass.getEStructuralFeatures().get(0); | ||
231 | } | ||
232 | |||
233 | /** | ||
234 | * <!-- begin-user-doc --> | ||
235 | * <!-- end-user-doc --> | ||
236 | * @generated | ||
237 | */ | ||
238 | @Override | ||
239 | public EReference getVariableMapping_TargetLogicVariable() { | ||
240 | return (EReference)variableMappingEClass.getEStructuralFeatures().get(1); | ||
241 | } | ||
242 | |||
243 | /** | ||
244 | * <!-- begin-user-doc --> | ||
245 | * <!-- end-user-doc --> | ||
246 | * @generated | ||
247 | */ | ||
248 | @Override | ||
183 | public Viatra2LogicAnnotationsFactory getViatra2LogicAnnotationsFactory() { | 249 | public Viatra2LogicAnnotationsFactory getViatra2LogicAnnotationsFactory() { |
184 | return (Viatra2LogicAnnotationsFactory)getEFactoryInstance(); | 250 | return (Viatra2LogicAnnotationsFactory)getEFactoryInstance(); |
185 | } | 251 | } |
@@ -206,12 +272,18 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
206 | transfomedViatraQueryEClass = createEClass(TRANSFOMED_VIATRA_QUERY); | 272 | transfomedViatraQueryEClass = createEClass(TRANSFOMED_VIATRA_QUERY); |
207 | createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME); | 273 | createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_FULLY_QUALIFIED_NAME); |
208 | createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY); | 274 | createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__PATTERN_PQUERY); |
275 | createEReference(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__VARIABLE_TRACE); | ||
276 | createEAttribute(transfomedViatraQueryEClass, TRANSFOMED_VIATRA_QUERY__OPTIMIZED_DISJUNCTION); | ||
209 | 277 | ||
210 | transformedViatraWellformednessConstraintEClass = createEClass(TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT); | 278 | transformedViatraWellformednessConstraintEClass = createEClass(TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT); |
211 | createEReference(transformedViatraWellformednessConstraintEClass, TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT__QUERY); | 279 | createEReference(transformedViatraWellformednessConstraintEClass, TRANSFORMED_VIATRA_WELLFORMEDNESS_CONSTRAINT__QUERY); |
212 | 280 | ||
213 | definedByDerivedFeatureEClass = createEClass(DEFINED_BY_DERIVED_FEATURE); | 281 | definedByDerivedFeatureEClass = createEClass(DEFINED_BY_DERIVED_FEATURE); |
214 | createEReference(definedByDerivedFeatureEClass, DEFINED_BY_DERIVED_FEATURE__QUERY); | 282 | createEReference(definedByDerivedFeatureEClass, DEFINED_BY_DERIVED_FEATURE__QUERY); |
283 | |||
284 | variableMappingEClass = createEClass(VARIABLE_MAPPING); | ||
285 | createEAttribute(variableMappingEClass, VARIABLE_MAPPING__SOURCE_PVARIABLE); | ||
286 | createEReference(variableMappingEClass, VARIABLE_MAPPING__TARGET_LOGIC_VARIABLE); | ||
215 | } | 287 | } |
216 | 288 | ||
217 | /** | 289 | /** |
@@ -239,6 +311,7 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
239 | 311 | ||
240 | // Obtain other dependent packages | 312 | // Obtain other dependent packages |
241 | LogicproblemPackage theLogicproblemPackage = (LogicproblemPackage)EPackage.Registry.INSTANCE.getEPackage(LogicproblemPackage.eNS_URI); | 313 | LogicproblemPackage theLogicproblemPackage = (LogicproblemPackage)EPackage.Registry.INSTANCE.getEPackage(LogicproblemPackage.eNS_URI); |
314 | LogiclanguagePackage theLogiclanguagePackage = (LogiclanguagePackage)EPackage.Registry.INSTANCE.getEPackage(LogiclanguagePackage.eNS_URI); | ||
242 | 315 | ||
243 | // Create type parameters | 316 | // Create type parameters |
244 | 317 | ||
@@ -253,6 +326,8 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
253 | initEClass(transfomedViatraQueryEClass, TransfomedViatraQuery.class, "TransfomedViatraQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 326 | initEClass(transfomedViatraQueryEClass, TransfomedViatraQuery.class, "TransfomedViatraQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
254 | initEAttribute(getTransfomedViatraQuery_PatternFullyQualifiedName(), ecorePackage.getEString(), "patternFullyQualifiedName", null, 1, 1, TransfomedViatraQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 327 | initEAttribute(getTransfomedViatraQuery_PatternFullyQualifiedName(), ecorePackage.getEString(), "patternFullyQualifiedName", null, 1, 1, TransfomedViatraQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
255 | initEAttribute(getTransfomedViatraQuery_PatternPQuery(), ecorePackage.getEJavaObject(), "patternPQuery", null, 1, 1, TransfomedViatraQuery.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 328 | initEAttribute(getTransfomedViatraQuery_PatternPQuery(), ecorePackage.getEJavaObject(), "patternPQuery", null, 1, 1, TransfomedViatraQuery.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
329 | initEReference(getTransfomedViatraQuery_VariableTrace(), this.getVariableMapping(), null, "variableTrace", null, 0, -1, TransfomedViatraQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
330 | initEAttribute(getTransfomedViatraQuery_OptimizedDisjunction(), ecorePackage.getEJavaObject(), "optimizedDisjunction", null, 1, 1, TransfomedViatraQuery.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
256 | 331 | ||
257 | initEClass(transformedViatraWellformednessConstraintEClass, TransformedViatraWellformednessConstraint.class, "TransformedViatraWellformednessConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 332 | initEClass(transformedViatraWellformednessConstraintEClass, TransformedViatraWellformednessConstraint.class, "TransformedViatraWellformednessConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
258 | initEReference(getTransformedViatraWellformednessConstraint_Query(), this.getTransfomedViatraQuery(), null, "query", null, 1, 1, TransformedViatraWellformednessConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 333 | initEReference(getTransformedViatraWellformednessConstraint_Query(), this.getTransfomedViatraQuery(), null, "query", null, 1, 1, TransformedViatraWellformednessConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
@@ -260,6 +335,10 @@ public class Viatra2LogicAnnotationsPackageImpl extends EPackageImpl implements | |||
260 | initEClass(definedByDerivedFeatureEClass, DefinedByDerivedFeature.class, "DefinedByDerivedFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | 335 | initEClass(definedByDerivedFeatureEClass, DefinedByDerivedFeature.class, "DefinedByDerivedFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
261 | initEReference(getDefinedByDerivedFeature_Query(), this.getTransfomedViatraQuery(), null, "query", null, 1, 1, DefinedByDerivedFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | 336 | initEReference(getDefinedByDerivedFeature_Query(), this.getTransfomedViatraQuery(), null, "query", null, 1, 1, DefinedByDerivedFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
262 | 337 | ||
338 | initEClass(variableMappingEClass, VariableMapping.class, "VariableMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
339 | initEAttribute(getVariableMapping_SourcePVariable(), ecorePackage.getEJavaObject(), "sourcePVariable", null, 1, 1, VariableMapping.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
340 | initEReference(getVariableMapping_TargetLogicVariable(), theLogiclanguagePackage.getVariable(), null, "targetLogicVariable", null, 1, 1, VariableMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
341 | |||
263 | // Create resource | 342 | // Create resource |
264 | createResource(eNS_URI); | 343 | createResource(eNS_URI); |
265 | } | 344 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsAdapterFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsAdapterFactory.java index 91bbdc9f..f66f480f 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsAdapterFactory.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsAdapterFactory.java | |||
@@ -84,6 +84,10 @@ public class Viatra2LogicAnnotationsAdapterFactory extends AdapterFactoryImpl { | |||
84 | return createDefinedByDerivedFeatureAdapter(); | 84 | return createDefinedByDerivedFeatureAdapter(); |
85 | } | 85 | } |
86 | @Override | 86 | @Override |
87 | public Adapter caseVariableMapping(VariableMapping object) { | ||
88 | return createVariableMappingAdapter(); | ||
89 | } | ||
90 | @Override | ||
87 | public Adapter caseAnnotation(Annotation object) { | 91 | public Adapter caseAnnotation(Annotation object) { |
88 | return createAnnotationAdapter(); | 92 | return createAnnotationAdapter(); |
89 | } | 93 | } |
@@ -158,6 +162,20 @@ public class Viatra2LogicAnnotationsAdapterFactory extends AdapterFactoryImpl { | |||
158 | } | 162 | } |
159 | 163 | ||
160 | /** | 164 | /** |
165 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping <em>Variable Mapping</em>}'. | ||
166 | * <!-- begin-user-doc --> | ||
167 | * This default implementation returns null so that we can easily ignore cases; | ||
168 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
169 | * <!-- end-user-doc --> | ||
170 | * @return the new adapter. | ||
171 | * @see hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.VariableMapping | ||
172 | * @generated | ||
173 | */ | ||
174 | public Adapter createVariableMappingAdapter() { | ||
175 | return null; | ||
176 | } | ||
177 | |||
178 | /** | ||
161 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation <em>Annotation</em>}'. | 179 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation <em>Annotation</em>}'. |
162 | * <!-- begin-user-doc --> | 180 | * <!-- begin-user-doc --> |
163 | * This default implementation returns null so that we can easily ignore cases; | 181 | * This default implementation returns null so that we can easily ignore cases; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsSwitch.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsSwitch.java index 09288a62..72b2fc4c 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsSwitch.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/viatra2logic/viatra2logicannotations/util/Viatra2LogicAnnotationsSwitch.java | |||
@@ -94,6 +94,12 @@ public class Viatra2LogicAnnotationsSwitch<T> extends Switch<T> { | |||
94 | if (result == null) result = defaultCase(theEObject); | 94 | if (result == null) result = defaultCase(theEObject); |
95 | return result; | 95 | return result; |
96 | } | 96 | } |
97 | case Viatra2LogicAnnotationsPackage.VARIABLE_MAPPING: { | ||
98 | VariableMapping variableMapping = (VariableMapping)theEObject; | ||
99 | T result = caseVariableMapping(variableMapping); | ||
100 | if (result == null) result = defaultCase(theEObject); | ||
101 | return result; | ||
102 | } | ||
97 | default: return defaultCase(theEObject); | 103 | default: return defaultCase(theEObject); |
98 | } | 104 | } |
99 | } | 105 | } |
@@ -144,6 +150,21 @@ public class Viatra2LogicAnnotationsSwitch<T> extends Switch<T> { | |||
144 | } | 150 | } |
145 | 151 | ||
146 | /** | 152 | /** |
153 | * Returns the result of interpreting the object as an instance of '<em>Variable Mapping</em>'. | ||
154 | * <!-- begin-user-doc --> | ||
155 | * This implementation returns null; | ||
156 | * returning a non-null result will terminate the switch. | ||
157 | * <!-- end-user-doc --> | ||
158 | * @param object the target of the switch. | ||
159 | * @return the result of interpreting the object as an instance of '<em>Variable Mapping</em>'. | ||
160 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
161 | * @generated | ||
162 | */ | ||
163 | public T caseVariableMapping(VariableMapping object) { | ||
164 | return null; | ||
165 | } | ||
166 | |||
167 | /** | ||
147 | * Returns the result of interpreting the object as an instance of '<em>Annotation</em>'. | 168 | * Returns the result of interpreting the object as an instance of '<em>Annotation</em>'. |
148 | * <!-- begin-user-doc --> | 169 | * <!-- begin-user-doc --> |
149 | * This implementation returns null; | 170 | * This implementation returns null; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/lib/.gitignore b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/lib/.gitignore new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/lib/.gitignore | |||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird index 1af6ebf0..b6bc57b7 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.aird | |||
@@ -1,30 +1,30 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> | 2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> |
3 | <viewpoint:DAnalysis xmi:id="_hKMI0LzSEeaj7tVusjQpHg" selectedViews="_hMdZsLzSEeaj7tVusjQpHg _hMvGgLzSEeaj7tVusjQpHg _hM760LzSEeaj7tVusjQpHg _hNNAkLzSEeaj7tVusjQpHg" version="11.1.0.201608251200"> | 3 | <viewpoint:DAnalysis uid="_hKMI0LzSEeaj7tVusjQpHg" selectedViews="_hMdZsLzSEeaj7tVusjQpHg _hMvGgLzSEeaj7tVusjQpHg _hM760LzSEeaj7tVusjQpHg _hNNAkLzSEeaj7tVusjQpHg" version="14.1.0.201810161215"> |
4 | <semanticResources>ViatraModelAnnotations.ecore</semanticResources> | 4 | <semanticResources>ViatraModelAnnotations.ecore</semanticResources> |
5 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore</semanticResources> | 5 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore</semanticResources> |
6 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore</semanticResources> | 6 | <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore</semanticResources> |
7 | <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources> | 7 | <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources> |
8 | <ownedViews xmi:type="viewpoint:DView" xmi:id="_hMdZsLzSEeaj7tVusjQpHg"> | 8 | <ownedViews xmi:type="viewpoint:DView" uid="_hMdZsLzSEeaj7tVusjQpHg"> |
9 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | 9 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> |
10 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_HjHhMBfyEeiKzNmzswRwjA" name="viatra2logicannotations class diagram" representation="_h6EtoLzSEeaj7tVusjQpHg"> | 10 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_HjHhMBfyEeiKzNmzswRwjA" name="viatra2logicannotations class diagram" repPath="#_h6EtoLzSEeaj7tVusjQpHg"> |
11 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 11 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
12 | <target xmi:type="ecore:EPackage" href="ViatraModelAnnotations.ecore#/"/> | 12 | <target xmi:type="ecore:EPackage" href="ViatraModelAnnotations.ecore#/"/> |
13 | </ownedRepresentationDescriptors> | 13 | </ownedRepresentationDescriptors> |
14 | </ownedViews> | 14 | </ownedViews> |
15 | <ownedViews xmi:type="viewpoint:DView" xmi:id="_hMvGgLzSEeaj7tVusjQpHg"> | 15 | <ownedViews xmi:type="viewpoint:DView" uid="_hMvGgLzSEeaj7tVusjQpHg"> |
16 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> | 16 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> |
17 | </ownedViews> | 17 | </ownedViews> |
18 | <ownedViews xmi:type="viewpoint:DView" xmi:id="_hM760LzSEeaj7tVusjQpHg"> | 18 | <ownedViews xmi:type="viewpoint:DView" uid="_hM760LzSEeaj7tVusjQpHg"> |
19 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> | 19 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> |
20 | </ownedViews> | 20 | </ownedViews> |
21 | <ownedViews xmi:type="viewpoint:DView" xmi:id="_hNNAkLzSEeaj7tVusjQpHg"> | 21 | <ownedViews xmi:type="viewpoint:DView" uid="_hNNAkLzSEeaj7tVusjQpHg"> |
22 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/> | 22 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/> |
23 | </ownedViews> | 23 | </ownedViews> |
24 | </viewpoint:DAnalysis> | 24 | </viewpoint:DAnalysis> |
25 | <diagram:DSemanticDiagram xmi:id="_h6EtoLzSEeaj7tVusjQpHg" name="viatra2logicannotations class diagram"> | 25 | <diagram:DSemanticDiagram uid="_h6EtoLzSEeaj7tVusjQpHg" name="viatra2logicannotations class diagram"> |
26 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_h6EtobzSEeaj7tVusjQpHg" source="DANNOTATION_CUSTOMIZATION_KEY"> | 26 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_h6EtobzSEeaj7tVusjQpHg" source="DANNOTATION_CUSTOMIZATION_KEY"> |
27 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_h6EtorzSEeaj7tVusjQpHg"> | 27 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_h6EtorzSEeaj7tVusjQpHg"> |
28 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan"> | 28 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan"> |
29 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 29 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
30 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_JijTsbzTEeaj7tVusjQpHg" showIcon="false" labelExpression="service:render"> | 30 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_JijTsbzTEeaj7tVusjQpHg" showIcon="false" labelExpression="service:render"> |
@@ -47,9 +47,18 @@ | |||
47 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | 47 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> |
48 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> | 48 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> |
49 | </computedStyleDescriptions> | 49 | </computedStyleDescriptions> |
50 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_k8aWcH8uEeq2t8kgC8VWrg" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
51 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
52 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_k8aWcX8uEeq2t8kgC8VWrg" showIcon="false" labelExpression="service:render"> | ||
53 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
54 | </centerLabelStyleDescription> | ||
55 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_k8aWcn8uEeq2t8kgC8VWrg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
56 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
57 | </endLabelStyleDescription> | ||
58 | </computedStyleDescriptions> | ||
50 | </data> | 59 | </data> |
51 | </ownedAnnotationEntries> | 60 | </ownedAnnotationEntries> |
52 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_h6IYALzSEeaj7tVusjQpHg" source="GMF_DIAGRAMS"> | 61 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_h6IYALzSEeaj7tVusjQpHg" source="GMF_DIAGRAMS"> |
53 | <data xmi:type="notation:Diagram" xmi:id="_h6IYAbzSEeaj7tVusjQpHg" type="Sirius" element="_h6EtoLzSEeaj7tVusjQpHg" measurementUnit="Pixel"> | 62 | <data xmi:type="notation:Diagram" xmi:id="_h6IYAbzSEeaj7tVusjQpHg" type="Sirius" element="_h6EtoLzSEeaj7tVusjQpHg" measurementUnit="Pixel"> |
54 | <children xmi:type="notation:Node" xmi:id="_8vuhcLzSEeaj7tVusjQpHg" type="2003" element="_8vqQALzSEeaj7tVusjQpHg"> | 63 | <children xmi:type="notation:Node" xmi:id="_8vuhcLzSEeaj7tVusjQpHg" type="2003" element="_8vqQALzSEeaj7tVusjQpHg"> |
55 | <children xmi:type="notation:Node" xmi:id="_8vuhc7zSEeaj7tVusjQpHg" type="5007"/> | 64 | <children xmi:type="notation:Node" xmi:id="_8vuhc7zSEeaj7tVusjQpHg" type="5007"/> |
@@ -62,11 +71,15 @@ | |||
62 | <styles xmi:type="notation:FontStyle" xmi:id="_NFBDgRfyEeiKzNmzswRwjA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | 71 | <styles xmi:type="notation:FontStyle" xmi:id="_NFBDgRfyEeiKzNmzswRwjA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> |
63 | <layoutConstraint xmi:type="notation:Location" xmi:id="_NFBDghfyEeiKzNmzswRwjA"/> | 72 | <layoutConstraint xmi:type="notation:Location" xmi:id="_NFBDghfyEeiKzNmzswRwjA"/> |
64 | </children> | 73 | </children> |
74 | <children xmi:type="notation:Node" xmi:id="_QQ2LII_pEeqlOMjO9MPV6g" type="3010" element="_QQIZcI_pEeqlOMjO9MPV6g"> | ||
75 | <styles xmi:type="notation:FontStyle" xmi:id="_QQ2LIY_pEeqlOMjO9MPV6g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
76 | <layoutConstraint xmi:type="notation:Location" xmi:id="_QQ2LIo_pEeqlOMjO9MPV6g"/> | ||
77 | </children> | ||
65 | <styles xmi:type="notation:SortingStyle" xmi:id="_8vuhdbzSEeaj7tVusjQpHg"/> | 78 | <styles xmi:type="notation:SortingStyle" xmi:id="_8vuhdbzSEeaj7tVusjQpHg"/> |
66 | <styles xmi:type="notation:FilteringStyle" xmi:id="_8vuhdrzSEeaj7tVusjQpHg"/> | 79 | <styles xmi:type="notation:FilteringStyle" xmi:id="_8vuhdrzSEeaj7tVusjQpHg"/> |
67 | </children> | 80 | </children> |
68 | <styles xmi:type="notation:ShapeStyle" xmi:id="_8vuhcbzSEeaj7tVusjQpHg" fontName="Segoe UI" fontHeight="8"/> | 81 | <styles xmi:type="notation:ShapeStyle" xmi:id="_8vuhcbzSEeaj7tVusjQpHg" fontName="Segoe UI" fontHeight="8"/> |
69 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8vuhcrzSEeaj7tVusjQpHg" x="5" y="390" width="228" height="68"/> | 82 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8vuhcrzSEeaj7tVusjQpHg" x="5" y="390" width="228" height="81"/> |
70 | </children> | 83 | </children> |
71 | <children xmi:type="notation:Node" xmi:id="_Ci29sLzTEeaj7tVusjQpHg" type="2003" element="_Ciz6YLzTEeaj7tVusjQpHg"> | 84 | <children xmi:type="notation:Node" xmi:id="_Ci29sLzTEeaj7tVusjQpHg" type="2003" element="_Ciz6YLzTEeaj7tVusjQpHg"> |
72 | <children xmi:type="notation:Node" xmi:id="_Ci29s7zTEeaj7tVusjQpHg" type="5007"/> | 85 | <children xmi:type="notation:Node" xmi:id="_Ci29s7zTEeaj7tVusjQpHg" type="5007"/> |
@@ -121,6 +134,32 @@ | |||
121 | <styles xmi:type="notation:ShapeStyle" xmi:id="_7hZUIfObEeauOJk-5mBnBg" fontName="Segoe UI" fontHeight="8"/> | 134 | <styles xmi:type="notation:ShapeStyle" xmi:id="_7hZUIfObEeauOJk-5mBnBg" fontName="Segoe UI" fontHeight="8"/> |
122 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7hZUIvObEeauOJk-5mBnBg" x="245" y="390" width="263" height="53"/> | 135 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7hZUIvObEeauOJk-5mBnBg" x="245" y="390" width="263" height="53"/> |
123 | </children> | 136 | </children> |
137 | <children xmi:type="notation:Node" xmi:id="_hAwZMH8uEeq2t8kgC8VWrg" type="2003" element="_hAAyUH8uEeq2t8kgC8VWrg"> | ||
138 | <children xmi:type="notation:Node" xmi:id="_hA7YUH8uEeq2t8kgC8VWrg" type="5007"/> | ||
139 | <children xmi:type="notation:Node" xmi:id="_hA7_YH8uEeq2t8kgC8VWrg" type="7004"> | ||
140 | <children xmi:type="notation:Node" xmi:id="_qqHgIH8uEeq2t8kgC8VWrg" type="3010" element="_qpvFoH8uEeq2t8kgC8VWrg"> | ||
141 | <styles xmi:type="notation:FontStyle" xmi:id="_qqHgIX8uEeq2t8kgC8VWrg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
142 | <layoutConstraint xmi:type="notation:Location" xmi:id="_qqHgIn8uEeq2t8kgC8VWrg"/> | ||
143 | </children> | ||
144 | <styles xmi:type="notation:SortingStyle" xmi:id="_hA7_YX8uEeq2t8kgC8VWrg"/> | ||
145 | <styles xmi:type="notation:FilteringStyle" xmi:id="_hA7_Yn8uEeq2t8kgC8VWrg"/> | ||
146 | </children> | ||
147 | <styles xmi:type="notation:ShapeStyle" xmi:id="_hAwZMX8uEeq2t8kgC8VWrg" fontName="Segoe UI" fontHeight="8"/> | ||
148 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAwZMn8uEeq2t8kgC8VWrg" x="-24" y="528" width="120" height="100"/> | ||
149 | </children> | ||
150 | <children xmi:type="notation:Node" xmi:id="_VjcL4H8vEeq2t8kgC8VWrg" type="2003" element="_VjIp4H8vEeq2t8kgC8VWrg"> | ||
151 | <children xmi:type="notation:Node" xmi:id="_Vjcy8H8vEeq2t8kgC8VWrg" type="5007"/> | ||
152 | <children xmi:type="notation:Node" xmi:id="_Vjcy8X8vEeq2t8kgC8VWrg" type="7004"> | ||
153 | <children xmi:type="notation:Node" xmi:id="_VjeBEH8vEeq2t8kgC8VWrg" type="3010" element="_VjP-oX8vEeq2t8kgC8VWrg"> | ||
154 | <styles xmi:type="notation:FontStyle" xmi:id="_VjeBEX8vEeq2t8kgC8VWrg" fontName="Segoe UI" fontHeight="8" bold="true"/> | ||
155 | <layoutConstraint xmi:type="notation:Location" xmi:id="_VjeBEn8vEeq2t8kgC8VWrg"/> | ||
156 | </children> | ||
157 | <styles xmi:type="notation:SortingStyle" xmi:id="_Vjcy8n8vEeq2t8kgC8VWrg"/> | ||
158 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Vjcy838vEeq2t8kgC8VWrg"/> | ||
159 | </children> | ||
160 | <styles xmi:type="notation:ShapeStyle" xmi:id="_VjcL4X8vEeq2t8kgC8VWrg" fontName="Segoe UI" fontHeight="8"/> | ||
161 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VjcL4n8vEeq2t8kgC8VWrg" x="-24" y="672"/> | ||
162 | </children> | ||
124 | <styles xmi:type="notation:DiagramStyle" xmi:id="_h6IYArzSEeaj7tVusjQpHg"/> | 163 | <styles xmi:type="notation:DiagramStyle" xmi:id="_h6IYArzSEeaj7tVusjQpHg"/> |
125 | <edges xmi:type="notation:Edge" xmi:id="_HcowELzTEeaj7tVusjQpHg" type="4001" element="_HcjQgLzTEeaj7tVusjQpHg" source="_Ci29sLzTEeaj7tVusjQpHg" target="_8vuhcLzSEeaj7tVusjQpHg"> | 164 | <edges xmi:type="notation:Edge" xmi:id="_HcowELzTEeaj7tVusjQpHg" type="4001" element="_HcjQgLzTEeaj7tVusjQpHg" source="_Ci29sLzTEeaj7tVusjQpHg" target="_8vuhcLzSEeaj7tVusjQpHg"> |
126 | <children xmi:type="notation:Node" xmi:id="_HcowFLzTEeaj7tVusjQpHg" type="6001"> | 165 | <children xmi:type="notation:Node" xmi:id="_HcowFLzTEeaj7tVusjQpHg" type="6001"> |
@@ -136,7 +175,7 @@ | |||
136 | <styles xmi:type="notation:FontStyle" xmi:id="_HcowErzTEeaj7tVusjQpHg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | 175 | <styles xmi:type="notation:FontStyle" xmi:id="_HcowErzTEeaj7tVusjQpHg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> |
137 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcowE7zTEeaj7tVusjQpHg" points="[131, 21, 420, 26]$[131, 150, 420, 155]$[-401, 150, -112, 155]$[-401, 26, -112, 31]"/> | 176 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcowE7zTEeaj7tVusjQpHg" points="[131, 21, 420, 26]$[131, 150, 420, 155]$[-401, 150, -112, 155]$[-401, 26, -112, 31]"/> |
138 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HcpXILzTEeaj7tVusjQpHg" id="(0.0,0.49019607843137253)"/> | 177 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HcpXILzTEeaj7tVusjQpHg" id="(0.0,0.49019607843137253)"/> |
139 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HcpXIbzTEeaj7tVusjQpHg" id="(1.0,0.30303030303030304)"/> | 178 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HcpXIbzTEeaj7tVusjQpHg" id="(1.0,0.25316455696202533)"/> |
140 | </edges> | 179 | </edges> |
141 | <edges xmi:type="notation:Edge" xmi:id="_hotbZLzTEeaj7tVusjQpHg" type="4001" element="_hormMLzTEeaj7tVusjQpHg" source="_8vuhcLzSEeaj7tVusjQpHg" target="_hos0ULzTEeaj7tVusjQpHg"> | 180 | <edges xmi:type="notation:Edge" xmi:id="_hotbZLzTEeaj7tVusjQpHg" type="4001" element="_hormMLzTEeaj7tVusjQpHg" source="_8vuhcLzSEeaj7tVusjQpHg" target="_hos0ULzTEeaj7tVusjQpHg"> |
142 | <children xmi:type="notation:Node" xmi:id="_houCcLzTEeaj7tVusjQpHg" type="6001"> | 181 | <children xmi:type="notation:Node" xmi:id="_houCcLzTEeaj7tVusjQpHg" type="6001"> |
@@ -151,7 +190,7 @@ | |||
151 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hotbZbzTEeaj7tVusjQpHg" routing="Tree"/> | 190 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hotbZbzTEeaj7tVusjQpHg" routing="Tree"/> |
152 | <styles xmi:type="notation:FontStyle" xmi:id="_hotbZrzTEeaj7tVusjQpHg" fontName="Segoe UI" fontHeight="8"/> | 191 | <styles xmi:type="notation:FontStyle" xmi:id="_hotbZrzTEeaj7tVusjQpHg" fontName="Segoe UI" fontHeight="8"/> |
153 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hotbZ7zTEeaj7tVusjQpHg" points="[115, 240, 115, 240]$[0, 0, 0, 0]"/> | 192 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hotbZ7zTEeaj7tVusjQpHg" points="[115, 240, 115, 240]$[0, 0, 0, 0]"/> |
154 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_howesLzTEeaj7tVusjQpHg" id="(0.6769911504424779,0.3033826638477801)"/> | 193 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_howesLzTEeaj7tVusjQpHg" id="(0.6769911504424779,0.2534589343538416)"/> |
155 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_howesbzTEeaj7tVusjQpHg" id="(0.5,2.3333333333333335)"/> | 194 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_howesbzTEeaj7tVusjQpHg" id="(0.5,2.3333333333333335)"/> |
156 | </edges> | 195 | </edges> |
157 | <edges xmi:type="notation:Edge" xmi:id="_kYdmMLzTEeaj7tVusjQpHg" type="4001" element="_kYbxALzTEeaj7tVusjQpHg" source="_hos0ULzTEeaj7tVusjQpHg" target="_kYcYELzTEeaj7tVusjQpHg"> | 196 | <edges xmi:type="notation:Edge" xmi:id="_kYdmMLzTEeaj7tVusjQpHg" type="4001" element="_kYbxALzTEeaj7tVusjQpHg" source="_hos0ULzTEeaj7tVusjQpHg" target="_kYcYELzTEeaj7tVusjQpHg"> |
@@ -232,207 +271,312 @@ | |||
232 | <styles xmi:type="notation:FontStyle" xmi:id="_fhjIovOcEeauOJk-5mBnBg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | 271 | <styles xmi:type="notation:FontStyle" xmi:id="_fhjIovOcEeauOJk-5mBnBg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> |
233 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fhjIo_OcEeauOJk-5mBnBg" points="[131, 26, 145, 26]$[131, 80, 145, 80]$[-110, 80, -96, 80]$[-110, 26, -96, 26]"/> | 272 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fhjIo_OcEeauOJk-5mBnBg" points="[131, 26, 145, 26]$[131, 80, 145, 80]$[-110, 80, -96, 80]$[-110, 26, -96, 26]"/> |
234 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fhjvtvOcEeauOJk-5mBnBg" id="(0.0,0.49019607843137253)"/> | 273 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fhjvtvOcEeauOJk-5mBnBg" id="(0.0,0.49019607843137253)"/> |
235 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fhjvt_OcEeauOJk-5mBnBg" id="(1.0,0.3787878787878788)"/> | 274 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fhjvt_OcEeauOJk-5mBnBg" id="(1.0,0.31645569620253167)"/> |
275 | </edges> | ||
276 | <edges xmi:type="notation:Edge" xmi:id="_k843kH8uEeq2t8kgC8VWrg" type="4001" element="_k8ZvYH8uEeq2t8kgC8VWrg" source="_8vuhcLzSEeaj7tVusjQpHg" target="_hAwZMH8uEeq2t8kgC8VWrg"> | ||
277 | <children xmi:type="notation:Node" xmi:id="_k87T0H8uEeq2t8kgC8VWrg" type="6001"> | ||
278 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k87T0X8uEeq2t8kgC8VWrg" x="-6" y="61"/> | ||
279 | </children> | ||
280 | <children xmi:type="notation:Node" xmi:id="_k89JAH8uEeq2t8kgC8VWrg" type="6002"> | ||
281 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k89JAX8uEeq2t8kgC8VWrg" y="10"/> | ||
282 | </children> | ||
283 | <children xmi:type="notation:Node" xmi:id="_k89wEH8uEeq2t8kgC8VWrg" type="6003"> | ||
284 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k89wEX8uEeq2t8kgC8VWrg" y="10"/> | ||
285 | </children> | ||
286 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_k843kX8uEeq2t8kgC8VWrg" routing="Rectilinear"/> | ||
287 | <styles xmi:type="notation:FontStyle" xmi:id="_k843kn8uEeq2t8kgC8VWrg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
288 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k843k38uEeq2t8kgC8VWrg" points="[0, 0, 0, -72]$[0, 72, 0, 0]"/> | ||
289 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k8_lQH8uEeq2t8kgC8VWrg" id="(0.13274336283185842,0.8354430379746836)"/> | ||
290 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k8_lQX8uEeq2t8kgC8VWrg" id="(0.5,0.0)"/> | ||
291 | </edges> | ||
292 | <edges xmi:type="notation:Edge" xmi:id="_XY6fwH8vEeq2t8kgC8VWrg" type="4001" element="_XYlIkH8vEeq2t8kgC8VWrg" source="_hAwZMH8uEeq2t8kgC8VWrg" target="_VjcL4H8vEeq2t8kgC8VWrg"> | ||
293 | <children xmi:type="notation:Node" xmi:id="_XY7G0H8vEeq2t8kgC8VWrg" type="6001"> | ||
294 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XY7G0X8vEeq2t8kgC8VWrg" x="5" y="38"/> | ||
295 | </children> | ||
296 | <children xmi:type="notation:Node" xmi:id="_XY7G0n8vEeq2t8kgC8VWrg" type="6002"> | ||
297 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XY7G038vEeq2t8kgC8VWrg" y="10"/> | ||
298 | </children> | ||
299 | <children xmi:type="notation:Node" xmi:id="_XY8U8H8vEeq2t8kgC8VWrg" type="6003"> | ||
300 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XY8U8X8vEeq2t8kgC8VWrg" y="10"/> | ||
301 | </children> | ||
302 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_XY6fwX8vEeq2t8kgC8VWrg" routing="Rectilinear"/> | ||
303 | <styles xmi:type="notation:FontStyle" xmi:id="_XY6fwn8vEeq2t8kgC8VWrg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
304 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XY6fw38vEeq2t8kgC8VWrg" points="[0, 0, 0, -46]$[0, 46, 0, 0]"/> | ||
305 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XY88AH8vEeq2t8kgC8VWrg" id="(0.8135593220338984,1.0)"/> | ||
306 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XY88AX8vEeq2t8kgC8VWrg" id="(0.6530612244897959,0.0)"/> | ||
236 | </edges> | 307 | </edges> |
237 | </data> | 308 | </data> |
238 | </ownedAnnotationEntries> | 309 | </ownedAnnotationEntries> |
239 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_8vqQALzSEeaj7tVusjQpHg" name="TransfomedViatraQuery" tooltipText="" outgoingEdges="_hormMLzTEeaj7tVusjQpHg" incomingEdges="_HcjQgLzTEeaj7tVusjQpHg _fhW7YPOcEeauOJk-5mBnBg" width="12" height="10"> | 310 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8vqQALzSEeaj7tVusjQpHg" name="TransfomedViatraQuery" tooltipText="" outgoingEdges="_hormMLzTEeaj7tVusjQpHg _k8ZvYH8uEeq2t8kgC8VWrg" incomingEdges="_HcjQgLzTEeaj7tVusjQpHg _fhW7YPOcEeauOJk-5mBnBg" width="12" height="10"> |
240 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> | 311 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> |
241 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> | 312 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> |
242 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 313 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
243 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 314 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
244 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 315 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
245 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Sxe3EBfyEeiKzNmzswRwjA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 316 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YFdW8Y_pEeqlOMjO9MPV6g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
246 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 317 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
247 | </ownedStyle> | 318 | </ownedStyle> |
248 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 319 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
249 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_4Dt3gL2REeaj7tVusjQpHg" name="patternFullyQualifiedName : EString" tooltipText=""> | 320 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_4Dt3gL2REeaj7tVusjQpHg" name="patternFullyQualifiedName : EString" tooltipText=""> |
250 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternFullyQualifiedName"/> | 321 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternFullyQualifiedName"/> |
251 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternFullyQualifiedName"/> | 322 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternFullyQualifiedName"/> |
252 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="__q-j0b2REeaj7tVusjQpHg" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> | 323 | <ownedStyle xmi:type="diagram:BundledImage" uid="__q-j0b2REeaj7tVusjQpHg" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> |
253 | <labelFormat>bold</labelFormat> | 324 | <labelFormat>bold</labelFormat> |
254 | </ownedStyle> | 325 | </ownedStyle> |
255 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | 326 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
256 | </ownedElements> | 327 | </ownedElements> |
257 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NEcbwBfyEeiKzNmzswRwjA" name="patternPQuery : EJavaObject" tooltipText=""> | 328 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_NEcbwBfyEeiKzNmzswRwjA" name="patternPQuery : EJavaObject" tooltipText=""> |
258 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternPQuery"/> | 329 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternPQuery"/> |
259 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternPQuery"/> | 330 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternPQuery"/> |
260 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_c0t2kBfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> | 331 | <ownedStyle xmi:type="diagram:BundledImage" uid="_c0t2kBfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> |
332 | <labelFormat>bold</labelFormat> | ||
333 | </ownedStyle> | ||
334 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
335 | </ownedElements> | ||
336 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_QQIZcI_pEeqlOMjO9MPV6g" name="optimizedDisjunction : EJavaObject" tooltipText=""> | ||
337 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/optimizedDisjunction"/> | ||
338 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/optimizedDisjunction"/> | ||
339 | <ownedStyle xmi:type="diagram:BundledImage" uid="_YFoWEY_pEeqlOMjO9MPV6g" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> | ||
261 | <labelFormat>bold</labelFormat> | 340 | <labelFormat>bold</labelFormat> |
262 | </ownedStyle> | 341 | </ownedStyle> |
263 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | 342 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> |
264 | </ownedElements> | 343 | </ownedElements> |
265 | </ownedDiagramElements> | 344 | </ownedDiagramElements> |
266 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_Ciz6YLzTEeaj7tVusjQpHg" name="TransformedViatraWellformednessConstraint" tooltipText="" outgoingEdges="_HcjQgLzTEeaj7tVusjQpHg _rIFf4LzTEeaj7tVusjQpHg" width="12" height="10"> | 345 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ciz6YLzTEeaj7tVusjQpHg" name="TransformedViatraWellformednessConstraint" tooltipText="" outgoingEdges="_HcjQgLzTEeaj7tVusjQpHg _rIFf4LzTEeaj7tVusjQpHg" width="12" height="10"> |
267 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> | 346 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> |
268 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> | 347 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> |
269 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 348 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
270 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 349 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
271 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 350 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
272 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Ci0hcLzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 351 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Ci0hcLzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
273 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 352 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
274 | </ownedStyle> | 353 | </ownedStyle> |
275 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 354 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
276 | </ownedDiagramElements> | 355 | </ownedDiagramElements> |
277 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HcjQgLzTEeaj7tVusjQpHg" name="[1..1] query" sourceNode="_Ciz6YLzTEeaj7tVusjQpHg" targetNode="_8vqQALzSEeaj7tVusjQpHg"> | 356 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HcjQgLzTEeaj7tVusjQpHg" name="[1..1] query" sourceNode="_Ciz6YLzTEeaj7tVusjQpHg" targetNode="_8vqQALzSEeaj7tVusjQpHg"> |
278 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> | 357 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> |
279 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> | 358 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> |
280 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_JijTs7zTEeaj7tVusjQpHg" description="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan" strokeColor="0,0,0"> | 359 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JijTs7zTEeaj7tVusjQpHg" description="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan" strokeColor="0,0,0"> |
281 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_JijTtLzTEeaj7tVusjQpHg" showIcon="false"> | 360 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_JijTtLzTEeaj7tVusjQpHg" showIcon="false"> |
282 | <labelFormat>bold</labelFormat> | 361 | <labelFormat>bold</labelFormat> |
283 | </centerLabelStyle> | 362 | </centerLabelStyle> |
284 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_JijTtbzTEeaj7tVusjQpHg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | 363 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_JijTtbzTEeaj7tVusjQpHg" labelSize="6" showIcon="false" labelColor="39,76,114"/> |
285 | </ownedStyle> | 364 | </ownedStyle> |
286 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 365 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
287 | </ownedDiagramElements> | 366 | </ownedDiagramElements> |
288 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_hon70LzTEeaj7tVusjQpHg" name="RelationAnnotation" tooltipText="" outgoingEdges="_kYbxALzTEeaj7tVusjQpHg" incomingEdges="_hormMLzTEeaj7tVusjQpHg _Fff8APOcEeauOJk-5mBnBg" width="12" height="10"> | 367 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hon70LzTEeaj7tVusjQpHg" name="RelationAnnotation" tooltipText="" outgoingEdges="_kYbxALzTEeaj7tVusjQpHg" incomingEdges="_hormMLzTEeaj7tVusjQpHg _Fff8APOcEeauOJk-5mBnBg" width="12" height="10"> |
289 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> | 368 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> |
290 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> | 369 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> |
291 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_hoq_ILzTEeaj7tVusjQpHg"> | 370 | <decorations xmi:type="viewpoint:Decoration" uid="_hoq_ILzTEeaj7tVusjQpHg"> |
292 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 371 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> |
293 | </decorations> | 372 | </decorations> |
294 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 373 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
295 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 374 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
296 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 375 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
297 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_hon70bzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 376 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_hon70bzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
298 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 377 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
299 | </ownedStyle> | 378 | </ownedStyle> |
300 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 379 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
301 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_JMX-ABfyEeiKzNmzswRwjA" name=" target : Relation" tooltipText=""> | 380 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_JMX-ABfyEeiKzNmzswRwjA" name=" target : Relation" tooltipText=""> |
302 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation/target"/> | 381 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation/target"/> |
303 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation/target"/> | 382 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation/target"/> |
304 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_JMhH8BfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="_JMersBfyEeiKzNmzswRwjA" color="114,159,207"> | 383 | <ownedStyle xmi:type="diagram:BundledImage" uid="_JMhH8BfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="_JMersBfyEeiKzNmzswRwjA" color="114,159,207"> |
305 | <labelFormat>bold</labelFormat> | 384 | <labelFormat>bold</labelFormat> |
306 | </ownedStyle> | 385 | </ownedStyle> |
307 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> | 386 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> |
308 | </ownedElements> | 387 | </ownedElements> |
309 | </ownedDiagramElements> | 388 | </ownedDiagramElements> |
310 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_hormMLzTEeaj7tVusjQpHg" sourceNode="_8vqQALzSEeaj7tVusjQpHg" targetNode="_hon70LzTEeaj7tVusjQpHg"> | 389 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_hormMLzTEeaj7tVusjQpHg" sourceNode="_8vqQALzSEeaj7tVusjQpHg" targetNode="_hon70LzTEeaj7tVusjQpHg"> |
311 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> | 390 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> |
312 | <semanticElements xmi:type="ecore:EGenericType" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/@eGenericSuperTypes.0"/> | 391 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> |
313 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_SxrrYBfyEeiKzNmzswRwjA" targetArrow="InputClosedArrow" routingStyle="tree"> | 392 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YFyHEI_pEeqlOMjO9MPV6g" targetArrow="InputClosedArrow" routingStyle="tree"> |
314 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 393 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
315 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_SxrrYRfyEeiKzNmzswRwjA" showIcon="false"> | 394 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YFyHEY_pEeqlOMjO9MPV6g" showIcon="false"> |
316 | <labelFormat>italic</labelFormat> | 395 | <labelFormat>italic</labelFormat> |
317 | </beginLabelStyle> | 396 | </beginLabelStyle> |
318 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_SxrrYhfyEeiKzNmzswRwjA" showIcon="false"/> | 397 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YFyHEo_pEeqlOMjO9MPV6g" showIcon="false"/> |
319 | </ownedStyle> | 398 | </ownedStyle> |
320 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 399 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
321 | </ownedDiagramElements> | 400 | </ownedDiagramElements> |
322 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_kYYGoLzTEeaj7tVusjQpHg" name="Annotation" tooltipText="" incomingEdges="_kYbxALzTEeaj7tVusjQpHg _pqp4kLzTEeaj7tVusjQpHg" width="12" height="10"> | 401 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_kYYGoLzTEeaj7tVusjQpHg" name="Annotation" tooltipText="" incomingEdges="_kYbxALzTEeaj7tVusjQpHg _pqp4kLzTEeaj7tVusjQpHg" width="12" height="10"> |
323 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | 402 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> |
324 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> | 403 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/> |
325 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_kYai4LzTEeaj7tVusjQpHg"> | 404 | <decorations xmi:type="viewpoint:Decoration" uid="_kYai4LzTEeaj7tVusjQpHg"> |
326 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 405 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> |
327 | </decorations> | 406 | </decorations> |
328 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 407 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
329 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 408 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
330 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 409 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
331 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_kYYGobzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 410 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kYYGobzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
332 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 411 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
333 | </ownedStyle> | 412 | </ownedStyle> |
334 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 413 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
335 | </ownedDiagramElements> | 414 | </ownedDiagramElements> |
336 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_kYbxALzTEeaj7tVusjQpHg" sourceNode="_hon70LzTEeaj7tVusjQpHg" targetNode="_kYYGoLzTEeaj7tVusjQpHg"> | 415 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_kYbxALzTEeaj7tVusjQpHg" sourceNode="_hon70LzTEeaj7tVusjQpHg" targetNode="_kYYGoLzTEeaj7tVusjQpHg"> |
337 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> | 416 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> |
338 | <semanticElements xmi:type="ecore:EGenericType" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation/@eGenericSuperTypes.0"/> | 417 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"/> |
339 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_rIE40LzTEeaj7tVusjQpHg"> | 418 | <decorations xmi:type="viewpoint:Decoration" uid="_rIE40LzTEeaj7tVusjQpHg"> |
340 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 419 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> |
341 | </decorations> | 420 | </decorations> |
342 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_kYbxAbzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> | 421 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_kYbxAbzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> |
343 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 422 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
344 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_kYbxArzTEeaj7tVusjQpHg" showIcon="false"> | 423 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_kYbxArzTEeaj7tVusjQpHg" showIcon="false"> |
345 | <labelFormat>italic</labelFormat> | 424 | <labelFormat>italic</labelFormat> |
346 | </beginLabelStyle> | 425 | </beginLabelStyle> |
347 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_kYbxA7zTEeaj7tVusjQpHg" showIcon="false"/> | 426 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_kYbxA7zTEeaj7tVusjQpHg" showIcon="false"/> |
348 | </ownedStyle> | 427 | </ownedStyle> |
349 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 428 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
350 | </ownedDiagramElements> | 429 | </ownedDiagramElements> |
351 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_pqmOMLzTEeaj7tVusjQpHg" name="AssertionAnnotation" tooltipText="" outgoingEdges="_pqp4kLzTEeaj7tVusjQpHg" incomingEdges="_rIFf4LzTEeaj7tVusjQpHg" width="12" height="10"> | 430 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_pqmOMLzTEeaj7tVusjQpHg" name="AssertionAnnotation" tooltipText="" outgoingEdges="_pqp4kLzTEeaj7tVusjQpHg" incomingEdges="_rIFf4LzTEeaj7tVusjQpHg" width="12" height="10"> |
352 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | 431 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> |
353 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | 432 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> |
354 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_pqpRgLzTEeaj7tVusjQpHg"> | 433 | <decorations xmi:type="viewpoint:Decoration" uid="_pqpRgLzTEeaj7tVusjQpHg"> |
355 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 434 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> |
356 | </decorations> | 435 | </decorations> |
357 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 436 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
358 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 437 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
359 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 438 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
360 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_pqmOMbzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 439 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pqmOMbzTEeaj7tVusjQpHg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
361 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 440 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
362 | </ownedStyle> | 441 | </ownedStyle> |
363 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 442 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
364 | <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_JMjkMBfyEeiKzNmzswRwjA" name=" target : Assertion" tooltipText=""> | 443 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_JMjkMBfyEeiKzNmzswRwjA" name=" target : Assertion" tooltipText=""> |
365 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | 444 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> |
366 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> | 445 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/> |
367 | <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_JMkyUBfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="_JMersBfyEeiKzNmzswRwjA" color="114,159,207"> | 446 | <ownedStyle xmi:type="diagram:BundledImage" uid="_JMkyUBfyEeiKzNmzswRwjA" labelAlignment="LEFT" description="_JMersBfyEeiKzNmzswRwjA" color="114,159,207"> |
368 | <labelFormat>bold</labelFormat> | 447 | <labelFormat>bold</labelFormat> |
369 | </ownedStyle> | 448 | </ownedStyle> |
370 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> | 449 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> |
371 | </ownedElements> | 450 | </ownedElements> |
372 | </ownedDiagramElements> | 451 | </ownedDiagramElements> |
373 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_pqp4kLzTEeaj7tVusjQpHg" sourceNode="_pqmOMLzTEeaj7tVusjQpHg" targetNode="_kYYGoLzTEeaj7tVusjQpHg"> | 452 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pqp4kLzTEeaj7tVusjQpHg" sourceNode="_pqmOMLzTEeaj7tVusjQpHg" targetNode="_kYYGoLzTEeaj7tVusjQpHg"> |
374 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> | 453 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> |
375 | <semanticElements xmi:type="ecore:EGenericType" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/@eGenericSuperTypes.0"/> | 454 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/> |
376 | <decorations xmi:type="viewpoint:Decoration" xmi:id="_rIE40bzTEeaj7tVusjQpHg"> | 455 | <decorations xmi:type="viewpoint:Decoration" uid="_rIE40bzTEeaj7tVusjQpHg"> |
377 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | 456 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> |
378 | </decorations> | 457 | </decorations> |
379 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_pqqfoLzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> | 458 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pqqfoLzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> |
380 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 459 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
381 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_pqqfobzTEeaj7tVusjQpHg" showIcon="false"> | 460 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_pqqfobzTEeaj7tVusjQpHg" showIcon="false"> |
382 | <labelFormat>italic</labelFormat> | 461 | <labelFormat>italic</labelFormat> |
383 | </beginLabelStyle> | 462 | </beginLabelStyle> |
384 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_pqqforzTEeaj7tVusjQpHg" showIcon="false"/> | 463 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_pqqforzTEeaj7tVusjQpHg" showIcon="false"/> |
385 | </ownedStyle> | 464 | </ownedStyle> |
386 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 465 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
387 | </ownedDiagramElements> | 466 | </ownedDiagramElements> |
388 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rIFf4LzTEeaj7tVusjQpHg" sourceNode="_Ciz6YLzTEeaj7tVusjQpHg" targetNode="_pqmOMLzTEeaj7tVusjQpHg"> | 467 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rIFf4LzTEeaj7tVusjQpHg" sourceNode="_Ciz6YLzTEeaj7tVusjQpHg" targetNode="_pqmOMLzTEeaj7tVusjQpHg"> |
389 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> | 468 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> |
390 | <semanticElements xmi:type="ecore:EGenericType" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/@eGenericSuperTypes.0"/> | 469 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"/> |
391 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rIGG8LzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> | 470 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_rIGG8LzTEeaj7tVusjQpHg" targetArrow="InputClosedArrow" routingStyle="tree"> |
392 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 471 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
393 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_rIGG8bzTEeaj7tVusjQpHg" showIcon="false"> | 472 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_rIGG8bzTEeaj7tVusjQpHg" showIcon="false"> |
394 | <labelFormat>italic</labelFormat> | 473 | <labelFormat>italic</labelFormat> |
395 | </beginLabelStyle> | 474 | </beginLabelStyle> |
396 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rIGG8rzTEeaj7tVusjQpHg" showIcon="false"/> | 475 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_rIGG8rzTEeaj7tVusjQpHg" showIcon="false"/> |
397 | </ownedStyle> | 476 | </ownedStyle> |
398 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 477 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
399 | </ownedDiagramElements> | 478 | </ownedDiagramElements> |
400 | <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_7gtXoPObEeauOJk-5mBnBg" name="DefinedByDerivedFeature" tooltipText="" outgoingEdges="_Fff8APOcEeauOJk-5mBnBg _fhW7YPOcEeauOJk-5mBnBg" width="12" height="10"> | 479 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_7gtXoPObEeauOJk-5mBnBg" name="DefinedByDerivedFeature" tooltipText="" outgoingEdges="_Fff8APOcEeauOJk-5mBnBg _fhW7YPOcEeauOJk-5mBnBg" width="12" height="10"> |
401 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> | 480 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> |
402 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> | 481 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> |
403 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 482 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
404 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 483 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
405 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 484 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
406 | <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_7gvM0PObEeauOJk-5mBnBg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 485 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7gvM0PObEeauOJk-5mBnBg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
407 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 486 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
408 | </ownedStyle> | 487 | </ownedStyle> |
409 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 488 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
410 | </ownedDiagramElements> | 489 | </ownedDiagramElements> |
411 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_Fff8APOcEeauOJk-5mBnBg" sourceNode="_7gtXoPObEeauOJk-5mBnBg" targetNode="_hon70LzTEeaj7tVusjQpHg"> | 490 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Fff8APOcEeauOJk-5mBnBg" sourceNode="_7gtXoPObEeauOJk-5mBnBg" targetNode="_hon70LzTEeaj7tVusjQpHg"> |
412 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> | 491 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> |
413 | <semanticElements xmi:type="ecore:EGenericType" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/@eGenericSuperTypes.0"/> | 492 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"/> |
414 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FfgjEPOcEeauOJk-5mBnBg" targetArrow="InputClosedArrow" routingStyle="tree"> | 493 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_FfgjEPOcEeauOJk-5mBnBg" targetArrow="InputClosedArrow" routingStyle="tree"> |
415 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | 494 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> |
416 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FfgjEfOcEeauOJk-5mBnBg" showIcon="false"> | 495 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_FfgjEfOcEeauOJk-5mBnBg" showIcon="false"> |
417 | <labelFormat>italic</labelFormat> | 496 | <labelFormat>italic</labelFormat> |
418 | </beginLabelStyle> | 497 | </beginLabelStyle> |
419 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FfgjEvOcEeauOJk-5mBnBg" showIcon="false"/> | 498 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_FfgjEvOcEeauOJk-5mBnBg" showIcon="false"/> |
420 | </ownedStyle> | 499 | </ownedStyle> |
421 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 500 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
422 | </ownedDiagramElements> | 501 | </ownedDiagramElements> |
423 | <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_fhW7YPOcEeauOJk-5mBnBg" name="[1..1] query" sourceNode="_7gtXoPObEeauOJk-5mBnBg" targetNode="_8vqQALzSEeaj7tVusjQpHg"> | 502 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_fhW7YPOcEeauOJk-5mBnBg" name="[1..1] query" sourceNode="_7gtXoPObEeauOJk-5mBnBg" targetNode="_8vqQALzSEeaj7tVusjQpHg"> |
424 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/query"/> | 503 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/query"/> |
425 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/query"/> | 504 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/query"/> |
426 | <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_hzsKYPOcEeauOJk-5mBnBg" description="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan" strokeColor="0,0,0"> | 505 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_hzsKYPOcEeauOJk-5mBnBg" description="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan" strokeColor="0,0,0"> |
427 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_hzsKYfOcEeauOJk-5mBnBg" showIcon="false"> | 506 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_hzsKYfOcEeauOJk-5mBnBg" showIcon="false"> |
507 | <labelFormat>bold</labelFormat> | ||
508 | </centerLabelStyle> | ||
509 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_hzsKYvOcEeauOJk-5mBnBg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
510 | </ownedStyle> | ||
511 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
512 | </ownedDiagramElements> | ||
513 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hAAyUH8uEeq2t8kgC8VWrg" name="VariableMapping" tooltipText="" outgoingEdges="_XYlIkH8vEeq2t8kgC8VWrg" incomingEdges="_k8ZvYH8uEeq2t8kgC8VWrg" width="12" height="10"> | ||
514 | <target xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//VariableMapping"/> | ||
515 | <semanticElements xmi:type="ecore:EClass" href="ViatraModelAnnotations.ecore#//VariableMapping"/> | ||
516 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
517 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
518 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
519 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_EXh5gn8vEeq2t8kgC8VWrg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
520 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
521 | </ownedStyle> | ||
522 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
523 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_qpvFoH8uEeq2t8kgC8VWrg" name="sourcePVariable : EJavaObject" tooltipText=""> | ||
524 | <target xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//VariableMapping/sourcePVariable"/> | ||
525 | <semanticElements xmi:type="ecore:EAttribute" href="ViatraModelAnnotations.ecore#//VariableMapping/sourcePVariable"/> | ||
526 | <ownedStyle xmi:type="diagram:BundledImage" uid="_EXmyAH8vEeq2t8kgC8VWrg" labelAlignment="LEFT" description="__q-j0L2REeaj7tVusjQpHg"> | ||
527 | <labelFormat>bold</labelFormat> | ||
528 | </ownedStyle> | ||
529 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
530 | </ownedElements> | ||
531 | </ownedDiagramElements> | ||
532 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_k8ZvYH8uEeq2t8kgC8VWrg" name="[0..*] variableTrace" sourceNode="_8vqQALzSEeaj7tVusjQpHg" targetNode="_hAAyUH8uEeq2t8kgC8VWrg"> | ||
533 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/variableTrace"/> | ||
534 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//TransfomedViatraQuery/variableTrace"/> | ||
535 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_k8a9gH8uEeq2t8kgC8VWrg" description="_k8aWcH8uEeq2t8kgC8VWrg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
536 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_k8a9gn8uEeq2t8kgC8VWrg" showIcon="false"> | ||
537 | <customFeatures>labelSize</customFeatures> | ||
538 | </centerLabelStyle> | ||
539 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_k8a9gX8uEeq2t8kgC8VWrg" showIcon="false" labelColor="39,76,114"> | ||
540 | <customFeatures>labelSize</customFeatures> | ||
541 | </endLabelStyle> | ||
542 | </ownedStyle> | ||
543 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
544 | </ownedDiagramElements> | ||
545 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VjIp4H8vEeq2t8kgC8VWrg" name="Variable" tooltipText="" incomingEdges="_XYlIkH8vEeq2t8kgC8VWrg" width="12" height="10"> | ||
546 | <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Variable"/> | ||
547 | <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Variable"/> | ||
548 | <decorations xmi:type="viewpoint:Decoration" uid="_VjJ4AH8vEeq2t8kgC8VWrg"> | ||
549 | <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> | ||
550 | </decorations> | ||
551 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
552 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
553 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
554 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_VjJQ8H8vEeq2t8kgC8VWrg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
555 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
556 | </ownedStyle> | ||
557 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
558 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_VjP-oX8vEeq2t8kgC8VWrg" name=" range : TypeReference" tooltipText=""> | ||
559 | <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Variable/range"/> | ||
560 | <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Variable/range"/> | ||
561 | <ownedStyle xmi:type="diagram:BundledImage" uid="_VjQlsH8vEeq2t8kgC8VWrg" labelAlignment="LEFT" description="_JMersBfyEeiKzNmzswRwjA" color="114,159,207"> | ||
562 | <labelFormat>bold</labelFormat> | ||
563 | </ownedStyle> | ||
564 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> | ||
565 | </ownedElements> | ||
566 | </ownedDiagramElements> | ||
567 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_XYlIkH8vEeq2t8kgC8VWrg" name="[1..1] targetLogicVariable" sourceNode="_hAAyUH8uEeq2t8kgC8VWrg" targetNode="_VjIp4H8vEeq2t8kgC8VWrg"> | ||
568 | <target xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//VariableMapping/targetLogicVariable"/> | ||
569 | <semanticElements xmi:type="ecore:EReference" href="ViatraModelAnnotations.ecore#//VariableMapping/targetLogicVariable"/> | ||
570 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_bTqeFn8vEeq2t8kgC8VWrg" description="_JijTsLzTEeaj7tVusjQpHg" routingStyle="manhattan" strokeColor="0,0,0"> | ||
571 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_bTqeGH8vEeq2t8kgC8VWrg" showIcon="false"> | ||
428 | <labelFormat>bold</labelFormat> | 572 | <labelFormat>bold</labelFormat> |
429 | </centerLabelStyle> | 573 | </centerLabelStyle> |
430 | <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_hzsKYvOcEeauOJk-5mBnBg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | 574 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_bTqeF38vEeq2t8kgC8VWrg" labelSize="6" showIcon="false" labelColor="39,76,114"/> |
431 | </ownedStyle> | 575 | </ownedStyle> |
432 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 576 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
433 | </ownedDiagramElements> | 577 | </ownedDiagramElements> |
434 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 578 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
435 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_h6FUsrzSEeaj7tVusjQpHg"/> | 579 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_h6FUsrzSEeaj7tVusjQpHg"/> |
436 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | 580 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> |
437 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | 581 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> |
438 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | 582 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore index b7d2dcc3..0da2bde6 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.ecore | |||
@@ -8,6 +8,11 @@ | |||
8 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="patternPQuery" lowerBound="1" | 8 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="patternPQuery" lowerBound="1" |
9 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject" | 9 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject" |
10 | transient="true"/> | 10 | transient="true"/> |
11 | <eStructuralFeatures xsi:type="ecore:EReference" name="variableTrace" upperBound="-1" | ||
12 | eType="#//VariableMapping" containment="true"/> | ||
13 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="optimizedDisjunction" lowerBound="1" | ||
14 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject" | ||
15 | transient="true"/> | ||
11 | </eClassifiers> | 16 | </eClassifiers> |
12 | <eClassifiers xsi:type="ecore:EClass" name="TransformedViatraWellformednessConstraint" | 17 | <eClassifiers xsi:type="ecore:EClass" name="TransformedViatraWellformednessConstraint" |
13 | eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"> | 18 | eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"> |
@@ -16,4 +21,11 @@ | |||
16 | <eClassifiers xsi:type="ecore:EClass" name="DefinedByDerivedFeature" eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"> | 21 | <eClassifiers xsi:type="ecore:EClass" name="DefinedByDerivedFeature" eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//RelationAnnotation"> |
17 | <eStructuralFeatures xsi:type="ecore:EReference" name="query" lowerBound="1" eType="#//TransfomedViatraQuery"/> | 22 | <eStructuralFeatures xsi:type="ecore:EReference" name="query" lowerBound="1" eType="#//TransfomedViatraQuery"/> |
18 | </eClassifiers> | 23 | </eClassifiers> |
24 | <eClassifiers xsi:type="ecore:EClass" name="VariableMapping"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourcePVariable" lowerBound="1" | ||
26 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject" | ||
27 | transient="true"/> | ||
28 | <eStructuralFeatures xsi:type="ecore:EReference" name="targetLogicVariable" lowerBound="1" | ||
29 | eType="ecore:EClass ../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Variable"/> | ||
30 | </eClassifiers> | ||
19 | </ecore:EPackage> | 31 | </ecore:EPackage> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.genmodel b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.genmodel index 7a367c7e..ccac6f83 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.genmodel +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/model/ViatraModelAnnotations.genmodel | |||
@@ -8,9 +8,21 @@ | |||
8 | <foreignModel>ViatraModelAnnotations.ecore</foreignModel> | 8 | <foreignModel>ViatraModelAnnotations.ecore</foreignModel> |
9 | <genPackages prefix="Viatra2LogicAnnotations" basePackage="hu.bme.mit.inf.dslreasoner.viatra2logic" | 9 | <genPackages prefix="Viatra2LogicAnnotations" basePackage="hu.bme.mit.inf.dslreasoner.viatra2logic" |
10 | disposableProviderFactory="true" ecorePackage="ViatraModelAnnotations.ecore#/"> | 10 | disposableProviderFactory="true" ecorePackage="ViatraModelAnnotations.ecore#/"> |
11 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"/> | 11 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//TransfomedViatraQuery"> |
12 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternFullyQualifiedName"/> | ||
13 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ViatraModelAnnotations.ecore#//TransfomedViatraQuery/patternPQuery"/> | ||
14 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ViatraModelAnnotations.ecore#//TransfomedViatraQuery/variableTrace"/> | ||
15 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ViatraModelAnnotations.ecore#//TransfomedViatraQuery/optimizedDisjunction"/> | ||
16 | </genClasses> | ||
12 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"> | 17 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint"> |
13 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> | 18 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ViatraModelAnnotations.ecore#//TransformedViatraWellformednessConstraint/query"/> |
14 | </genClasses> | 19 | </genClasses> |
20 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//DefinedByDerivedFeature"> | ||
21 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ViatraModelAnnotations.ecore#//DefinedByDerivedFeature/query"/> | ||
22 | </genClasses> | ||
23 | <genClasses ecoreClass="ViatraModelAnnotations.ecore#//VariableMapping"> | ||
24 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ViatraModelAnnotations.ecore#//VariableMapping/sourcePVariable"/> | ||
25 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ViatraModelAnnotations.ecore#//VariableMapping/targetLogicVariable"/> | ||
26 | </genClasses> | ||
15 | </genPackages> | 27 | </genPackages> |
16 | </genmodel:GenModel> | 28 | </genmodel:GenModel> |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Constraint2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Constraint2Logic.xtend index 3e8b3366..b8c52af4 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Constraint2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Constraint2Logic.xtend | |||
@@ -30,10 +30,20 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeCo | |||
30 | 30 | ||
31 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 31 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint | 32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint |
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint | ||
34 | import org.eclipse.viatra.query.runtime.matchers.aggregators.DoubleSumOperator | ||
35 | import org.eclipse.viatra.query.runtime.matchers.aggregators.IntegerSumOperator | ||
36 | import org.eclipse.viatra.query.runtime.matchers.aggregators.LongSumOperator | ||
37 | import org.eclipse.viatra.query.runtime.matchers.aggregators.ExtremumOperator | ||
38 | import org.eclipse.viatra.query.runtime.matchers.aggregators.ExtremumOperator.Extreme | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation | ||
33 | 41 | ||
34 | class Constraint2Logic { | 42 | class Constraint2Logic { |
35 | val extension LogicProblemBuilder builder = new LogicProblemBuilder | 43 | val extension LogicProblemBuilder builder = new LogicProblemBuilder |
36 | val Ecore2Logic ecore2Logic | 44 | val Ecore2Logic ecore2Logic |
45 | val ExpressionEvaluation2Logic expressionEvaliation2Logic = new ExpressionEvaluation2Logic | ||
46 | val expressionExtractor = new XExpressionExtractor | ||
37 | 47 | ||
38 | new(Ecore2Logic ecore2Logic) { | 48 | new(Ecore2Logic ecore2Logic) { |
39 | this.ecore2Logic = ecore2Logic | 49 | this.ecore2Logic = ecore2Logic |
@@ -269,6 +279,69 @@ class Constraint2Logic { | |||
269 | } else throw new IllegalArgumentException('''unknown tuple: «tuple»''') | 279 | } else throw new IllegalArgumentException('''unknown tuple: «tuple»''') |
270 | } | 280 | } |
271 | 281 | ||
282 | def dispatch Term transformConstraint(AggregatorConstraint constraint, | ||
283 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
284 | Viatra2LogicTrace viatra2LogicTrace, | ||
285 | Map<PVariable, Variable> variable2Variable, | ||
286 | Viatra2LogicConfiguration config) | ||
287 | { | ||
288 | val logicReferred = constraint.referredQuery.lookup(viatra2LogicTrace.query2Relation) | ||
289 | val parameterSubstitution = new LinkedList | ||
290 | for(index : 0..<constraint.actualParametersTuple.size) { | ||
291 | val term = (constraint.actualParametersTuple.get(index) as PVariable).lookup(variable2Variable) | ||
292 | parameterSubstitution += term | ||
293 | } | ||
294 | val aggregatorIndex = constraint.aggregatedColumn | ||
295 | val logicResultVariable = constraint.resultVariable.lookup(variable2Variable) | ||
296 | val type = constraint.aggregator.operator | ||
297 | if(type === null) { | ||
298 | return Count(logicReferred,parameterSubstitution,logicResultVariable) | ||
299 | } else if(type instanceof IntegerSumOperator || type instanceof DoubleSumOperator || type instanceof LongSumOperator){ | ||
300 | return Sum(logicReferred,parameterSubstitution,aggregatorIndex,logicResultVariable) | ||
301 | } else if(type instanceof ExtremumOperator) { | ||
302 | if(type.name == Extreme.MIN.name.toLowerCase) { | ||
303 | return Min(logicReferred,parameterSubstitution,aggregatorIndex,logicResultVariable) | ||
304 | } else if(type.name == Extreme.MAX.name.toLowerCase){ | ||
305 | return Max(logicReferred,parameterSubstitution,aggregatorIndex,logicResultVariable) | ||
306 | } else { | ||
307 | throw new UnsupportedOperationException('''Unkown Extremum aggregator type: «type.name»''') | ||
308 | } | ||
309 | } else { | ||
310 | throw new UnsupportedOperationException('''Unkown aggregator type: «type.name»''') | ||
311 | } | ||
312 | } | ||
313 | |||
314 | def dispatch Term transformConstraint(PatternMatchCounter constraint, | ||
315 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
316 | Viatra2LogicTrace viatra2LogicTrace, | ||
317 | Map<PVariable, Variable> variable2Variable, | ||
318 | Viatra2LogicConfiguration config) | ||
319 | { | ||
320 | val logicReferred = constraint.referredQuery.lookup(viatra2LogicTrace.query2Relation) | ||
321 | val parameterSubstitution = new LinkedList | ||
322 | for(index : 0..<constraint.actualParametersTuple.size) { | ||
323 | val term = (constraint.actualParametersTuple.get(index) as PVariable).lookup(variable2Variable) | ||
324 | parameterSubstitution += term | ||
325 | } | ||
326 | val logicResultVariable = constraint.resultVariable.lookup(variable2Variable) | ||
327 | return Count(logicReferred,parameterSubstitution,logicResultVariable) | ||
328 | } | ||
329 | |||
330 | def dispatch Term transformConstraint(ExpressionEvaluation constraint, | ||
331 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
332 | Viatra2LogicTrace viatra2LogicTrace, | ||
333 | Map<PVariable, Variable> variable2Variable, | ||
334 | Viatra2LogicConfiguration config) | ||
335 | { | ||
336 | val outputVariable = constraint.outputVariable | ||
337 | val expression = expressionExtractor.extractExpression(constraint.evaluator) | ||
338 | if(outputVariable === null) { | ||
339 | return expressionEvaliation2Logic.transformCheck(expression,variable2Variable) | ||
340 | } else { | ||
341 | return expressionEvaliation2Logic.transformEval(outputVariable,expression,variable2Variable) | ||
342 | } | ||
343 | } | ||
344 | |||
272 | def dispatch Term transformConstraint(PConstraint constraint, | 345 | def dispatch Term transformConstraint(PConstraint constraint, |
273 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | 346 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, |
274 | Viatra2LogicTrace viatra2LogicTrace, | 347 | Viatra2LogicTrace viatra2LogicTrace, |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExampleRecreation.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExampleRecreation.java new file mode 100644 index 00000000..a3d25ccf --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExampleRecreation.java | |||
@@ -0,0 +1,120 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic; | ||
2 | |||
3 | import java.util.HashMap; | ||
4 | |||
5 | import com.microsoft.z3.*; | ||
6 | |||
7 | public class ExampleRecreation { | ||
8 | |||
9 | |||
10 | public static void sudoku(Context ctx) { | ||
11 | |||
12 | // 9 * 9 int matrix | ||
13 | IntExpr[][] X = new IntExpr[9][]; | ||
14 | for (int i = 0; i < 9; i++) { | ||
15 | X[i] = new IntExpr[9]; | ||
16 | for (int j = 0; j < 9; j++) { | ||
17 | X[i][j] = (IntExpr) ctx.mkConst(ctx.mkSymbol("x_" + (i + 1) + "_" + (j + 1)), ctx.getIntSort()); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | // Cell value from 1 - 9 | ||
22 | BoolExpr[][] cells = new BoolExpr[9][]; | ||
23 | for (int i = 0; i < 9; i++) { | ||
24 | cells[i] = new BoolExpr[9]; | ||
25 | for (int j = 0; j < 9; j++) { | ||
26 | cells[i][j] = ctx.mkAnd(ctx.mkLe(ctx.mkInt(1), X[i][j]), ctx.mkLe(X[i][j], ctx.mkInt(9))); | ||
27 | } | ||
28 | } | ||
29 | |||
30 | // Each value in a row is distinct | ||
31 | BoolExpr[] row = new BoolExpr[9]; | ||
32 | for (int i = 0; i < 9; i++) { | ||
33 | row[i] = ctx.mkDistinct(X[i]); | ||
34 | } | ||
35 | |||
36 | // Each value in a col is distinct | ||
37 | BoolExpr[] col = new BoolExpr[9]; | ||
38 | for (int j = 0; j < 9; j++) { | ||
39 | IntExpr[] one_col = new IntExpr[9]; | ||
40 | for (int i = 0; i < 9; i++) { | ||
41 | one_col[i] = X[i][j]; | ||
42 | } | ||
43 | col[j] = ctx.mkDistinct(one_col); | ||
44 | } | ||
45 | |||
46 | |||
47 | // Each value in a 3*3 square is distinct | ||
48 | BoolExpr[][] squares = new BoolExpr[3][]; | ||
49 | for (int x = 0; x < 3; x++) { | ||
50 | squares[x] = new BoolExpr[3]; | ||
51 | for (int y = 0; y < 3; y++) { | ||
52 | IntExpr[] square = new IntExpr[9]; | ||
53 | for (int i = 0; i < 3; i++) { | ||
54 | for (int j = 0; j < 3; j++) { | ||
55 | square[3 * i + j] = X[3 * x + i][3 * y + j]; | ||
56 | } | ||
57 | } | ||
58 | squares[x][y] = ctx.mkDistinct(square); | ||
59 | } | ||
60 | } | ||
61 | |||
62 | // Combine all conditions | ||
63 | BoolExpr sudoku = ctx.mkTrue(); | ||
64 | for (BoolExpr[] e: cells) { | ||
65 | sudoku = ctx.mkAnd(ctx.mkAnd(e), sudoku); | ||
66 | } | ||
67 | sudoku = ctx.mkAnd(ctx.mkAnd(row), sudoku); | ||
68 | sudoku = ctx.mkAnd(ctx.mkAnd(col), sudoku); | ||
69 | for (BoolExpr[] e: squares) { | ||
70 | sudoku = ctx.mkAnd(ctx.mkAnd(e), sudoku); | ||
71 | } | ||
72 | |||
73 | int[][] instance = { { 0, 0, 0, 0, 9, 4, 0, 3, 0 }, | ||
74 | { 0, 0, 0, 5, 1, 0, 0, 0, 7 }, { 0, 8, 9, 0, 0, 0, 0, 4, 0 }, | ||
75 | { 0, 0, 0, 0, 0, 0, 2, 0, 8 }, { 0, 6, 0, 2, 0, 1, 0, 5, 0 }, | ||
76 | { 1, 0, 2, 0, 0, 0, 0, 0, 0 }, { 0, 7, 0, 0, 0, 0, 5, 2, 0 }, | ||
77 | { 9, 0, 0, 0, 6, 5, 0, 0, 0 }, { 0, 4, 0, 9, 7, 0, 0, 0, 0 } }; | ||
78 | |||
79 | // Set assertions enforced by the instance | ||
80 | BoolExpr inst = ctx.mkTrue(); | ||
81 | for (int i = 0; i < 9; i++) { | ||
82 | for (int j = 0; j < 9; j++) { | ||
83 | inst = ctx.mkAnd(inst, (BoolExpr) ctx.mkITE(ctx.mkEq(ctx.mkInt(instance[i][j]), ctx.mkInt(0)), ctx.mkTrue(), ctx.mkEq(X[i][j], ctx.mkInt(instance[i][j])))); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | Solver s = ctx.mkSolver(); | ||
88 | s.add(sudoku); | ||
89 | s.add(inst); | ||
90 | |||
91 | if (s.check() == Status.SATISFIABLE) { | ||
92 | Model m = s.getModel(); | ||
93 | Expr[][] solution = new Expr[9][9]; | ||
94 | for (int i = 0; i < 9; i++) { | ||
95 | for (int j = 0; j < 9; j++) { | ||
96 | solution[i][j] = m.evaluate(X[i][j], false); | ||
97 | } | ||
98 | } | ||
99 | |||
100 | System.out.println("Sudoku solution:\n"); | ||
101 | for (int i = 0; i < 9; i++) { | ||
102 | for (int j = 0; j < 9; j++) { | ||
103 | System.out.print(solution[i][j] + " "); | ||
104 | } | ||
105 | System.out.println(); | ||
106 | } | ||
107 | } | ||
108 | else { | ||
109 | System.out.println("No solution"); | ||
110 | } | ||
111 | } | ||
112 | |||
113 | public static void main (String []args) { | ||
114 | HashMap<String, String> cfg = new HashMap<String, String>(); | ||
115 | cfg.put("model", "true"); | ||
116 | Context ctx = new Context(cfg); | ||
117 | sudoku(ctx); | ||
118 | } | ||
119 | |||
120 | } \ No newline at end of file | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend new file mode 100644 index 00000000..b4303739 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend | |||
@@ -0,0 +1,140 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable | ||
6 | import java.util.Map | ||
7 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable | ||
8 | import org.eclipse.xtext.xbase.XBinaryOperation | ||
9 | import org.eclipse.xtext.xbase.XExpression | ||
10 | import org.eclipse.xtext.xbase.XFeatureCall | ||
11 | import org.eclipse.xtext.xbase.XMemberFeatureCall | ||
12 | import org.eclipse.xtext.xbase.XNumberLiteral | ||
13 | import org.eclipse.xtext.xbase.XUnaryOperation | ||
14 | |||
15 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | ||
16 | |||
17 | class ExpressionEvaluation2Logic { | ||
18 | val extension LogicProblemBuilder builder = new LogicProblemBuilder | ||
19 | val NumericProblemSolver numericSolver = new NumericProblemSolver | ||
20 | |||
21 | def Term transformCheck(XExpression expression, Map<PVariable, Variable> variable2Variable) { | ||
22 | return expression.transform(variable2Variable) | ||
23 | } | ||
24 | |||
25 | def Term transformEval(PVariable target, XExpression expression, Map<PVariable, Variable> variable2Variable) { | ||
26 | // numericSolver.testIsNotSat(expression, expression.transform(variable2Variable)); | ||
27 | // numericSolver.testGetOneSol(expression, expression.transform(variable2Variable)); | ||
28 | // numericSolver.testGetOneSol2(expression, expression.transform(variable2Variable)); | ||
29 | // numericSolver.testGetOneSol3(expression, expression.transform(variable2Variable)); | ||
30 | // numericSolver.testIsSat(expression, expression.transform(variable2Variable)); | ||
31 | |||
32 | return expression.transform(variable2Variable) | ||
33 | } | ||
34 | |||
35 | static val N_Base = "org.eclipse.xtext.xbase.lib." | ||
36 | |||
37 | static val N_PLUS1 = "operator_plus" | ||
38 | static val N_MINUS1 = "operator_minus" | ||
39 | |||
40 | static val N_MINUS2 = "operator_minus" | ||
41 | static val N_PLUS2 = "operator_plus" | ||
42 | static val N_POWER = "operator_power" | ||
43 | static val N_MULTIPLY = "operator_multiply" | ||
44 | static val N_DIVIDE = "operator_divide" | ||
45 | static val N_MODULO = "operator_modulo" | ||
46 | static val N_LESSTHAN = "operator_lessThan" | ||
47 | static val N_LESSEQUALSTHAN = "operator_lessEqualsThan" | ||
48 | static val N_GREATERTHAN = "operator_greaterThan" | ||
49 | static val N_GREATEREQUALTHAN = "operator_greaterEqualsThan" | ||
50 | static val N_EQUALS = "operator_equals" | ||
51 | static val N_NOTEQUALS = "operator_notEquals" | ||
52 | static val N_EQUALS3 = "operator_tripleEquals" | ||
53 | static val N_NOTEQUALS3 = "operator_tripleNotEquals" | ||
54 | |||
55 | |||
56 | |||
57 | protected def isN(String name, String s) { | ||
58 | val res = name.startsWith(N_Base) && name.endsWith(s) | ||
59 | //println('''[«res»] «name» ?= «N_Base»*«s»''') | ||
60 | return res | ||
61 | } | ||
62 | |||
63 | static val N_POWER2 = "java.lang.Math.pow" | ||
64 | |||
65 | def protected dispatch Term transform(XBinaryOperation e, Map<PVariable, Variable> variable2Variable) { | ||
66 | val left = e.leftOperand.transform(variable2Variable) | ||
67 | val right = e.rightOperand.transform(variable2Variable) | ||
68 | val feature = e.feature.qualifiedName | ||
69 | if(feature.isN(N_MINUS2)) { return Minus(left,right) } | ||
70 | else if(feature.isN(N_PLUS2)) { return Plus(left,right) } | ||
71 | else if(feature.isN(N_POWER)) { return Pow(left,right) } | ||
72 | else if(feature.isN(N_MULTIPLY)) { return Multiply(left,right) } | ||
73 | else if(feature.isN(N_DIVIDE)) { return Divide(left,right) } | ||
74 | else if(feature.isN(N_MODULO)) { return Modulo(left,right) } | ||
75 | else if(feature.isN(N_LESSTHAN)) { return LessThan(left,right) } | ||
76 | else if(feature.isN(N_LESSEQUALSTHAN)) { return LessOrEqual(left,right) } | ||
77 | else if(feature.isN(N_GREATERTHAN)) { return MoreThan(left,right) } | ||
78 | else if(feature.isN(N_GREATEREQUALTHAN)) { return MoreOrEqual(left,right) } | ||
79 | else if(feature.isN(N_EQUALS)) { return Equals(left,right) } | ||
80 | else if(feature.isN(N_NOTEQUALS)) { return Distinct(left,right) } | ||
81 | else if(feature.isN(N_EQUALS3)) { return Equals(left,right) } | ||
82 | else if(feature.isN(N_NOTEQUALS3)) { return Distinct(left,right) } | ||
83 | else { | ||
84 | println("-> " + e.feature+","+e.class) | ||
85 | println("-> " + e.leftOperand) | ||
86 | println("-> " + e.rightOperand) | ||
87 | println("-> " + e.feature.qualifiedName) | ||
88 | throw new UnsupportedOperationException('''Unsupported binary operator feature: "«e.feature.class.simpleName»" - «e»''') | ||
89 | } | ||
90 | } | ||
91 | |||
92 | def protected dispatch Term transform(XUnaryOperation e, Map<PVariable, Variable> variable2Variable) { | ||
93 | val operand = e.operand.transform(variable2Variable) | ||
94 | val feature = e.feature.qualifiedName | ||
95 | if(feature.isN(N_MINUS1)) { return Minus(0.asTerm,operand)} | ||
96 | else if(feature.isN(N_PLUS1)) { return operand} | ||
97 | else{ | ||
98 | println("-> " + e.feature+","+e.class) | ||
99 | println("-> " + e.operand) | ||
100 | println("-> " + e.feature.qualifiedName) | ||
101 | throw new UnsupportedOperationException('''Unsupported unary operator feature: "«e.feature.class.simpleName»" - «e»''') | ||
102 | } | ||
103 | } | ||
104 | |||
105 | def protected dispatch Term transform(XMemberFeatureCall e, Map<PVariable, Variable> variable2Variable) { | ||
106 | val transformedArguments = e.actualArguments.map[transform(variable2Variable)] | ||
107 | val feature = e.feature.qualifiedName | ||
108 | if(feature == N_POWER2) { | ||
109 | return Pow(transformedArguments.get(0),transformedArguments.get(1)) | ||
110 | }else { | ||
111 | println(e.feature+","+e.class) | ||
112 | println(e.actualArguments.join(", ")) | ||
113 | println(e.feature.qualifiedName) | ||
114 | throw new UnsupportedOperationException('''Unsupported feature call: "«e.feature.qualifiedName»" - «e»''') | ||
115 | } | ||
116 | } | ||
117 | |||
118 | def protected dispatch Term transform(XFeatureCall e, Map<PVariable,Variable> variable2Variable) { | ||
119 | val featureName = e.feature.qualifiedName | ||
120 | val entryWithName = variable2Variable.entrySet.filter[it.key.name == featureName].head | ||
121 | if(entryWithName !== null) { | ||
122 | return entryWithName.value.toTerm | ||
123 | } else { | ||
124 | throw new IllegalArgumentException('''Feature call reference to unavailable variable "«featureName»"''') | ||
125 | } | ||
126 | } | ||
127 | |||
128 | def protected dispatch Term transform(XNumberLiteral l, Map<PVariable, Variable> variable2Variable) { | ||
129 | val s = l.value | ||
130 | try{ return Integer.parseInt(s).asTerm } catch(NumberFormatException e){} | ||
131 | try{ return Short.parseShort(s).asTerm } catch(NumberFormatException e){} | ||
132 | try{ return Double.parseDouble(s).asTerm } catch(NumberFormatException e){} | ||
133 | try{ return Float.parseFloat(s).asTerm } catch(NumberFormatException e){} | ||
134 | throw new UnsupportedOperationException('''Unsupported numeric type: "«s»"''') | ||
135 | } | ||
136 | |||
137 | def protected dispatch Term transform(XExpression e, Map<PVariable, Variable> variable2Variable) { | ||
138 | throw new UnsupportedOperationException('''Unsupported expression: "«e.class.simpleName»" - «e»''') | ||
139 | } | ||
140 | } \ No newline at end of file | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/FakeIntegerElement.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/FakeIntegerElement.java new file mode 100644 index 00000000..7b8634c4 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/FakeIntegerElement.java | |||
@@ -0,0 +1,169 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic; | ||
2 | |||
3 | import java.lang.reflect.InvocationTargetException; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Adapter; | ||
6 | import org.eclipse.emf.common.notify.Notification; | ||
7 | import org.eclipse.emf.common.util.EList; | ||
8 | import org.eclipse.emf.common.util.TreeIterator; | ||
9 | import org.eclipse.emf.ecore.EClass; | ||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | import org.eclipse.emf.ecore.EOperation; | ||
12 | import org.eclipse.emf.ecore.EReference; | ||
13 | import org.eclipse.emf.ecore.EStructuralFeature; | ||
14 | import org.eclipse.emf.ecore.resource.Resource; | ||
15 | |||
16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement; | ||
18 | |||
19 | public class FakeIntegerElement implements PrimitiveElement{ | ||
20 | |||
21 | public FakeIntegerElement() { | ||
22 | |||
23 | } | ||
24 | |||
25 | @Override | ||
26 | public EList<TypeDefinition> getDefinedInType() { | ||
27 | // TODO Auto-generated method stub | ||
28 | return null; | ||
29 | } | ||
30 | |||
31 | @Override | ||
32 | public String getName() { | ||
33 | // TODO Auto-generated method stub | ||
34 | return null; | ||
35 | } | ||
36 | |||
37 | @Override | ||
38 | public void setName(String value) { | ||
39 | // TODO Auto-generated method stub | ||
40 | |||
41 | } | ||
42 | |||
43 | @Override | ||
44 | public EClass eClass() { | ||
45 | // TODO Auto-generated method stub | ||
46 | return null; | ||
47 | } | ||
48 | |||
49 | @Override | ||
50 | public Resource eResource() { | ||
51 | // TODO Auto-generated method stub | ||
52 | return null; | ||
53 | } | ||
54 | |||
55 | @Override | ||
56 | public EObject eContainer() { | ||
57 | // TODO Auto-generated method stub | ||
58 | return null; | ||
59 | } | ||
60 | |||
61 | @Override | ||
62 | public EStructuralFeature eContainingFeature() { | ||
63 | // TODO Auto-generated method stub | ||
64 | return null; | ||
65 | } | ||
66 | |||
67 | @Override | ||
68 | public EReference eContainmentFeature() { | ||
69 | // TODO Auto-generated method stub | ||
70 | return null; | ||
71 | } | ||
72 | |||
73 | @Override | ||
74 | public EList<EObject> eContents() { | ||
75 | // TODO Auto-generated method stub | ||
76 | return null; | ||
77 | } | ||
78 | |||
79 | @Override | ||
80 | public TreeIterator<EObject> eAllContents() { | ||
81 | // TODO Auto-generated method stub | ||
82 | return null; | ||
83 | } | ||
84 | |||
85 | @Override | ||
86 | public boolean eIsProxy() { | ||
87 | // TODO Auto-generated method stub | ||
88 | return false; | ||
89 | } | ||
90 | |||
91 | @Override | ||
92 | public EList<EObject> eCrossReferences() { | ||
93 | // TODO Auto-generated method stub | ||
94 | return null; | ||
95 | } | ||
96 | |||
97 | @Override | ||
98 | public Object eGet(EStructuralFeature feature) { | ||
99 | // TODO Auto-generated method stub | ||
100 | return null; | ||
101 | } | ||
102 | |||
103 | @Override | ||
104 | public Object eGet(EStructuralFeature feature, boolean resolve) { | ||
105 | // TODO Auto-generated method stub | ||
106 | return null; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public void eSet(EStructuralFeature feature, Object newValue) { | ||
111 | // TODO Auto-generated method stub | ||
112 | |||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public boolean eIsSet(EStructuralFeature feature) { | ||
117 | // TODO Auto-generated method stub | ||
118 | return false; | ||
119 | } | ||
120 | |||
121 | @Override | ||
122 | public void eUnset(EStructuralFeature feature) { | ||
123 | // TODO Auto-generated method stub | ||
124 | |||
125 | } | ||
126 | |||
127 | @Override | ||
128 | public Object eInvoke(EOperation operation, EList<?> arguments) throws InvocationTargetException { | ||
129 | // TODO Auto-generated method stub | ||
130 | return null; | ||
131 | } | ||
132 | |||
133 | @Override | ||
134 | public EList<Adapter> eAdapters() { | ||
135 | // TODO Auto-generated method stub | ||
136 | return null; | ||
137 | } | ||
138 | |||
139 | @Override | ||
140 | public boolean eDeliver() { | ||
141 | // TODO Auto-generated method stub | ||
142 | return false; | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public void eSetDeliver(boolean deliver) { | ||
147 | // TODO Auto-generated method stub | ||
148 | |||
149 | } | ||
150 | |||
151 | @Override | ||
152 | public void eNotify(Notification notification) { | ||
153 | // TODO Auto-generated method stub | ||
154 | |||
155 | } | ||
156 | |||
157 | @Override | ||
158 | public boolean isValueSet() { | ||
159 | // TODO Auto-generated method stub | ||
160 | return false; | ||
161 | } | ||
162 | |||
163 | @Override | ||
164 | public void setValueSet(boolean value) { | ||
165 | // TODO Auto-generated method stub | ||
166 | |||
167 | } | ||
168 | |||
169 | } | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java new file mode 100644 index 00000000..0b249962 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java | |||
@@ -0,0 +1,473 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.ArrayList; | ||
5 | import java.util.HashMap; | ||
6 | import java.util.HashSet; | ||
7 | import java.util.List; | ||
8 | import java.util.Map; | ||
9 | import java.util.Map.Entry; | ||
10 | import java.util.Random; | ||
11 | import java.util.Set; | ||
12 | |||
13 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint; | ||
14 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
15 | import org.eclipse.xtext.common.types.JvmIdentifiableElement; | ||
16 | import org.eclipse.xtext.xbase.XBinaryOperation; | ||
17 | import org.eclipse.xtext.xbase.XExpression; | ||
18 | import org.eclipse.xtext.xbase.XFeatureCall; | ||
19 | import org.eclipse.xtext.xbase.XNumberLiteral; | ||
20 | |||
21 | import com.microsoft.z3.ArithExpr; | ||
22 | import com.microsoft.z3.BoolExpr; | ||
23 | import com.microsoft.z3.Context; | ||
24 | import com.microsoft.z3.Expr; | ||
25 | import com.microsoft.z3.IntExpr; | ||
26 | import com.microsoft.z3.Model; | ||
27 | import com.microsoft.z3.RealExpr; | ||
28 | import com.microsoft.z3.Solver; | ||
29 | import com.microsoft.z3.Status; | ||
30 | import com.microsoft.z3.enumerations.Z3_ast_print_mode; | ||
31 | |||
32 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term; | ||
33 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.IntegerElement; | ||
34 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.RealElement; | ||
35 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement; | ||
36 | |||
37 | |||
38 | public class NumericProblemSolver { | ||
39 | private static final String N_Base = "org.eclipse.xtext.xbase.lib."; | ||
40 | private static final String N_PLUS = "operator_plus"; | ||
41 | private static final String N_MINUS = "operator_minus"; | ||
42 | private static final String N_POWER = "operator_power"; | ||
43 | private static final String N_MULTIPLY = "operator_multiply"; | ||
44 | private static final String N_DIVIDE = "operator_divide"; | ||
45 | private static final String N_MODULO = "operator_modulo"; | ||
46 | private static final String N_LESSTHAN = "operator_lessThan"; | ||
47 | private static final String N_LESSEQUALSTHAN = "operator_lessEqualsThan"; | ||
48 | private static final String N_GREATERTHAN = "operator_greaterThan"; | ||
49 | private static final String N_GREATEREQUALTHAN = "operator_greaterEqualsThan"; | ||
50 | private static final String N_EQUALS = "operator_equals"; | ||
51 | private static final String N_NOTEQUALS = "operator_notEquals"; | ||
52 | private static final String N_EQUALS3 = "operator_tripleEquals"; | ||
53 | private static final String N_NOTEQUALS3 = "operator_tripleNotEquals"; | ||
54 | |||
55 | |||
56 | private Context ctx; | ||
57 | private Solver s; | ||
58 | private Map<Object, Expr> varMap; | ||
59 | |||
60 | long endformingProblem=0; | ||
61 | long endSolvingProblem=0; | ||
62 | long endFormingSolution=0; | ||
63 | |||
64 | public NumericProblemSolver() { | ||
65 | HashMap<String, String> cfg = new HashMap<String, String>(); | ||
66 | cfg.put("model", "true"); | ||
67 | ctx = new Context(cfg); | ||
68 | ctx.setPrintMode(Z3_ast_print_mode.Z3_PRINT_SMTLIB_FULL); | ||
69 | s = ctx.mkSolver(); | ||
70 | varMap = new HashMap<Object, Expr>(); | ||
71 | } | ||
72 | |||
73 | public Context getNumericProblemContext() { | ||
74 | return ctx; | ||
75 | } | ||
76 | |||
77 | public long getEndformingProblem() { | ||
78 | return endformingProblem; | ||
79 | } | ||
80 | |||
81 | public long getEndSolvingProblem() { | ||
82 | return endSolvingProblem; | ||
83 | } | ||
84 | |||
85 | public long getEndFormingSolution() { | ||
86 | return endFormingSolution; | ||
87 | } | ||
88 | |||
89 | private ArrayList<JvmIdentifiableElement> getJvmIdentifiableElements(XExpression expression) { | ||
90 | ArrayList<JvmIdentifiableElement> allElem = new ArrayList<JvmIdentifiableElement>(); | ||
91 | XExpression left = ((XBinaryOperation) expression).getLeftOperand(); | ||
92 | XExpression right = ((XBinaryOperation) expression).getRightOperand(); | ||
93 | |||
94 | getJvmIdentifiableElementsHelper(left, allElem); | ||
95 | getJvmIdentifiableElementsHelper(right, allElem); | ||
96 | return allElem; | ||
97 | } | ||
98 | |||
99 | private void getJvmIdentifiableElementsHelper(XExpression e, List<JvmIdentifiableElement> allElem) { | ||
100 | if (e instanceof XFeatureCall) { | ||
101 | allElem.add(((XFeatureCall) e).getFeature()); | ||
102 | } else if (e instanceof XBinaryOperation) { | ||
103 | getJvmIdentifiableElementsHelper(((XBinaryOperation) e).getLeftOperand(), allElem); | ||
104 | getJvmIdentifiableElementsHelper(((XBinaryOperation) e).getRightOperand(), allElem); | ||
105 | } | ||
106 | } | ||
107 | |||
108 | public boolean isSatisfiable(Map<XExpression, Iterable<Map<JvmIdentifiableElement,PrimitiveElement>>> matches) throws Exception { | ||
109 | long startformingProblem = System.nanoTime(); | ||
110 | BoolExpr problemInstance = formNumericProblemInstance(matches); | ||
111 | s.add(problemInstance); | ||
112 | endformingProblem = System.nanoTime()-startformingProblem; | ||
113 | long startSolvingProblem = System.nanoTime(); | ||
114 | boolean result = (s.check() == Status.SATISFIABLE); | ||
115 | endSolvingProblem = System.nanoTime()-startSolvingProblem; | ||
116 | this.ctx.close(); | ||
117 | return result; | ||
118 | } | ||
119 | |||
120 | public Map<PrimitiveElement,Number> getOneSolution(List<PrimitiveElement> objs, Map<XExpression, Iterable<Map<JvmIdentifiableElement,PrimitiveElement>>> matches) throws Exception { | ||
121 | Map<PrimitiveElement,Number> sol = new HashMap<PrimitiveElement, Number>(); | ||
122 | long startformingProblem = System.nanoTime(); | ||
123 | BoolExpr problemInstance = formNumericProblemInstance(matches); | ||
124 | endformingProblem = System.nanoTime()-startformingProblem; | ||
125 | //System.out.println("Forming problem: " + (endformingProblem - startformingProblem)); | ||
126 | s.add(problemInstance); | ||
127 | long startSolvingProblem = System.nanoTime(); | ||
128 | if (s.check() == Status.SATISFIABLE) { | ||
129 | Model m = s.getModel(); | ||
130 | endSolvingProblem = System.nanoTime()-startSolvingProblem; | ||
131 | //System.out.println("Solving problem: " + (endSolvingProblem - startSolvingProblem)); | ||
132 | long startFormingSolution = System.nanoTime(); | ||
133 | for (PrimitiveElement o: objs) { | ||
134 | if(varMap.containsKey(o)) { | ||
135 | if (o instanceof IntegerElement) { | ||
136 | IntExpr val =(IntExpr) m.evaluate(varMap.get(o), false); | ||
137 | Integer oSol = Integer.parseInt(val.toString()); | ||
138 | sol.put(o, oSol); | ||
139 | } else { | ||
140 | RealExpr val = (RealExpr) m.evaluate(varMap.get(o), false); | ||
141 | Double oSol = Double.parseDouble(val.toString()); | ||
142 | sol.put(o, oSol); | ||
143 | } | ||
144 | //System.out.println("Solution:" + o + "->" + oSol); | ||
145 | |||
146 | } else { | ||
147 | //System.out.println("not used var:" + o); | ||
148 | } | ||
149 | } | ||
150 | endFormingSolution = System.nanoTime()-startFormingSolution; | ||
151 | //System.out.println("Forming solution: " + (endFormingSolution - startFormingSolution)); | ||
152 | } else { | ||
153 | System.out.println("Unsatisfiable numerical problem"); | ||
154 | } | ||
155 | this.ctx.close(); | ||
156 | return sol; | ||
157 | } | ||
158 | |||
159 | private BoolExpr formNumericConstraint(XExpression e, Map<JvmIdentifiableElement, PrimitiveElement> aMatch) throws Exception { | ||
160 | if (!(e instanceof XBinaryOperation)) { | ||
161 | throw new Exception ("error in check expression!!!"); | ||
162 | } | ||
163 | |||
164 | String name = ((XBinaryOperation) e).getFeature().getQualifiedName(); | ||
165 | |||
166 | BoolExpr constraint = null; | ||
167 | |||
168 | ArithExpr left_operand = formNumericConstraintHelper(((XBinaryOperation) e).getLeftOperand(), aMatch); | ||
169 | ArithExpr right_operand = formNumericConstraintHelper(((XBinaryOperation) e).getRightOperand(), aMatch); | ||
170 | |||
171 | if (nameEndsWith(name, N_LESSTHAN)) { | ||
172 | constraint = ctx.mkLt(left_operand, right_operand); | ||
173 | } else if (nameEndsWith(name, N_LESSEQUALSTHAN)) { | ||
174 | constraint = ctx.mkLe(left_operand, right_operand); | ||
175 | } else if (nameEndsWith(name, N_GREATERTHAN)) { | ||
176 | constraint = ctx.mkGt(left_operand, right_operand); | ||
177 | } else if (nameEndsWith(name, N_GREATEREQUALTHAN)) { | ||
178 | constraint = ctx.mkGe(left_operand, right_operand); | ||
179 | } else if (nameEndsWith(name, N_EQUALS)) { | ||
180 | constraint = ctx.mkEq(left_operand, right_operand); | ||
181 | } else if (nameEndsWith(name, N_NOTEQUALS)) { | ||
182 | constraint = ctx.mkDistinct(left_operand, right_operand); | ||
183 | } else if (nameEndsWith(name, N_EQUALS3)) { | ||
184 | constraint = ctx.mkGe(left_operand, right_operand); // ??? | ||
185 | } else if (nameEndsWith(name, N_NOTEQUALS3)) { | ||
186 | constraint = ctx.mkGe(left_operand, right_operand); // ??? | ||
187 | } else { | ||
188 | throw new Exception ("Unsupported binary operation " + name); | ||
189 | } | ||
190 | |||
191 | return constraint; | ||
192 | } | ||
193 | |||
194 | private ArithExpr formNumericConstraintHelper(XExpression e, Map<JvmIdentifiableElement, PrimitiveElement> aMatch) throws Exception { | ||
195 | ArithExpr expr = null; | ||
196 | // Variables | ||
197 | if (e instanceof XFeatureCall) { | ||
198 | PrimitiveElement matchedObj = aMatch.get(((XFeatureCall) e).getFeature()); | ||
199 | boolean isInt = matchedObj instanceof IntegerElement; | ||
200 | if (!matchedObj.isValueSet()) { | ||
201 | if (varMap.get(matchedObj) == null) { | ||
202 | String var_name = ((XFeatureCall) e).getFeature().getQualifiedName() + matchedObj.toString(); | ||
203 | if (isInt) { | ||
204 | expr = (ArithExpr) ctx.mkConst(ctx.mkSymbol(var_name), ctx.getIntSort()); | ||
205 | } else { | ||
206 | expr = (ArithExpr) ctx.mkConst(ctx.mkSymbol(var_name), ctx.getRealSort()); | ||
207 | } | ||
208 | varMap.put(matchedObj, expr); | ||
209 | } else { | ||
210 | expr = (ArithExpr) varMap.get(matchedObj); | ||
211 | } | ||
212 | } else { | ||
213 | if (isInt) { | ||
214 | int value = ((IntegerElement) matchedObj).getValue(); | ||
215 | expr = (ArithExpr) ctx.mkInt(value); | ||
216 | } else { | ||
217 | double value = ((RealElement) matchedObj).getValue().doubleValue(); | ||
218 | expr = (ArithExpr) ctx.mkReal(String.valueOf(value)); | ||
219 | } | ||
220 | varMap.put(matchedObj, expr); | ||
221 | } | ||
222 | } | ||
223 | // Constants | ||
224 | else if (e instanceof XNumberLiteral) { | ||
225 | String value = ((XNumberLiteral) e).getValue(); | ||
226 | try{ | ||
227 | int val = Integer.parseInt(value); | ||
228 | expr = (ArithExpr) ctx.mkInt(val); | ||
229 | } catch(NumberFormatException err){ | ||
230 | try{ | ||
231 | expr = (ArithExpr) ctx.mkReal(value); | ||
232 | } catch(NumberFormatException err2){} | ||
233 | } | ||
234 | } | ||
235 | // Expressions with operators | ||
236 | else if (e instanceof XBinaryOperation) { | ||
237 | String name = ((XBinaryOperation) e).getFeature().getQualifiedName(); | ||
238 | ArithExpr left_operand = formNumericConstraintHelper(((XBinaryOperation) e).getLeftOperand(), aMatch); | ||
239 | ArithExpr right_operand = formNumericConstraintHelper(((XBinaryOperation) e).getRightOperand(), aMatch); | ||
240 | |||
241 | if (nameEndsWith(name, N_PLUS)) { | ||
242 | expr = ctx.mkAdd(left_operand, right_operand); | ||
243 | } else if (nameEndsWith(name, N_MINUS)) { | ||
244 | expr = ctx.mkAdd(left_operand, ctx.mkUnaryMinus(right_operand)); | ||
245 | } else if (nameEndsWith(name, N_POWER)) { | ||
246 | expr = ctx.mkPower(left_operand, right_operand); | ||
247 | } else if (nameEndsWith(name, N_MULTIPLY)) { | ||
248 | expr = ctx.mkMul(left_operand, right_operand); | ||
249 | } else if (nameEndsWith(name, N_DIVIDE)) { | ||
250 | expr = ctx.mkDiv(left_operand, right_operand); | ||
251 | } else if (nameEndsWith(name, N_MODULO)) { | ||
252 | expr = ctx.mkMod((IntExpr)left_operand, (IntExpr)right_operand); | ||
253 | } else { | ||
254 | throw new Exception ("Unsupported binary operation " + name); | ||
255 | } | ||
256 | } else { | ||
257 | throw new Exception ("Unsupported expression " + e.getClass().getSimpleName()); | ||
258 | } | ||
259 | return expr; | ||
260 | |||
261 | } | ||
262 | |||
263 | private boolean nameEndsWith(String name, String end) { | ||
264 | return name.startsWith(N_Base) && name.endsWith(end); | ||
265 | } | ||
266 | |||
267 | private BoolExpr formNumericProblemInstance(Map<XExpression, Iterable<Map<JvmIdentifiableElement,PrimitiveElement>>> matches) throws Exception { | ||
268 | BoolExpr constraintInstances = ctx.mkTrue(); | ||
269 | for (XExpression e: matches.keySet()) { | ||
270 | Iterable<Map<JvmIdentifiableElement, PrimitiveElement>> matchSets = matches.get(e); | ||
271 | for (Map<JvmIdentifiableElement, PrimitiveElement> aMatch: matchSets) { | ||
272 | BoolExpr constraintInstance = ctx.mkNot(formNumericConstraint(e, aMatch)); | ||
273 | constraintInstances = ctx.mkAnd(constraintInstances, constraintInstance); | ||
274 | } | ||
275 | } | ||
276 | return constraintInstances; | ||
277 | } | ||
278 | |||
279 | |||
280 | /* | ||
281 | public void testIsSat(XExpression expression, Term t) throws Exception { | ||
282 | int count = 10000; | ||
283 | Map<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>> matches = new HashMap<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>>(); | ||
284 | Set<Map<JvmIdentifiableElement,PrimitiveElement>> matchSet = new HashSet<Map<JvmIdentifiableElement,PrimitiveElement>>(); | ||
285 | ArrayList<JvmIdentifiableElement> allElem = getJvmIdentifiableElements(expression); | ||
286 | |||
287 | for (int i = 0; i < count; i++) { | ||
288 | Map<JvmIdentifiableElement,PrimitiveElement> match = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
289 | for (JvmIdentifiableElement e: allElem) { | ||
290 | FakeIntegerElement intE = new FakeIntegerElement(); | ||
291 | match.put(e, intE); | ||
292 | } | ||
293 | matchSet.add(match); | ||
294 | } | ||
295 | |||
296 | matches.put(expression, matchSet); | ||
297 | long start = System.currentTimeMillis(); | ||
298 | boolean sat = isSatisfiable(matches); | ||
299 | long end = System.currentTimeMillis(); | ||
300 | System.out.println(sat); | ||
301 | System.out.println("Number of matches: " + count); | ||
302 | System.out.println("Running time:" + (end - start)); | ||
303 | } | ||
304 | |||
305 | public void testIsNotSat(XExpression expression, Term t) throws Exception { | ||
306 | Map<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>> matches = new HashMap<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>>(); | ||
307 | Set<Map<JvmIdentifiableElement,PrimitiveElement>> matchSet = new HashSet<Map<JvmIdentifiableElement,PrimitiveElement>>(); | ||
308 | Map<JvmIdentifiableElement,PrimitiveElement> match = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
309 | ArrayList<JvmIdentifiableElement> allElem = getJvmIdentifiableElements(expression); | ||
310 | FakeIntegerElement int1 = null; | ||
311 | FakeIntegerElement int2 = null; | ||
312 | boolean first = true; | ||
313 | for (JvmIdentifiableElement e: allElem) { | ||
314 | FakeIntegerElement intE = new FakeIntegerElement(); | ||
315 | if (first) { | ||
316 | int1 = intE; | ||
317 | first = false; | ||
318 | } else { | ||
319 | int2 = intE; | ||
320 | } | ||
321 | |||
322 | match.put(e, intE); | ||
323 | } | ||
324 | matchSet.add(match); | ||
325 | |||
326 | Map<JvmIdentifiableElement,PrimitiveElement> match2 = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
327 | boolean first2 = true; | ||
328 | for (JvmIdentifiableElement e: allElem) { | ||
329 | if (first2) { | ||
330 | match2.put(e, int2); | ||
331 | first2 = false; | ||
332 | } else { | ||
333 | match2.put(e, int1); | ||
334 | } | ||
335 | } | ||
336 | matchSet.add(match2); | ||
337 | |||
338 | matches.put(expression, matchSet); | ||
339 | long start = System.currentTimeMillis(); | ||
340 | boolean sat = isSatisfiable(matches); | ||
341 | long end = System.currentTimeMillis(); | ||
342 | System.out.println(sat); | ||
343 | System.out.println("Number of matches: "); | ||
344 | System.out.println("Running time:" + (end - start)); | ||
345 | } | ||
346 | */ | ||
347 | |||
348 | /* public void testGetOneSol(XExpression expression, Term t) throws Exception { | ||
349 | int count = 10; | ||
350 | Map<XExpression, Iterable<Map<JvmIdentifiableElement,PrimitiveElement>>> matches = new HashMap<XExpression, Iterable<Map<JvmIdentifiableElement,PrimitiveElement>>>(); | ||
351 | Iterable<Map<JvmIdentifiableElement,PrimitiveElement>> matchSet = new ArrayList<Map<JvmIdentifiableElement,PrimitiveElement>>(); | ||
352 | |||
353 | ArrayList<JvmIdentifiableElement> allElem = getJvmIdentifiableElements(expression); | ||
354 | List<PrimitiveElement> obj = new ArrayList<PrimitiveElement>(); | ||
355 | |||
356 | for (int i = 0; i < count; i++) { | ||
357 | Map<JvmIdentifiableElement,PrimitiveElement> match = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
358 | for (JvmIdentifiableElement e: allElem) { | ||
359 | FakeIntegerElement intE = new FakeIntegerElement(); | ||
360 | obj.add(intE); | ||
361 | match.put(e, intE); | ||
362 | } | ||
363 | ((ArrayList) matchSet).add(match); | ||
364 | matches.put(expression, matchSet); | ||
365 | } | ||
366 | |||
367 | long start = System.currentTimeMillis(); | ||
368 | Map<PrimitiveElement,Integer> sol = getOneSolution(obj, matches); | ||
369 | long end = System.currentTimeMillis(); | ||
370 | |||
371 | |||
372 | // Print sol | ||
373 | for (Object o: sol.keySet()) { | ||
374 | System.out.println(o + " :" + sol.get(o)); | ||
375 | } | ||
376 | |||
377 | |||
378 | System.out.println("Number of matches: " + count); | ||
379 | System.out.println("Running time:" + (end - start)); | ||
380 | }*/ | ||
381 | /* | ||
382 | public void testGetOneSol2(XExpression expression, Term t) throws Exception { | ||
383 | int count = 250; | ||
384 | Map<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>> matches = new HashMap<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>>(); | ||
385 | Set<Map<JvmIdentifiableElement,PrimitiveElement>> matchSet = new HashSet<Map<JvmIdentifiableElement,PrimitiveElement>>(); | ||
386 | ArrayList<JvmIdentifiableElement> allElem = getJvmIdentifiableElements(expression); | ||
387 | List<Object> obj = new ArrayList<Object>(); | ||
388 | for (int i = 0; i < count; i++) { | ||
389 | Map<JvmIdentifiableElement,PrimitiveElement> match = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
390 | FakeIntegerElement int2 = null; | ||
391 | boolean first = false; | ||
392 | for (JvmIdentifiableElement e: allElem) { | ||
393 | FakeIntegerElement intE = new FakeIntegerElement(); | ||
394 | if (first) { | ||
395 | first = false; | ||
396 | } else { | ||
397 | int2 = intE; | ||
398 | } | ||
399 | obj.add(intE); | ||
400 | match.put(e, intE); | ||
401 | } | ||
402 | |||
403 | Map<JvmIdentifiableElement,PrimitiveElement> match2 = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
404 | boolean first2 = true; | ||
405 | for (JvmIdentifiableElement e: allElem) { | ||
406 | FakeIntegerElement intE = null; | ||
407 | if (first2) { | ||
408 | intE = int2; | ||
409 | first2 = false; | ||
410 | } else { | ||
411 | intE = new FakeIntegerElement(); | ||
412 | } | ||
413 | obj.add(intE); | ||
414 | match2.put(e, intE); | ||
415 | } | ||
416 | |||
417 | |||
418 | matchSet.add(match); | ||
419 | matchSet.add(match2); | ||
420 | } | ||
421 | matches.put(expression, matchSet); | ||
422 | |||
423 | System.out.println("Number of matches: " + matchSet.size()); | ||
424 | for (int i = 0; i < 10; i++) { | ||
425 | Map<Object,Integer> sol = getOneSolution(obj, matches); | ||
426 | System.out.println("**********************"); | ||
427 | Thread.sleep(3000); | ||
428 | } | ||
429 | } | ||
430 | |||
431 | public void testGetOneSol3(XExpression expression, Term t) throws Exception { | ||
432 | int count = 15000; | ||
433 | Random rand = new Random(); | ||
434 | Map<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>> matches = new HashMap<XExpression, Set<Map<JvmIdentifiableElement,PrimitiveElement>>>(); | ||
435 | Set<Map<JvmIdentifiableElement,PrimitiveElement>> matchSet = new HashSet<Map<JvmIdentifiableElement,PrimitiveElement>>(); | ||
436 | ArrayList<JvmIdentifiableElement> allElem = getJvmIdentifiableElements(expression); | ||
437 | List<Object> obj = new ArrayList<Object>(); | ||
438 | for (int i = 0; i < count; i++) { | ||
439 | Map<JvmIdentifiableElement,PrimitiveElement> match = new HashMap<JvmIdentifiableElement,PrimitiveElement>(); | ||
440 | if (obj.size() > 1) { | ||
441 | for (JvmIdentifiableElement e: allElem) { | ||
442 | FakeIntegerElement intE = null; | ||
443 | int useOld = rand.nextInt(10); | ||
444 | if (useOld == 1) { | ||
445 | System.out.println("here "); | ||
446 | int index = rand.nextInt(obj.size()); | ||
447 | intE = (FakeIntegerElement) obj.get(index); | ||
448 | } else { | ||
449 | intE = new FakeIntegerElement(); | ||
450 | } | ||
451 | obj.add(intE); | ||
452 | match.put(e, intE); | ||
453 | } | ||
454 | } else { | ||
455 | for (JvmIdentifiableElement e: allElem) { | ||
456 | FakeIntegerElement intE = new FakeIntegerElement(); | ||
457 | obj.add(intE); | ||
458 | match.put(e, intE); | ||
459 | } | ||
460 | } | ||
461 | matchSet.add(match); | ||
462 | } | ||
463 | matches.put(expression, matchSet); | ||
464 | |||
465 | System.out.println("Number of matches: " + matchSet.size()); | ||
466 | for (int i = 0; i < 10; i++) { | ||
467 | Map<Object,Integer> sol = getOneSolution(obj, matches); | ||
468 | System.out.println("**********************"); | ||
469 | Thread.sleep(3000); | ||
470 | } | ||
471 | } | ||
472 | */ | ||
473 | } | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend new file mode 100644 index 00000000..81bc1796 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericTranslator.xtend | |||
@@ -0,0 +1,80 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic | ||
2 | |||
3 | import org.eclipse.xtext.xbase.XExpression | ||
4 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation | ||
5 | import org.eclipse.xtext.common.types.JvmIdentifiableElement | ||
6 | import java.util.Set | ||
7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement | ||
8 | import java.util.Map | ||
9 | import com.microsoft.z3.BoolExpr | ||
10 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint | ||
11 | import java.util.Map.Entry | ||
12 | import org.eclipse.xtext.xbase.XFeatureCall | ||
13 | import java.util.Comparator | ||
14 | import java.util.ArrayList | ||
15 | import java.util.HashMap | ||
16 | import java.util.List | ||
17 | |||
18 | class NumericTranslator { | ||
19 | |||
20 | private XExpressionExtractor extractor = new XExpressionExtractor(); | ||
21 | |||
22 | long formingProblemTime=0; | ||
23 | long solvingProblemTime=0; | ||
24 | long formingSolutionTime=0; | ||
25 | |||
26 | val comparator = new Comparator<JvmIdentifiableElement>(){ | ||
27 | override compare(JvmIdentifiableElement o1, JvmIdentifiableElement o2) { | ||
28 | //println('''«o1.simpleName» - «o2.simpleName»''') | ||
29 | o1.simpleName.compareTo(o2.simpleName) | ||
30 | } | ||
31 | } | ||
32 | def Map<JvmIdentifiableElement, PrimitiveElement> arrayToMap(Object[] tuple, ArrayList<JvmIdentifiableElement> variablesInOrder) { | ||
33 | val res = new HashMap | ||
34 | for(var i=0; i<tuple.length; i++) { | ||
35 | res.put(variablesInOrder.get(i),tuple.get(i) as PrimitiveElement) | ||
36 | } | ||
37 | return res | ||
38 | } | ||
39 | def formNumericProblemInstance(Map<PConstraint, Iterable<Object[]>> matches) throws Exception { | ||
40 | val res = new HashMap | ||
41 | for (Entry<PConstraint, Iterable<Object[]>> entry: matches.entrySet()) { | ||
42 | val ExpressionEvaluation constraint = entry.getKey() as ExpressionEvaluation; | ||
43 | val XExpression expression = extractor.extractExpression(constraint.getEvaluator()); | ||
44 | val Iterable<Object[]> tuples = entry.getValue(); | ||
45 | val features = expression.eAllContents.filter(XFeatureCall).map[it.feature].toSet | ||
46 | val variablesInOrder = new ArrayList(features) | ||
47 | variablesInOrder.toList.sort(comparator) | ||
48 | //println(variablesInOrder) | ||
49 | val map = tuples.map[it.arrayToMap(variablesInOrder)] | ||
50 | res.put(expression,map) | ||
51 | } | ||
52 | return res | ||
53 | } | ||
54 | |||
55 | def delegateIsSatisfiable(Map<PConstraint, Iterable<Object[]>> matches) { | ||
56 | val input = formNumericProblemInstance(matches) | ||
57 | val solver = new NumericProblemSolver | ||
58 | val satisfiability = solver.isSatisfiable(input) | ||
59 | solver.updateTimes | ||
60 | return satisfiability | ||
61 | } | ||
62 | |||
63 | def delegateGetSolution(List<PrimitiveElement> primitiveElements, Map<PConstraint, Iterable<Object[]>> matches) { | ||
64 | val input = formNumericProblemInstance(matches) | ||
65 | val solver = new NumericProblemSolver | ||
66 | val solution = solver.getOneSolution(primitiveElements,input) | ||
67 | solver.updateTimes | ||
68 | return solution | ||
69 | } | ||
70 | |||
71 | private def updateTimes(NumericProblemSolver s) { | ||
72 | this.formingProblemTime += s.getEndformingProblem | ||
73 | this.solvingProblemTime += s.getEndSolvingProblem | ||
74 | this.formingSolutionTime += s.getEndFormingSolution | ||
75 | } | ||
76 | |||
77 | def getFormingProblemTime() {formingProblemTime} | ||
78 | def getSolvingProblemTime() {solvingProblemTime} | ||
79 | def getFormingSolutionTime() {formingSolutionTime} | ||
80 | } \ No newline at end of file | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend index 3b828170..74e03f71 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend | |||
@@ -4,48 +4,36 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | |||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | 4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | 6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput |
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.PrimitiveTypeReference | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable |
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery | 10 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery |
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsFactory | 11 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsFactory |
16 | import java.util.ArrayList | 12 | import java.util.ArrayList |
17 | import java.util.HashMap | 13 | import java.util.HashMap |
18 | import java.util.HashSet | ||
19 | import java.util.LinkedList | 14 | import java.util.LinkedList |
20 | import java.util.List | 15 | import java.util.List |
21 | import java.util.Map | 16 | import java.util.Map |
22 | import java.util.Set | 17 | import java.util.Set |
23 | import org.eclipse.emf.ecore.EAttribute | 18 | import org.eclipse.emf.ecore.EAttribute |
24 | import org.eclipse.emf.ecore.EClassifier | ||
25 | import org.eclipse.emf.ecore.EEnum | ||
26 | import org.eclipse.emf.ecore.EReference | 19 | import org.eclipse.emf.ecore.EReference |
27 | import org.eclipse.emf.ecore.EStructuralFeature | 20 | import org.eclipse.emf.ecore.EStructuralFeature |
28 | import org.eclipse.emf.ecore.EcorePackage | 21 | import org.eclipse.emf.ecore.util.EcoreUtil |
29 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification | 22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification |
30 | import org.eclipse.viatra.query.runtime.emf.EMFQueryMetaContext | 23 | import org.eclipse.viatra.query.runtime.emf.EMFQueryMetaContext |
31 | import org.eclipse.viatra.query.runtime.emf.types.BaseEMFTypeKey | ||
32 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey | ||
33 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey | ||
34 | import org.eclipse.viatra.query.runtime.matchers.context.IInputKey | ||
35 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey | ||
36 | import org.eclipse.viatra.query.runtime.matchers.planning.helpers.TypeHelper | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody | 24 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody |
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable | 26 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable |
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall | 28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall |
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PDisjunction | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter | 31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter |
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | 32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery |
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PBodyNormalizer | 33 | import org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PBodyNormalizer |
43 | import org.eclipse.xtend.lib.annotations.Data | 34 | import org.eclipse.xtend.lib.annotations.Data |
44 | 35 | ||
45 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 36 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
46 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PDisjunction | ||
47 | import org.eclipse.emf.ecore.util.EcoreUtil | ||
48 | import org.eclipse.viatra.query.runtime.emf.types.EClassUnscopedTransitiveInstancesKey | ||
49 | 37 | ||
50 | @Data class ViatraQuerySetDescriptor { | 38 | @Data class ViatraQuerySetDescriptor { |
51 | val List<? extends IQuerySpecification<?>> patterns | 39 | val List<? extends IQuerySpecification<?>> patterns |
@@ -57,24 +45,24 @@ class Viatra2LogicTrace { | |||
57 | public val Map<PQuery, RelationDefinition> query2Relation = new HashMap | 45 | public val Map<PQuery, RelationDefinition> query2Relation = new HashMap |
58 | public val Map<PQuery, TransfomedViatraQuery> query2Annotation = new HashMap | 46 | public val Map<PQuery, TransfomedViatraQuery> query2Annotation = new HashMap |
59 | public val Map<Pair<PQuery,PParameter>, Variable> parameter2Variable = new HashMap | 47 | public val Map<Pair<PQuery,PParameter>, Variable> parameter2Variable = new HashMap |
60 | //public val Map<PVariable, Variable> variable2Variable = new HashMap | ||
61 | } | 48 | } |
62 | class Viatra2LogicConfiguration { | 49 | class Viatra2LogicConfiguration { |
63 | public var normalize = true | 50 | public var normalize = true |
64 | public var transitiveClosureDepth = 3 | ||
65 | } | 51 | } |
66 | 52 | ||
67 | class Viatra2Logic { | 53 | class Viatra2Logic { |
68 | val extension LogicProblemBuilder builder = new LogicProblemBuilder | 54 | val extension LogicProblemBuilder builder = new LogicProblemBuilder |
69 | val extension Viatra2LogicAnnotationsFactory factory = Viatra2LogicAnnotationsFactory.eINSTANCE | 55 | val extension Viatra2LogicAnnotationsFactory factory = Viatra2LogicAnnotationsFactory.eINSTANCE |
70 | val normalizer = new PBodyNormalizer(EMFQueryMetaContext.DEFAULT) | 56 | val normalizer = new PBodyNormalizer(EMFQueryMetaContext.DEFAULT) |
57 | val Viatra2LogicTypeInferer typeInferer | ||
71 | 58 | ||
72 | val Ecore2Logic ecore2Logic | 59 | val Ecore2Logic ecore2Logic |
73 | Constraint2Logic constraint2Logic | 60 | Constraint2Logic constraint2Logic |
74 | 61 | ||
75 | new(Ecore2Logic ecore2Logic) { | 62 | new(Ecore2Logic ecore2Logic) { |
76 | this.ecore2Logic = ecore2Logic | 63 | this.ecore2Logic = ecore2Logic |
77 | constraint2Logic = new Constraint2Logic(ecore2Logic) | 64 | this.typeInferer = new Viatra2LogicTypeInferer(ecore2Logic) |
65 | this.constraint2Logic = new Constraint2Logic(ecore2Logic) | ||
78 | } | 66 | } |
79 | 67 | ||
80 | def TracedOutput<LogicProblem,Viatra2LogicTrace> transformQueries( | 68 | def TracedOutput<LogicProblem,Viatra2LogicTrace> transformQueries( |
@@ -82,65 +70,55 @@ class Viatra2Logic { | |||
82 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | 70 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, |
83 | Viatra2LogicConfiguration config) | 71 | Viatra2LogicConfiguration config) |
84 | { | 72 | { |
73 | // Create trace | ||
85 | val viatra2LogicTrace = new Viatra2LogicTrace | 74 | val viatra2LogicTrace = new Viatra2LogicTrace |
86 | val typeAlanysis = new HashMap | 75 | |
76 | // Translation works on PQueries. QuerySpecification -> PQuery. | ||
87 | val pQueries = queries.patterns.map[it.internalQueryRepresentation] | 77 | val pQueries = queries.patterns.map[it.internalQueryRepresentation] |
88 | 78 | ||
89 | for(query: pQueries) { | 79 | // If requested, the queries are normalized |
90 | val disjunction = normalizer.rewrite(query) | 80 | for(query: pQueries) { |
81 | val disjunction = normalizer.rewrite(query) | ||
91 | viatra2LogicTrace.query2Disjunction.put(query,disjunction) | 82 | viatra2LogicTrace.query2Disjunction.put(query,disjunction) |
92 | } | 83 | } |
93 | 84 | ||
94 | for(query: pQueries) { | 85 | // The types are calculated |
95 | val types = query.lookup(viatra2LogicTrace.query2Disjunction).bodies.toInvertedMap[ | 86 | val types = typeInferer.inferTypes(pQueries,ecore2LogicTrace,viatra2LogicTrace) |
96 | TypeHelper::inferUnaryTypesFor(it.uniqueVariables,it.constraints,EMFQueryMetaContext.DEFAULT) | ||
97 | ] | ||
98 | // for(m : types.values) { | ||
99 | // for(n: m.entrySet) { | ||
100 | // val variable = n.key | ||
101 | // println(''' - «variable.name»''') | ||
102 | // for(type : n.value) { | ||
103 | // println('''«variable.name» - «type»''') | ||
104 | // } | ||
105 | // } | ||
106 | // | ||
107 | // } | ||
108 | |||
109 | typeAlanysis.put(query,types) | ||
110 | } | ||
111 | 87 | ||
88 | // First, the signature of the queries are translated, ... | ||
112 | for(query: pQueries) { | 89 | for(query: pQueries) { |
113 | try { | 90 | try { |
114 | this.transformQueryHeader(query,query.lookup(typeAlanysis),ecore2LogicTrace,viatra2LogicTrace,config) | 91 | this.transformQueryHeader(query,types,ecore2LogicTrace,viatra2LogicTrace,config) |
115 | } catch(IllegalArgumentException e) { | 92 | } catch(IllegalArgumentException e) { |
116 | throw new IllegalArgumentException(''' | 93 | throw new IllegalArgumentException(''' |
117 | Unable to translate query "«query.fullyQualifiedName»". | 94 | Unable to translate query "«query.fullyQualifiedName»". |
118 | Reason: «e.class.simpleName», «e.message»''',e) | 95 | Reason: «e.class.simpleName», «e.message»''',e) |
119 | } | 96 | } |
120 | } | 97 | } |
98 | |||
99 | // ...then the bodies, ... | ||
121 | for(query: pQueries) { | 100 | for(query: pQueries) { |
122 | try { | 101 | try { |
123 | this.transformQuerySpecification(query,query.lookup(typeAlanysis),ecore2LogicTrace,viatra2LogicTrace,config) | 102 | this.transformQuerySpecification(query,types,ecore2LogicTrace,viatra2LogicTrace,config) |
124 | } catch (IllegalArgumentException e){ | 103 | } catch (IllegalArgumentException e){ |
125 | throw new IllegalArgumentException(''' | 104 | throw new IllegalArgumentException(''' |
126 | Unable to translate query "«query.fullyQualifiedName»". | 105 | Unable to translate query "«query.fullyQualifiedName»". |
127 | Reason: «e.class.simpleName», «e.message»''',e) | 106 | Reason: «e.class.simpleName», «e.message»''',e) |
128 | } | 107 | } |
129 | } | 108 | } |
130 | /*for(d : viatra2LogicTrace.query2Relation.values) { | ||
131 | checkDefinition(d) | ||
132 | }*/ | ||
133 | 109 | ||
110 | // ... and finally, the annotations. | ||
134 | transformQueryConstraints( | 111 | transformQueryConstraints( |
135 | queries.validationPatterns.map[internalQueryRepresentation], | 112 | queries.validationPatterns.map[internalQueryRepresentation], |
136 | queries.derivedFeatures, | 113 | queries.derivedFeatures, |
137 | ecore2LogicTrace,viatra2LogicTrace) | 114 | ecore2LogicTrace,viatra2LogicTrace) |
115 | |||
138 | return new TracedOutput(ecore2LogicTrace.output,viatra2LogicTrace) | 116 | return new TracedOutput(ecore2LogicTrace.output,viatra2LogicTrace) |
139 | } | 117 | } |
140 | 118 | ||
141 | def protected transformQueryHeader( | 119 | def protected transformQueryHeader( |
142 | PQuery pquery, | 120 | PQuery pquery, |
143 | Map<PBody, Map<PVariable, Set<IInputKey>>> types, | 121 | Viatra2LogicTypeResult types, |
144 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | 122 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, |
145 | Viatra2LogicTrace viatra2LogicTrace, | 123 | Viatra2LogicTrace viatra2LogicTrace, |
146 | Viatra2LogicConfiguration config) | 124 | Viatra2LogicConfiguration config) |
@@ -149,7 +127,7 @@ class Viatra2Logic { | |||
149 | val parameters = new ArrayList<Variable>(pquery.parameters.size) | 127 | val parameters = new ArrayList<Variable>(pquery.parameters.size) |
150 | for(vParam: pquery.parameters) { | 128 | for(vParam: pquery.parameters) { |
151 | val parameterName = '''parameter «vParam.name»''' | 129 | val parameterName = '''parameter «vParam.name»''' |
152 | val parameterType = getType(vParam,types,ecore2LogicTrace) | 130 | val parameterType = types.getType(pquery,vParam) |
153 | if(parameterType === null) { | 131 | if(parameterType === null) { |
154 | throw new AssertionError('''null type for parameter «vParam.name» in pattern «pquery.fullyQualifiedName»''') | 132 | throw new AssertionError('''null type for parameter «vParam.name» in pattern «pquery.fullyQualifiedName»''') |
155 | } | 133 | } |
@@ -166,6 +144,7 @@ class Viatra2Logic { | |||
166 | it.target = lRelation | 144 | it.target = lRelation |
167 | it.patternFullyQualifiedName = pquery.fullyQualifiedName | 145 | it.patternFullyQualifiedName = pquery.fullyQualifiedName |
168 | it.patternPQuery = pquery | 146 | it.patternPQuery = pquery |
147 | it.optimizedDisjunction = viatra2LogicTrace.query2Disjunction.get(pquery) | ||
169 | ] | 148 | ] |
170 | viatra2LogicTrace.query2Annotation.put(pquery,annotation) | 149 | viatra2LogicTrace.query2Annotation.put(pquery,annotation) |
171 | ecore2LogicTrace.output.annotations += annotation | 150 | ecore2LogicTrace.output.annotations += annotation |
@@ -175,7 +154,7 @@ class Viatra2Logic { | |||
175 | 154 | ||
176 | def protected transformQuerySpecification( | 155 | def protected transformQuerySpecification( |
177 | PQuery pquery, | 156 | PQuery pquery, |
178 | Map<PBody, Map<PVariable, Set<IInputKey>>> types, | 157 | Viatra2LogicTypeResult types, |
179 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | 158 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, |
180 | Viatra2LogicTrace viatra2LogicTrace, | 159 | Viatra2LogicTrace viatra2LogicTrace, |
181 | Viatra2LogicConfiguration config) | 160 | Viatra2LogicConfiguration config) |
@@ -233,7 +212,7 @@ class Viatra2Logic { | |||
233 | } | 212 | } |
234 | 213 | ||
235 | def transformBody(PBody body, | 214 | def transformBody(PBody body, |
236 | Map<PBody, Map<PVariable, Set<IInputKey>>> types, | 215 | Viatra2LogicTypeResult types, |
237 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | 216 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, |
238 | Viatra2LogicTrace viatra2LogicTrace, | 217 | Viatra2LogicTrace viatra2LogicTrace, |
239 | Viatra2LogicConfiguration config) | 218 | Viatra2LogicConfiguration config) |
@@ -248,19 +227,33 @@ class Viatra2Logic { | |||
248 | // Inner Variables | 227 | // Inner Variables |
249 | val innerPositiveVariables = new LinkedList | 228 | val innerPositiveVariables = new LinkedList |
250 | val innerNegativeVariables = new LinkedList | 229 | val innerNegativeVariables = new LinkedList |
230 | val innerAggreatedVariables = new LinkedList | ||
231 | //println(body.uniqueVariables) | ||
251 | for(innerVariable : body.uniqueVariables) { | 232 | for(innerVariable : body.uniqueVariables) { |
252 | 233 | ||
253 | if(!variable2Variable.containsKey(innerVariable)) { | 234 | if(!variable2Variable.containsKey(innerVariable)) { |
254 | val name = '''variable «innerVariable.name.normalizeName»''' | 235 | if(innerVariable.aggregateOnly) { |
255 | //println(body.pattern.fullyQualifiedName + "-") | 236 | // do not create variable |
256 | val logicType = getType(innerVariable,types,ecore2LogicTrace) | 237 | innerAggreatedVariables.add(innerVariable) |
257 | val logicVariable = createVar(name,logicType) | 238 | variable2Variable.put(innerVariable,null) |
258 | if(innerVariable.isPositiveVariable) { | ||
259 | innerPositiveVariables += logicVariable | ||
260 | } else { | 239 | } else { |
261 | innerNegativeVariables += logicVariable | 240 | val name = '''variable «innerVariable.name.normalizeName»''' |
241 | val logicType = types.getType(body,innerVariable) | ||
242 | if(logicType === null) { | ||
243 | throw new IllegalArgumentException('''Variable «innerVariable.name.normalizeName» has no type!''') | ||
244 | } | ||
245 | val logicVariable = createVar(name,logicType) | ||
246 | if(innerVariable.negativeOnly) { | ||
247 | innerNegativeVariables += logicVariable | ||
248 | } else { | ||
249 | innerPositiveVariables += logicVariable | ||
250 | } | ||
251 | variable2Variable.put(innerVariable,logicVariable) | ||
252 | body.pattern.lookup(viatra2LogicTrace.query2Annotation).variableTrace += createVariableMapping=>[ | ||
253 | it.sourcePVariable = innerVariable | ||
254 | it.targetLogicVariable = logicVariable | ||
255 | ] | ||
262 | } | 256 | } |
263 | variable2Variable.put(innerVariable,logicVariable) | ||
264 | } | 257 | } |
265 | } | 258 | } |
266 | 259 | ||
@@ -279,229 +272,39 @@ class Viatra2Logic { | |||
279 | } else { | 272 | } else { |
280 | Exists(innerPositiveVariables,allNegativeVariablesAreSatisfied); | 273 | Exists(innerPositiveVariables,allNegativeVariablesAreSatisfied); |
281 | } | 274 | } |
282 | 275 | ||
283 | return allVariablesAreExisting | 276 | return allVariablesAreExisting |
284 | } | 277 | } |
285 | // def toTypeJudgement(PVariable v, IInputKey key) { | ||
286 | // new TypeJudgement(key,new Tuple1) | ||
287 | // } | ||
288 | 278 | ||
289 | def private normalizeName(String variableName) { | 279 | def private normalizeName(String variableName) { |
290 | return variableName.replaceAll("[\\W]|_", "") | 280 | return variableName.replaceAll("[\\W]|_", "") |
291 | } | 281 | } |
292 | |||
293 | /** | ||
294 | * Translates the type of a parameter variable in a pattern | ||
295 | */ | ||
296 | def TypeReference getType(PParameter v, Map<PBody, Map<PVariable, Set<IInputKey>>> types, TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
297 | // If parameter type is specified then the specified type is used | ||
298 | if(v.declaredUnaryType !== null) { | ||
299 | val res = transformTypeReference(v.declaredUnaryType,ecore2LogicTrace) | ||
300 | if(res === null) { | ||
301 | throw new AssertionError(''' | ||
302 | Unable to translate declared type «v.declaredUnaryType». | ||
303 | ''') | ||
304 | } else { | ||
305 | return res | ||
306 | } | ||
307 | } | ||
308 | // Otherwise, calculate the type based on the type of the variable in the bodies | ||
309 | else { | ||
310 | val bodies = types.keySet | ||
311 | val typesFromBodies = new ArrayList(bodies.size) | ||
312 | for(body : bodies) { | ||
313 | // collect the variable in the body | ||
314 | val exported = body.symbolicParameters.filter[it.patternParameter === v] | ||
315 | if(exported.size !== 1) { | ||
316 | throw new AssertionError('''Parameter «v.name» has no reference in body!''') | ||
317 | } | ||
318 | val variable = exported.head.parameterVariable | ||
319 | typesFromBodies+=variable.getType(types,ecore2LogicTrace) | ||
320 | } | ||
321 | return typesFromBodies.calculateCommonSupertype | ||
322 | } | ||
323 | } | ||
324 | |||
325 | /** | ||
326 | * Translates the type of a variable in a pattern body | ||
327 | */ | ||
328 | def TypeReference getType(PVariable v, Map<PBody, Map<PVariable, Set<IInputKey>>> types ,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
329 | if (v.isPositiveVariable) { | ||
330 | val keys = getTypesFromCollection(v,types) | ||
331 | val logicTypes = keys.map[transformTypeReference(it,ecore2LogicTrace)].filterNull | ||
332 | return logicTypes.calculateCommonSubtype | ||
333 | } else { | ||
334 | val onlyConstraint = v.referringConstraints.head as NegativePatternCall | ||
335 | val indexOfVariable = v.lookup(onlyConstraint.actualParametersTuple.invertIndex) | ||
336 | val parameter = onlyConstraint.referredQuery.parameters.get(indexOfVariable) | ||
337 | val declaredUnaryType = parameter.declaredUnaryType as BaseEMFTypeKey<? extends EClassifier> | ||
338 | if (declaredUnaryType === null) { | ||
339 | throw new UnsupportedOperationException( | ||
340 | '''parameter «parameter.name» in pattern «onlyConstraint.referredQuery.fullyQualifiedName» does not have type!''') | ||
341 | } else | ||
342 | return declaredUnaryType.transformTypeReference(ecore2LogicTrace) | ||
343 | } | ||
344 | } | ||
345 | |||
346 | def getTypesFromCollection(PVariable v, Map<PBody, Map<PVariable, Set<IInputKey>>> types) { | ||
347 | for(entry : types.entrySet) { | ||
348 | if(entry.key.uniqueVariables.contains(v)) { | ||
349 | return v.lookup(entry.value) | ||
350 | } | ||
351 | } | ||
352 | throw new IllegalArgumentException('''Variable «v.name» is not present in neither of the bodies!''') | ||
353 | } | ||
354 | |||
355 | 282 | ||
356 | def TypeReference calculateCommonSubtype(Iterable<TypeReference> types) { | 283 | def isNegativeOnly(PVariable variable) { |
357 | val primitiveTypeReferences = types.filter(PrimitiveTypeReference) | 284 | if(variable.referringConstraints.size == 1) { |
358 | val complexTypeReferences = types.filter(ComplexTypeReference) | 285 | val PConstraint onlyConstraint = variable.referringConstraints.head |
359 | if(complexTypeReferences.isEmpty) { | 286 | if(onlyConstraint instanceof NegativePatternCall) { |
360 | val head = primitiveTypeReferences.head | 287 | return true |
361 | if(primitiveTypeReferences.exists[it.eClass !== head.eClass]) { | 288 | } else { |
362 | throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | 289 | return false |
363 | } | ||
364 | return head | ||
365 | } else if(primitiveTypeReferences.isEmpty) { | ||
366 | val complexTypes = complexTypeReferences.map[it.referred].toSet | ||
367 | if(complexTypes.size === 1) { | ||
368 | return builder.toTypeReference(complexTypes.head) | ||
369 | } | ||
370 | // Collect possible subtypes | ||
371 | val subtypeSets = complexTypes.map[it.transitiveClosureStar[it.subtypes].toSet] | ||
372 | val commonTypeSet = new HashSet(subtypeSets.head) | ||
373 | val otherSets = subtypeSets.tail | ||
374 | for(otherSet : otherSets) { | ||
375 | commonTypeSet.retainAll(otherSet) | ||
376 | } | ||
377 | if(commonTypeSet.empty) { | ||
378 | throw new IllegalArgumentException('''Inconsistent types: «complexTypes.map[name].toList»''') | ||
379 | } | ||
380 | |||
381 | return calculateCommonComplexSupertype(commonTypeSet) | ||
382 | |||
383 | } else { | ||
384 | throw new IllegalArgumentException(''' | ||
385 | Inconsistent types, mixing primitive and complex types: | ||
386 | «primitiveTypeReferences.map[eClass.name].toSet.toList» | ||
387 | and | ||
388 | «complexTypeReferences.map[it.referred].toSet.map[name].toList»''') | ||
389 | |||
390 | } | ||
391 | } | ||
392 | def TypeReference calculateCommonSupertype(Iterable<TypeReference> types) { | ||
393 | val primitiveTypeReferences = types.filter(PrimitiveTypeReference) | ||
394 | val complexTypeReferences = types.filter(ComplexTypeReference) | ||
395 | if(complexTypeReferences.isEmpty) { | ||
396 | val head = primitiveTypeReferences.head | ||
397 | if(primitiveTypeReferences.exists[it.eClass !== head.eClass]) { | ||
398 | throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | ||
399 | } | ||
400 | return head | ||
401 | } else if(primitiveTypeReferences.isEmpty) { | ||
402 | val complexTypes = complexTypeReferences.map[it.referred].toSet | ||
403 | return calculateCommonComplexSupertype(complexTypes) | ||
404 | |||
405 | } else { | ||
406 | throw new IllegalArgumentException(''' | ||
407 | Inconsistent types, mixing primitive and complex types: | ||
408 | «primitiveTypeReferences.map[eClass.name].toSet.toList» | ||
409 | and | ||
410 | «complexTypeReferences.map[it.referred].toSet.map[name].toList»''') | ||
411 | |||
412 | } | ||
413 | } | ||
414 | def TypeReference calculateCommonComplexSupertype(Set<Type> complexTypes) { | ||
415 | if(complexTypes.size === 1) { | ||
416 | return builder.toTypeReference(complexTypes.head) | ||
417 | } | ||
418 | // Collect possible supertypes | ||
419 | val supertypeSets = complexTypes.map[it.transitiveClosureStar[it.supertypes].toSet] | ||
420 | val commonTypeSet = new HashSet(supertypeSets.head) | ||
421 | val otherSets = supertypeSets.tail | ||
422 | for(otherSet : otherSets) { | ||
423 | commonTypeSet.retainAll(otherSet) | ||
424 | } | ||
425 | if(commonTypeSet.empty) { | ||
426 | throw new IllegalArgumentException('''Inconsistent types: «complexTypes.map[name].toList»''') | ||
427 | } | ||
428 | // Remove type that already have covered | ||
429 | val coveredTypes = commonTypeSet.map[it.supertypes].flatten | ||
430 | commonTypeSet.removeAll(coveredTypes) | ||
431 | return builder.toTypeReference(commonTypeSet.head) | ||
432 | } | ||
433 | |||
434 | /** | ||
435 | * Transforms a Viatra type reference to a logic type. | ||
436 | */ | ||
437 | def dispatch TypeReference transformTypeReference(EDataTypeInSlotsKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
438 | val w = k.wrappedKey | ||
439 | if(w == EcorePackage.Literals.EINT || w == EcorePackage.Literals.ESHORT || w == EcorePackage.Literals.ELONG) { | ||
440 | return builder.LogicInt | ||
441 | } else if(w == EcorePackage.Literals.EDOUBLE || w == EcorePackage.Literals.EFLOAT) { | ||
442 | return builder.LogicReal | ||
443 | } else if(w == EcorePackage.Literals.EBOOLEAN) { | ||
444 | return builder.LogicBool | ||
445 | } else if(w == EcorePackage.Literals.ESTRING) { | ||
446 | return builder.LogicString | ||
447 | } else if(w instanceof EEnum) { | ||
448 | val c = this.ecore2Logic.TypeofEEnum(ecore2LogicTrace.trace,w) | ||
449 | return builder.toTypeReference(c); | ||
450 | } else throw new UnsupportedOperationException('''Unknown reference type «w.class.name»''') | ||
451 | } | ||
452 | def dispatch TypeReference transformTypeReference(JavaTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
453 | val c = k.wrapperInstanceClass | ||
454 | if(c == Integer || c == Long || c == Short) { | ||
455 | return LogicInt | ||
456 | } else if(c == Float || c == Double) { | ||
457 | return LogicReal | ||
458 | } else if(c == Boolean) { | ||
459 | return LogicBool | ||
460 | } else if(c == String) { | ||
461 | return LogicString | ||
462 | } else if(c.superclass == java.lang.Enum){ | ||
463 | val enums = ecore2Logic.allEnumsInScope(ecore2LogicTrace.trace) | ||
464 | for(enum : enums) { | ||
465 | if(c == enum.instanceClass) { | ||
466 | return builder.toTypeReference(ecore2Logic.TypeofEEnum(ecore2LogicTrace.trace,enum)) | ||
467 | } | ||
468 | } | 290 | } |
469 | throw new IllegalArgumentException('''Enum type «c.simpleName» is not mapped to logic!''') | ||
470 | } | ||
471 | return null | ||
472 | } | ||
473 | def dispatch TypeReference transformTypeReference(EClassTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
474 | val c = k.wrappedKey | ||
475 | |||
476 | if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) { | ||
477 | return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey)) | ||
478 | } else { | 291 | } else { |
479 | return null | 292 | return false |
480 | } | 293 | } |
481 | } | 294 | } |
482 | def dispatch TypeReference transformTypeReference(EClassUnscopedTransitiveInstancesKey k, TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
483 | val c = k.wrappedKey | ||
484 | |||
485 | if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) { | ||
486 | return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey)) | ||
487 | } else { | ||
488 | return null | ||
489 | } | ||
490 | } | ||
491 | |||
492 | def dispatch TypeReference transformTypeReference(IInputKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
493 | //println(k) | ||
494 | throw new IllegalArgumentException('''Unsupported type: «k.class.simpleName»''') | ||
495 | } | ||
496 | 295 | ||
497 | def boolean isPositiveVariable(PVariable v) { | 296 | def isAggregateOnly(PVariable variable) { |
498 | val constraints = v.referringConstraints | 297 | if(variable.referringConstraints.size == 1) { |
499 | if(constraints.size == 1) { | 298 | val PConstraint onlyConstraint = variable.referringConstraints.head |
500 | val onlyConstraint = constraints.head | 299 | if(onlyConstraint instanceof AggregatorConstraint) { |
501 | if(onlyConstraint instanceof NegativePatternCall) { | 300 | return true |
301 | } else if(onlyConstraint instanceof PatternMatchCounter) { | ||
302 | return true | ||
303 | } else { | ||
502 | return false | 304 | return false |
503 | } | 305 | } |
306 | } else { | ||
307 | return false | ||
504 | } | 308 | } |
505 | return true | ||
506 | } | 309 | } |
507 | } \ No newline at end of file | 310 | } \ No newline at end of file |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeInferer.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeInferer.xtend new file mode 100644 index 00000000..b8a6b9c1 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeInferer.xtend | |||
@@ -0,0 +1,392 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.PrimitiveTypeReference | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | ||
14 | import java.util.HashMap | ||
15 | import java.util.HashSet | ||
16 | import java.util.List | ||
17 | import java.util.Set | ||
18 | import org.eclipse.emf.ecore.EEnum | ||
19 | import org.eclipse.emf.ecore.EcorePackage | ||
20 | import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup | ||
21 | import org.eclipse.viatra.query.patternlanguage.emf.specification.XBaseEvaluator | ||
22 | import org.eclipse.viatra.query.runtime.emf.EMFQueryMetaContext | ||
23 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey | ||
24 | import org.eclipse.viatra.query.runtime.emf.types.EClassUnscopedTransitiveInstancesKey | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey | ||
26 | import org.eclipse.viatra.query.runtime.matchers.context.IInputKey | ||
27 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey | ||
28 | import org.eclipse.viatra.query.runtime.matchers.planning.helpers.TypeHelper | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternCallBasedDeferred | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | ||
38 | import org.eclipse.xtext.xbase.XExpression | ||
39 | import org.eclipse.xtext.xbase.typesystem.IBatchTypeResolver | ||
40 | import org.eclipse.xtext.xbase.typesystem.references.UnknownTypeReference | ||
41 | |||
42 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | ||
43 | import org.eclipse.xtext.xbase.typesystem.references.InnerTypeReference | ||
44 | |||
45 | class Viatra2LogicTypeInferer{ | ||
46 | val Ecore2Logic ecore2Logic | ||
47 | val extension LogicProblemBuilder builder = new LogicProblemBuilder | ||
48 | /**Typeresolver uses the same resolver as EMFPatternLanguageStandaloneSetup.*/ | ||
49 | val IBatchTypeResolver typeResolver = | ||
50 | (new EMFPatternLanguageStandaloneSetup).createInjector.getInstance(IBatchTypeResolver) | ||
51 | val expressionExtractor = new XExpressionExtractor | ||
52 | |||
53 | new(Ecore2Logic ecore2Logic) { | ||
54 | this.ecore2Logic = ecore2Logic | ||
55 | } | ||
56 | |||
57 | def Viatra2LogicTypeResult inferTypes(List<PQuery> pQueries, TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, Viatra2LogicTrace viatra2LogicTrace) { | ||
58 | val Viatra2LogicTypeResult result = new Viatra2LogicTypeResult(new HashMap,new HashMap); | ||
59 | for(query : pQueries) { | ||
60 | for(body: query.lookup(viatra2LogicTrace.query2Disjunction).bodies) { | ||
61 | for(variable : body.uniqueVariables) { | ||
62 | getOrMakeTypeDecision(result,variable,body,ecore2LogicTrace,viatra2LogicTrace,emptySet) | ||
63 | } | ||
64 | } | ||
65 | for(parameter: query.parameters) { | ||
66 | getOrMakeTypeDecision(result,query,parameter,ecore2LogicTrace,viatra2LogicTrace,emptySet) | ||
67 | } | ||
68 | } | ||
69 | return result | ||
70 | } | ||
71 | |||
72 | private def TypeReference getOrMakeTypeDecision( | ||
73 | Viatra2LogicTypeResult result, | ||
74 | PVariable variable, PBody body, | ||
75 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
76 | Viatra2LogicTrace viatra2LogicTrace, | ||
77 | Set<? extends PParameter> checkedInDecisionMaking) | ||
78 | { | ||
79 | if(result.containsSolution(body,variable)) { | ||
80 | return result.getType(body,variable) | ||
81 | } else { | ||
82 | val inferredTypesByViatra = TypeHelper::inferUnaryTypesFor(body.uniqueVariables, body.constraints, EMFQueryMetaContext.DEFAULT) | ||
83 | val constraintsForVariable = variable.lookup(inferredTypesByViatra) | ||
84 | |||
85 | val typeConstraintsDerivedByTypeHelper = constraintsForVariable.map[transformTypeReference(ecore2LogicTrace)] | ||
86 | val typesFromEval = variable.getTypesFromEval(typeResolver) | ||
87 | val typesFromAggregatorResult = variable.getTypeFromPassivePatternCallConstraintResult( | ||
88 | result, | ||
89 | ecore2LogicTrace, | ||
90 | viatra2LogicTrace, | ||
91 | checkedInDecisionMaking) | ||
92 | |||
93 | val typesFromPositiveReasoning = (typeConstraintsDerivedByTypeHelper + typesFromEval + typesFromAggregatorResult).filterNull | ||
94 | |||
95 | val types = if(!typesFromPositiveReasoning.empty) { | ||
96 | typesFromPositiveReasoning | ||
97 | } else { | ||
98 | variable.getTypeFromPassivePatternCallConstraints( | ||
99 | result, | ||
100 | ecore2LogicTrace, | ||
101 | viatra2LogicTrace, | ||
102 | checkedInDecisionMaking) | ||
103 | } | ||
104 | |||
105 | val commonSubtype = this.calculateCommonSubtype(types) | ||
106 | |||
107 | result.addType(body,variable,commonSubtype) | ||
108 | return commonSubtype | ||
109 | } | ||
110 | } | ||
111 | |||
112 | private def TypeReference getOrMakeTypeDecision( | ||
113 | Viatra2LogicTypeResult result, | ||
114 | PQuery query, | ||
115 | PParameter parameter, | ||
116 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
117 | Viatra2LogicTrace viatra2LogicTrace, | ||
118 | Set<? extends PParameter> checkedInDecisionMaking) | ||
119 | { | ||
120 | if(checkedInDecisionMaking.contains(parameter)) { | ||
121 | return null | ||
122 | } | ||
123 | if(result.containsSolution(parameter)) { | ||
124 | return result.getType(query, parameter) | ||
125 | } | ||
126 | |||
127 | var TypeReference typeReference; | ||
128 | |||
129 | if(parameter.declaredUnaryType !== null) { | ||
130 | val key = parameter.declaredUnaryType | ||
131 | typeReference = key.transformTypeReference(ecore2LogicTrace) | ||
132 | } else { | ||
133 | val bodies = query.lookup(viatra2LogicTrace.query2Disjunction).bodies | ||
134 | val newChecked = new HashSet(checkedInDecisionMaking) => [add(parameter)] | ||
135 | val Iterable<TypeReference> variableTypes = bodies.map[body| | ||
136 | val symbolicParameter = body.symbolicParameters.filter[patternParameter === parameter].head | ||
137 | val variable = symbolicParameter.parameterVariable | ||
138 | getOrMakeTypeDecision(result,variable,body,ecore2LogicTrace,viatra2LogicTrace,newChecked) | ||
139 | ] | ||
140 | typeReference = calculateCommonSupertype(variableTypes) | ||
141 | } | ||
142 | result.addType(query,parameter,typeReference) | ||
143 | return typeReference | ||
144 | } | ||
145 | |||
146 | private def Iterable<? extends TypeReference> getTypesFromEval(PVariable v, IBatchTypeResolver typeResolver) { | ||
147 | val constraints = v.getReferringConstraintsOfType( | ||
148 | typeof(ExpressionEvaluation) | ||
149 | ).filter[ | ||
150 | it.outputVariable === v | ||
151 | ] | ||
152 | val res = constraints.map[getTypeFromEval] | ||
153 | return res | ||
154 | } | ||
155 | |||
156 | def TypeReference getTypeFromEval(ExpressionEvaluation evaluation) { | ||
157 | val XExpression expression = expressionExtractor.extractExpression(evaluation.evaluator) | ||
158 | val returnType = typeResolver.resolveTypes(expression).getReturnType(expression); | ||
159 | if(returnType === null || returnType instanceof UnknownTypeReference) { | ||
160 | return null | ||
161 | } else { | ||
162 | val javaIdentifier = returnType.wrapperTypeIfPrimitive.javaIdentifier | ||
163 | if(javaIdentifier == Boolean.name) { | ||
164 | return LogicBool | ||
165 | } else if(javaIdentifier == Integer.name || javaIdentifier == Short.name) { | ||
166 | return LogicInt | ||
167 | } else if(javaIdentifier == Double.name || javaIdentifier == Float.name){ | ||
168 | return LogicReal | ||
169 | } else if(javaIdentifier == String.name) { | ||
170 | return LogicString | ||
171 | } else { | ||
172 | throw new UnsupportedOperationException('''Unsupported eval type: "«javaIdentifier»"!''') | ||
173 | } | ||
174 | } | ||
175 | } | ||
176 | |||
177 | private def getTypeFromPassivePatternCallConstraintResult( | ||
178 | PVariable v, | ||
179 | Viatra2LogicTypeResult result, | ||
180 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
181 | Viatra2LogicTrace viatra2LogicTrace, | ||
182 | Set<? extends PParameter> checkedInDecisionMaking | ||
183 | ) { | ||
184 | val referringConstraints = v.referringConstraints | ||
185 | |||
186 | val referringCountMatcherTargeting = referringConstraints | ||
187 | .filter(PatternMatchCounter) | ||
188 | .filter[it.resultVariable === v] | ||
189 | .map[builder.LogicInt] | ||
190 | val referringAggregatorConstraintsTargeting = referringConstraints | ||
191 | .filter(AggregatorConstraint) | ||
192 | .filter[it.resultVariable === v] | ||
193 | .map[ // get the type of the referred column | ||
194 | getOrMakeTypeDecision( | ||
195 | result, | ||
196 | it.referredQuery, | ||
197 | it.referredQuery.parameters.get(aggregatedColumn), | ||
198 | ecore2LogicTrace, | ||
199 | viatra2LogicTrace, | ||
200 | checkedInDecisionMaking)] | ||
201 | |||
202 | return referringCountMatcherTargeting + referringAggregatorConstraintsTargeting | ||
203 | } | ||
204 | |||
205 | private def getTypeFromPassivePatternCallConstraints( | ||
206 | PVariable v, | ||
207 | Viatra2LogicTypeResult result, | ||
208 | TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace, | ||
209 | Viatra2LogicTrace viatra2LogicTrace, | ||
210 | Set<? extends PParameter> checkedInDecisionMaking | ||
211 | ) { | ||
212 | val referringConstraints = v.referringConstraints | ||
213 | if(referringConstraints.size === 1) { | ||
214 | val onlyConstraint = referringConstraints.head | ||
215 | |||
216 | if(onlyConstraint instanceof PatternCallBasedDeferred) { | ||
217 | val indexOfVariable = v.lookup(onlyConstraint.actualParametersTuple.invertIndex) | ||
218 | val parameter = onlyConstraint.referredQuery.parameters.get(indexOfVariable) | ||
219 | val res = getOrMakeTypeDecision(result, onlyConstraint.referredQuery, parameter, ecore2LogicTrace,viatra2LogicTrace,checkedInDecisionMaking) | ||
220 | return #[res] | ||
221 | } else { | ||
222 | throw new IllegalArgumentException('''A non-PatternCallBasedDeferred type constraint is referring to the variable "«v.name»"!''') | ||
223 | } | ||
224 | } else { | ||
225 | throw new IllegalArgumentException('''Multiple («referringConstraints.size», «FOR c:referringConstraints SEPARATOR ", "»«c»«ENDFOR») constraints are referring to variable "«v.name»", but no type is inferred!''') | ||
226 | } | ||
227 | } | ||
228 | |||
229 | def TypeReference calculateCommonSubtype(Iterable<TypeReference> types) { | ||
230 | val primitiveTypeReferences = types.filter(PrimitiveTypeReference) | ||
231 | val complexTypeReferences = types.filter(ComplexTypeReference) | ||
232 | if(complexTypeReferences.isEmpty) { | ||
233 | // If there is an int type, ... | ||
234 | if(primitiveTypeReferences.exists[it instanceof IntTypeReference]) { | ||
235 | // ... and all types are either real or int, then return int! | ||
236 | if(primitiveTypeReferences.forall[it instanceof RealTypeReference || it instanceof IntTypeReference]) { | ||
237 | return primitiveTypeReferences.filter(IntTypeReference).head | ||
238 | } | ||
239 | // Otherwise, the types are inconsistent, because they mixing numeric and non-numeric types. | ||
240 | else throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | ||
241 | } | ||
242 | // If there is no Real, then the types should be homogenious | ||
243 | val head = primitiveTypeReferences.head | ||
244 | if(primitiveTypeReferences.exists[it.eClass !== head.eClass]) { | ||
245 | throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | ||
246 | } | ||
247 | return head | ||
248 | } else if(primitiveTypeReferences.isEmpty) { | ||
249 | val complexTypes = complexTypeReferences.map[it.referred].toSet | ||
250 | if(complexTypes.size === 1) { | ||
251 | return builder.toTypeReference(complexTypes.head) | ||
252 | } | ||
253 | // Collect possible subtypes | ||
254 | val subtypeSets = complexTypes.map[it.transitiveClosureStar[it.subtypes].toSet] | ||
255 | val commonTypeSet = new HashSet(subtypeSets.head) | ||
256 | val otherSets = subtypeSets.tail | ||
257 | for(otherSet : otherSets) { | ||
258 | commonTypeSet.retainAll(otherSet) | ||
259 | } | ||
260 | if(commonTypeSet.empty) { | ||
261 | throw new IllegalArgumentException('''Inconsistent types: «complexTypes.map[name].toList»''') | ||
262 | } | ||
263 | |||
264 | |||
265 | return calculateCommonComplexSupertype(commonTypeSet) | ||
266 | |||
267 | } else { | ||
268 | throw new IllegalArgumentException(''' | ||
269 | Inconsistent types, mixing primitive and complex types: | ||
270 | «primitiveTypeReferences.map[eClass.name].toSet.toList» | ||
271 | and | ||
272 | «complexTypeReferences.map[it.referred].toSet.map[name].toList»''') | ||
273 | |||
274 | } | ||
275 | } | ||
276 | |||
277 | |||
278 | def TypeReference calculateCommonSupertype(Iterable<TypeReference> types) { | ||
279 | val primitiveTypeReferences = types.filter(PrimitiveTypeReference) | ||
280 | val complexTypeReferences = types.filter(ComplexTypeReference) | ||
281 | if(complexTypeReferences.isEmpty) { | ||
282 | // If there is a real type, ... | ||
283 | if(primitiveTypeReferences.exists[it instanceof RealTypeReference]) { | ||
284 | // ... and all types are either real or int, then return real! | ||
285 | if(primitiveTypeReferences.forall[it instanceof RealTypeReference || it instanceof IntTypeReference]) { | ||
286 | return primitiveTypeReferences.filter(RealTypeReference).head | ||
287 | } | ||
288 | // Otherwise, the types are inconsistent, because they mixing numeric and non-numeric types. | ||
289 | else throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | ||
290 | } | ||
291 | // If there is no Real, then the types should be homogenious | ||
292 | val head = primitiveTypeReferences.head | ||
293 | if(primitiveTypeReferences.exists[it.eClass !== head.eClass]) { | ||
294 | throw new IllegalArgumentException('''Inconsistent types: «primitiveTypeReferences.map[eClass.name].toSet.toList»''') | ||
295 | } | ||
296 | return head | ||
297 | } else if(primitiveTypeReferences.isEmpty) { | ||
298 | val complexTypes = complexTypeReferences.map[it.referred].toSet | ||
299 | return calculateCommonComplexSupertype(complexTypes) | ||
300 | |||
301 | } else { | ||
302 | throw new IllegalArgumentException(''' | ||
303 | Inconsistent types, mixing primitive and complex types: | ||
304 | «primitiveTypeReferences.map[eClass.name].toSet.toList» | ||
305 | and | ||
306 | «complexTypeReferences.map[it.referred].toSet.map[name].toList»''') | ||
307 | |||
308 | } | ||
309 | } | ||
310 | def TypeReference calculateCommonComplexSupertype(Set<Type> complexTypes) { | ||
311 | if(complexTypes.size === 1) { | ||
312 | return builder.toTypeReference(complexTypes.head) | ||
313 | } | ||
314 | // Collect possible supertypes | ||
315 | val supertypeSets = complexTypes.map[it.transitiveClosureStar[it.supertypes].toSet] | ||
316 | val commonTypeSet = new HashSet(supertypeSets.head) | ||
317 | val otherSets = supertypeSets.tail | ||
318 | for(otherSet : otherSets) { | ||
319 | commonTypeSet.retainAll(otherSet) | ||
320 | } | ||
321 | if(commonTypeSet.empty) { | ||
322 | throw new IllegalArgumentException('''Inconsistent types: «complexTypes.map[name].toList»''') | ||
323 | } | ||
324 | // Remove type that already have covered | ||
325 | val coveredTypes = commonTypeSet.map[it.supertypes].flatten | ||
326 | commonTypeSet.removeAll(coveredTypes) | ||
327 | return builder.toTypeReference(commonTypeSet.head) | ||
328 | } | ||
329 | |||
330 | /** | ||
331 | * Transforms a Viatra type reference to a logic type. | ||
332 | */ | ||
333 | def dispatch TypeReference transformTypeReference(EDataTypeInSlotsKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
334 | val w = k.wrappedKey | ||
335 | if(w == EcorePackage.Literals.EINT || w == EcorePackage.Literals.ESHORT || w == EcorePackage.Literals.ELONG) { | ||
336 | return builder.LogicInt | ||
337 | } else if(w == EcorePackage.Literals.EDOUBLE || w == EcorePackage.Literals.EFLOAT) { | ||
338 | return builder.LogicReal | ||
339 | } else if(w == EcorePackage.Literals.EBOOLEAN) { | ||
340 | return builder.LogicBool | ||
341 | } else if(w == EcorePackage.Literals.ESTRING) { | ||
342 | return builder.LogicString | ||
343 | } else if(w instanceof EEnum) { | ||
344 | val c = this.ecore2Logic.TypeofEEnum(ecore2LogicTrace.trace,w) | ||
345 | return builder.toTypeReference(c); | ||
346 | } else throw new UnsupportedOperationException('''Unknown reference type «w.class.name»''') | ||
347 | } | ||
348 | def dispatch TypeReference transformTypeReference(JavaTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
349 | val c = k.wrapperInstanceClass | ||
350 | if(c == Integer || c == Long || c == Short) { | ||
351 | return LogicInt | ||
352 | } else if(c == Float || c == Double) { | ||
353 | return LogicReal | ||
354 | } else if(c == Boolean) { | ||
355 | return LogicBool | ||
356 | } else if(c == String) { | ||
357 | return LogicString | ||
358 | } else if(c.superclass == Enum){ | ||
359 | val enums = ecore2Logic.allEnumsInScope(ecore2LogicTrace.trace) | ||
360 | for(enum : enums) { | ||
361 | if(c == enum.instanceClass) { | ||
362 | return builder.toTypeReference(ecore2Logic.TypeofEEnum(ecore2LogicTrace.trace,enum)) | ||
363 | } | ||
364 | } | ||
365 | throw new IllegalArgumentException('''Enum type «c.simpleName» is not mapped to logic!''') | ||
366 | } else { | ||
367 | return null | ||
368 | } | ||
369 | } | ||
370 | def dispatch TypeReference transformTypeReference(EClassTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
371 | val c = k.wrappedKey | ||
372 | |||
373 | if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) { | ||
374 | return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey)) | ||
375 | } else { | ||
376 | return null | ||
377 | } | ||
378 | } | ||
379 | def dispatch TypeReference transformTypeReference(EClassUnscopedTransitiveInstancesKey k, TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
380 | val c = k.wrappedKey | ||
381 | |||
382 | if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) { | ||
383 | return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey)) | ||
384 | } else { | ||
385 | return null | ||
386 | } | ||
387 | } | ||
388 | |||
389 | def dispatch TypeReference transformTypeReference(IInputKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { | ||
390 | throw new IllegalArgumentException('''Unsupported type: «k.class.simpleName»''') | ||
391 | } | ||
392 | } \ No newline at end of file | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeResult.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeResult.xtend new file mode 100644 index 00000000..7ba90724 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2LogicTypeResult.xtend | |||
@@ -0,0 +1,47 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference | ||
4 | import java.util.Map | ||
5 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody | ||
6 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable | ||
7 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter | ||
8 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | ||
9 | import org.eclipse.xtend.lib.annotations.Data | ||
10 | import org.eclipse.xtext.xbase.lib.Functions.Function0 | ||
11 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory | ||
14 | import org.eclipse.emf.ecore.util.EcoreUtil | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.PrimitiveTypeReference | ||
16 | |||
17 | @Data class Viatra2LogicTypeResult{ | ||
18 | Map<Pair<PQuery,PParameter>,Function0<TypeReference>> typesInParameters | ||
19 | Map<Pair<PBody,PVariable>,Function0<TypeReference>> typesInBodies; | ||
20 | |||
21 | def addType(PBody body, PVariable variable, TypeReference typeConstructor) { | ||
22 | typesInBodies.put(body->variable,typeConstructor.createTypeConstructor) | ||
23 | } | ||
24 | def addType(PQuery query, PParameter variable, TypeReference typeConstructor) { | ||
25 | typesInParameters.put(query->variable,typeConstructor.createTypeConstructor) | ||
26 | } | ||
27 | def getType(PBody body, PVariable variable) { | ||
28 | return (body->variable).lookup(typesInBodies).apply | ||
29 | } | ||
30 | def getType(PQuery query, PParameter variable) { | ||
31 | return (query->variable).lookup(typesInParameters).apply | ||
32 | } | ||
33 | |||
34 | def containsSolution(PBody body, PVariable variable) { | ||
35 | return typesInBodies.containsKey(body->variable) | ||
36 | } | ||
37 | def containsSolution(PParameter variable) { | ||
38 | return typesInParameters.containsKey(variable) | ||
39 | } | ||
40 | |||
41 | def dispatch Function0<TypeReference> createTypeConstructor(ComplexTypeReference ref) { | ||
42 | return [LogiclanguageFactory.eINSTANCE.createComplexTypeReference=>[it.referred = ref.referred]] | ||
43 | } | ||
44 | def dispatch Function0<TypeReference> createTypeConstructor(PrimitiveTypeReference ref) { | ||
45 | return [EcoreUtil.copy(ref)] | ||
46 | } | ||
47 | } \ No newline at end of file | ||
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/XExpressionExtractor.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/XExpressionExtractor.xtend new file mode 100644 index 00000000..ea8d0b23 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/XExpressionExtractor.xtend | |||
@@ -0,0 +1,24 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatra2logic | ||
2 | |||
3 | import org.eclipse.viatra.query.patternlanguage.emf.specification.XBaseEvaluator | ||
4 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator | ||
5 | import org.eclipse.xtext.xbase.XExpression | ||
6 | |||
7 | class XExpressionExtractor { | ||
8 | def dispatch XExpression extractExpression(XBaseEvaluator evaluator) { evaluator.expression } | ||
9 | def dispatch XExpression extractExpression(IExpressionEvaluator evaluator) { | ||
10 | val clazz = evaluator.class | ||
11 | if(clazz.name == "org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.VariableMappingExpressionEvaluatorWrapper") { | ||
12 | val field = clazz.declaredFields.filter[it.name == "wrapped"].head | ||
13 | if(field === null) { | ||
14 | throw new IllegalArgumentException('''Class «clazz.simpleName» has no field "wrapped"!''') | ||
15 | } else { | ||
16 | field.setAccessible(true); | ||
17 | val wrappedEvaluator = field.get(evaluator) as XBaseEvaluator | ||
18 | return wrappedEvaluator.extractExpression | ||
19 | } | ||
20 | } else { | ||
21 | throw new IllegalArgumentException('''Unsupported expression evaluation form: «clazz.simpleName»!''') | ||
22 | } | ||
23 | } | ||
24 | } \ No newline at end of file | ||