diff options
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model')
8 files changed, 232 insertions, 17 deletions
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 4b38becf..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 | |||
@@ -16,6 +16,7 @@ import org.eclipse.emf.common.util.EList; | |||
16 | * <ul> | 16 | * <ul> |
17 | * <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> | 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> | ||
19 | * </ul> | 20 | * </ul> |
20 | * | 21 | * |
21 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression() | 22 | * @see hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage#getAggregateExpression() |
@@ -61,4 +62,26 @@ public interface AggregateExpression extends Term { | |||
61 | */ | 62 | */ |
62 | EList<AggregatedParameterSubstitution> getParameterSubstitution(); | 63 | EList<AggregatedParameterSubstitution> getParameterSubstitution(); |
63 | 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 | |||
64 | } // AggregateExpression | 87 | } // AggregateExpression |
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 f5347e31..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 | |||
@@ -2760,13 +2760,22 @@ public interface LogiclanguagePackage extends EPackage { | |||
2760 | int AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = TERM_FEATURE_COUNT + 1; | 2760 | int AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = TERM_FEATURE_COUNT + 1; |
2761 | 2761 | ||
2762 | /** | 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 | /** | ||
2763 | * 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. |
2764 | * <!-- begin-user-doc --> | 2773 | * <!-- begin-user-doc --> |
2765 | * <!-- end-user-doc --> | 2774 | * <!-- end-user-doc --> |
2766 | * @generated | 2775 | * @generated |
2767 | * @ordered | 2776 | * @ordered |
2768 | */ | 2777 | */ |
2769 | int AGGREGATE_EXPRESSION_FEATURE_COUNT = TERM_FEATURE_COUNT + 2; | 2778 | int AGGREGATE_EXPRESSION_FEATURE_COUNT = TERM_FEATURE_COUNT + 3; |
2770 | 2779 | ||
2771 | /** | 2780 | /** |
2772 | * The number of operations of the '<em>Aggregate Expression</em>' class. | 2781 | * The number of operations of the '<em>Aggregate Expression</em>' class. |
@@ -2806,6 +2815,15 @@ public interface LogiclanguagePackage extends EPackage { | |||
2806 | int PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | 2815 | int PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; |
2807 | 2816 | ||
2808 | /** | 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 | /** | ||
2809 | * 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. |
2810 | * <!-- begin-user-doc --> | 2828 | * <!-- begin-user-doc --> |
2811 | * <!-- end-user-doc --> | 2829 | * <!-- end-user-doc --> |
@@ -2861,6 +2879,15 @@ public interface LogiclanguagePackage extends EPackage { | |||
2861 | int SUM__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | 2879 | int SUM__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; |
2862 | 2880 | ||
2863 | /** | 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 | /** | ||
2864 | * 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. |
2865 | * <!-- begin-user-doc --> | 2892 | * <!-- begin-user-doc --> |
2866 | * <!-- end-user-doc --> | 2893 | * <!-- end-user-doc --> |
@@ -2916,6 +2943,15 @@ public interface LogiclanguagePackage extends EPackage { | |||
2916 | int COUNT__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | 2943 | int COUNT__PARAMETER_SUBSTITUTION = AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; |
2917 | 2944 | ||
2918 | /** | 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 | /** | ||
2919 | * The number of structural features of the '<em>Count</em>' class. | 2955 | * The number of structural features of the '<em>Count</em>' class. |
2920 | * <!-- begin-user-doc --> | 2956 | * <!-- begin-user-doc --> |
2921 | * <!-- end-user-doc --> | 2957 | * <!-- end-user-doc --> |
@@ -2962,6 +2998,15 @@ public interface LogiclanguagePackage extends EPackage { | |||
2962 | int MIN__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | 2998 | int MIN__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; |
2963 | 2999 | ||
2964 | /** | 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 | /** | ||
2965 | * 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. |
2966 | * <!-- begin-user-doc --> | 3011 | * <!-- begin-user-doc --> |
2967 | * <!-- end-user-doc --> | 3012 | * <!-- end-user-doc --> |
@@ -3017,6 +3062,15 @@ public interface LogiclanguagePackage extends EPackage { | |||
3017 | int MAX__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; | 3062 | int MAX__PARAMETER_SUBSTITUTION = PROJECTED_AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION; |
3018 | 3063 | ||
3019 | /** | 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 | /** | ||
3020 | * 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. |
3021 | * <!-- begin-user-doc --> | 3075 | * <!-- begin-user-doc --> |
3022 | * <!-- end-user-doc --> | 3076 | * <!-- end-user-doc --> |
@@ -4409,6 +4463,17 @@ public interface LogiclanguagePackage extends EPackage { | |||
4409 | EReference getAggregateExpression_ParameterSubstitution(); | 4463 | EReference getAggregateExpression_ParameterSubstitution(); |
4410 | 4464 | ||
4411 | /** | 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 | /** | ||
4412 | * 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>}'. |
4413 | * <!-- begin-user-doc --> | 4478 | * <!-- begin-user-doc --> |
4414 | * <!-- end-user-doc --> | 4479 | * <!-- end-user-doc --> |
@@ -5642,6 +5707,14 @@ public interface LogiclanguagePackage extends EPackage { | |||
5642 | EReference AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = eINSTANCE.getAggregateExpression_ParameterSubstitution(); | 5707 | EReference AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION = eINSTANCE.getAggregateExpression_ParameterSubstitution(); |
5643 | 5708 | ||
5644 | /** | 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 | /** | ||
5645 | * 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. |
5646 | * <!-- begin-user-doc --> | 5719 | * <!-- begin-user-doc --> |
5647 | * <!-- end-user-doc --> | 5720 | * <!-- end-user-doc --> |
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 0459af42..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 | |||
@@ -7,6 +7,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.AggregatedParameterS | |||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; |
9 | 9 | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
10 | import java.util.Collection; | 11 | import java.util.Collection; |
11 | import org.eclipse.emf.common.notify.Notification; | 12 | import org.eclipse.emf.common.notify.Notification; |
12 | 13 | ||
@@ -29,6 +30,7 @@ import org.eclipse.emf.ecore.util.InternalEList; | |||
29 | * <ul> | 30 | * <ul> |
30 | * <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> |
31 | * <li>{@link hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.AggregateExpressionImpl#getParameterSubstitution <em>Parameter Substitution</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> | ||
32 | * </ul> | 34 | * </ul> |
33 | * | 35 | * |
34 | * @generated | 36 | * @generated |
@@ -55,6 +57,16 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
55 | protected EList<AggregatedParameterSubstitution> parameterSubstitution; | 57 | protected EList<AggregatedParameterSubstitution> parameterSubstitution; |
56 | 58 | ||
57 | /** | 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 | /** | ||
58 | * <!-- begin-user-doc --> | 70 | * <!-- begin-user-doc --> |
59 | * <!-- end-user-doc --> | 71 | * <!-- end-user-doc --> |
60 | * @generated | 72 | * @generated |
@@ -132,6 +144,46 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
132 | * @generated | 144 | * @generated |
133 | */ | 145 | */ |
134 | @Override | 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 | ||
135 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | 187 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { |
136 | switch (featureID) { | 188 | switch (featureID) { |
137 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | 189 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: |
@@ -153,6 +205,9 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
153 | return basicGetRelation(); | 205 | return basicGetRelation(); |
154 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | 206 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: |
155 | return getParameterSubstitution(); | 207 | return getParameterSubstitution(); |
208 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
209 | if (resolve) return getResultVariable(); | ||
210 | return basicGetResultVariable(); | ||
156 | } | 211 | } |
157 | return super.eGet(featureID, resolve, coreType); | 212 | return super.eGet(featureID, resolve, coreType); |
158 | } | 213 | } |
@@ -173,6 +228,9 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
173 | getParameterSubstitution().clear(); | 228 | getParameterSubstitution().clear(); |
174 | getParameterSubstitution().addAll((Collection<? extends AggregatedParameterSubstitution>)newValue); | 229 | getParameterSubstitution().addAll((Collection<? extends AggregatedParameterSubstitution>)newValue); |
175 | return; | 230 | return; |
231 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
232 | setResultVariable((Variable)newValue); | ||
233 | return; | ||
176 | } | 234 | } |
177 | super.eSet(featureID, newValue); | 235 | super.eSet(featureID, newValue); |
178 | } | 236 | } |
@@ -191,6 +249,9 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
191 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | 249 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: |
192 | getParameterSubstitution().clear(); | 250 | getParameterSubstitution().clear(); |
193 | return; | 251 | return; |
252 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
253 | setResultVariable((Variable)null); | ||
254 | return; | ||
194 | } | 255 | } |
195 | super.eUnset(featureID); | 256 | super.eUnset(featureID); |
196 | } | 257 | } |
@@ -207,6 +268,8 @@ public abstract class AggregateExpressionImpl extends TermImpl implements Aggreg | |||
207 | return relation != null; | 268 | return relation != null; |
208 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: | 269 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION: |
209 | return parameterSubstitution != null && !parameterSubstitution.isEmpty(); | 270 | return parameterSubstitution != null && !parameterSubstitution.isEmpty(); |
271 | case LogiclanguagePackage.AGGREGATE_EXPRESSION__RESULT_VARIABLE: | ||
272 | return resultVariable != null; | ||
210 | } | 273 | } |
211 | return super.eIsSet(featureID); | 274 | return super.eIsSet(featureID); |
212 | } | 275 | } |
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 64ebdde1..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 | |||
@@ -1892,6 +1892,16 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
1892 | * @generated | 1892 | * @generated |
1893 | */ | 1893 | */ |
1894 | @Override | 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 | ||
1895 | public EClass getSum() { | 1905 | public EClass getSum() { |
1896 | return sumEClass; | 1906 | return sumEClass; |
1897 | } | 1907 | } |
@@ -2180,6 +2190,7 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2180 | aggregateExpressionEClass = createEClass(AGGREGATE_EXPRESSION); | 2190 | aggregateExpressionEClass = createEClass(AGGREGATE_EXPRESSION); |
2181 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RELATION); | 2191 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RELATION); |
2182 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION); | 2192 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__PARAMETER_SUBSTITUTION); |
2193 | createEReference(aggregateExpressionEClass, AGGREGATE_EXPRESSION__RESULT_VARIABLE); | ||
2183 | 2194 | ||
2184 | sumEClass = createEClass(SUM); | 2195 | sumEClass = createEClass(SUM); |
2185 | 2196 | ||
@@ -2476,6 +2487,7 @@ public class LogiclanguagePackageImpl extends EPackageImpl implements Logiclangu | |||
2476 | 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); |
2477 | 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); |
2478 | 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); | 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); | ||
2479 | 2491 | ||
2480 | 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); |
2481 | 2493 | ||
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 0a49e388..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 | |||
@@ -9146,6 +9146,22 @@ | |||
9146 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oOVoKJfEemXzuA5M0BZIw" id="(0.6082949308755761,1.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)"/> | 9147 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oOVoaJfEemXzuA5M0BZIw" id="(1.0,0.3076923076923077)"/> |
9148 | </edges> | 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> | ||
9149 | </data> | 9165 | </data> |
9150 | </ownedAnnotationEntries> | 9166 | </ownedAnnotationEntries> |
9151 | <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"> |
@@ -9240,7 +9256,7 @@ | |||
9240 | <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']"/> |
9241 | </ownedElements> | 9257 | </ownedElements> |
9242 | </ownedDiagramElements> | 9258 | </ownedDiagramElements> |
9243 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_l6ZIL7dnEeau1vMV3Bsx4w" name="Variable" tooltipText="" outgoingEdges="_JfkfULd8Eeau1vMV3Bsx4w _e1jg0IKgEeeAppuRs-roLg" incomingEdges="_l6Zt8bdnEeau1vMV3Bsx4w __nLz2aJfEemXzuA5M0BZIw" 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"> |
9244 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> | 9260 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> |
9245 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> | 9261 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//Variable"/> |
9246 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 9262 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -10514,7 +10530,7 @@ | |||
10514 | </ownedStyle> | 10530 | </ownedStyle> |
10515 | <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']"/> |
10516 | </ownedDiagramElements> | 10532 | </ownedDiagramElements> |
10517 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_rrY_wG6WEemSyfDlsGAqLA" name="AggregateExpression" tooltipText="" outgoingEdges="_za0wsm6WEemSyfDlsGAqLA _hJ8ymW6cEemSyfDlsGAqLA _uI5YDKJfEemXzuA5M0BZIw" 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"> |
10518 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> | 10534 | <target xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> |
10519 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> | 10535 | <semanticElements xmi:type="ecore:EClass" href="logiclanguage.ecore#//AggregateExpression"/> |
10520 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 10536 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -10714,6 +10730,20 @@ | |||
10714 | </ownedStyle> | 10730 | </ownedStyle> |
10715 | <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']"/> | 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']"/> |
10716 | </ownedDiagramElements> | 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> | ||
10717 | <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']"/> |
10718 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_l6Zva7dnEeau1vMV3Bsx4w"/> | 10748 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_l6Zva7dnEeau1vMV3Bsx4w"/> |
10719 | <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 fb94b598..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 | |||
@@ -217,6 +217,7 @@ | |||
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" | 218 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution" |
219 | upperBound="-1" eType="#//AggregatedParameterSubstitution" containment="true"/> | 219 | upperBound="-1" eType="#//AggregatedParameterSubstitution" containment="true"/> |
220 | <eStructuralFeatures xsi:type="ecore:EReference" name="resultVariable" eType="#//Variable"/> | ||
220 | </eClassifiers> | 221 | </eClassifiers> |
221 | <eClassifiers xsi:type="ecore:EClass" name="Sum" eSuperTypes="#//ProjectedAggregateExpression"/> | 222 | <eClassifiers xsi:type="ecore:EClass" name="Sum" eSuperTypes="#//ProjectedAggregateExpression"/> |
222 | <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//AggregateExpression"/> | 223 | <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//AggregateExpression"/> |
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 cb14ae5b..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 | |||
@@ -169,6 +169,7 @@ | |||
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"/> | 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"/> | ||
172 | </genClasses> | 173 | </genClasses> |
173 | <genClasses ecoreClass="logiclanguage.ecore#//Sum"/> | 174 | <genClasses ecoreClass="logiclanguage.ecore#//Sum"/> |
174 | <genClasses ecoreClass="logiclanguage.ecore#//Count"/> | 175 | <genClasses ecoreClass="logiclanguage.ecore#//Count"/> |
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 09bfbb39..a231af3c 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 | |||
@@ -478,6 +478,7 @@ class LogicProblemBuilder{ | |||
478 | def %(TermDescription left, TermDescription right) { Modulo(left,right) } | 478 | def %(TermDescription left, TermDescription right) { Modulo(left,right) } |
479 | def 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]} |
480 | 480 | ||
481 | def Pow(TermDescription left, TermDescription right) {createPow => [leftOperand = left.toTerm rightOperand = right.toTerm]} | ||
481 | def asTerm(boolean value) { createBoolLiteral => [x|x.value = value] } | 482 | def asTerm(boolean value) { createBoolLiteral => [x|x.value = value] } |
482 | def asTerm(int value) { createIntLiteral => [x|x.value = value] } | 483 | def asTerm(int value) { createIntLiteral => [x|x.value = value] } |
483 | def asTerm(double value) { BigDecimal.valueOf(value).asTerm } | 484 | def asTerm(double value) { BigDecimal.valueOf(value).asTerm } |
@@ -530,27 +531,28 @@ class LogicProblemBuilder{ | |||
530 | 531 | ||
531 | // AggregatedExpression | 532 | // AggregatedExpression |
532 | 533 | ||
533 | private def <T extends AggregateExpression> configureAggregateExpression(T expression, Relation referred, List<Variable> terms) { | 534 | private def <T extends AggregateExpression> configureAggregateExpression(T expression, Relation referred, List<Variable> terms, Variable target) { |
534 | if(terms.size != referred.parameters.size) { | 535 | if(terms.size != referred.parameters.size) { |
535 | throw new LogicProblemBuilderException( | 536 | throw new LogicProblemBuilderException( |
536 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') | 537 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') |
537 | } else { | 538 | } else { |
538 | expression.relation = referred | 539 | expression.relation = referred |
540 | expression.resultVariable = target | ||
539 | for(var i=0; i<referred.parameters.size;i++) { | 541 | for(var i=0; i<referred.parameters.size;i++) { |
540 | val target = terms.get(i) | 542 | val targetRelation = terms.get(i) |
541 | val substitution = createAggregatedParameterSubstitution => [it.variable = target] | 543 | val substitution = createAggregatedParameterSubstitution => [it.variable = targetRelation] |
542 | expression.parameterSubstitution += substitution | 544 | expression.parameterSubstitution += substitution |
543 | } | 545 | } |
544 | return expression | 546 | return expression |
545 | } | 547 | } |
546 | } | 548 | } |
547 | private def <T extends ProjectedAggregateExpression> configureProjectedAggregateExpression(T expression, Relation referred, List<Variable> terms, int projection) { | 549 | private def <T extends ProjectedAggregateExpression> configureProjectedAggregateExpression(T expression, Relation referred, List<Variable> terms, Variable target, int projection) { |
548 | if(projection < 0 || projection >= referred.parameters.size) { | 550 | if(projection < 0 || projection >= referred.parameters.size) { |
549 | throw new LogicProblemBuilderException( | 551 | throw new LogicProblemBuilderException( |
550 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') | 552 | '''The function called has «referred.parameters.size» parameters but it is called with «terms.size»!''') |
551 | } else { | 553 | } else { |
552 | val res = expression.configureAggregateExpression(referred, terms) | 554 | val res = expression.configureAggregateExpression(referred, terms,target) |
553 | if(res.parameterSubstitution.get(projection) !== null) { | 555 | if(res.parameterSubstitution.get(projection).variable !== null) { |
554 | throw new LogicProblemBuilderException( | 556 | throw new LogicProblemBuilderException( |
555 | '''Projection over set variable!''') | 557 | '''Projection over set variable!''') |
556 | } | 558 | } |
@@ -564,10 +566,18 @@ class LogicProblemBuilder{ | |||
564 | } | 566 | } |
565 | 567 | ||
566 | } | 568 | } |
567 | def Count(Relation referred, List<Variable> terms) { createCount.configureAggregateExpression(referred,terms) } | 569 | def Count(Relation referred, List<Variable> terms, Variable result) { |
568 | def Sum(Relation referred, List<Variable> terms, int projection) { createSum.configureProjectedAggregateExpression(referred,terms,projection) } | 570 | createCount.configureAggregateExpression(referred,terms,result) |
569 | def Min(Relation referred, List<Variable> terms, int projection) { createMin.configureProjectedAggregateExpression(referred,terms,projection) } | 571 | } |
570 | def Max(Relation referred, List<Variable> terms, int projection) { createMax.configureProjectedAggregateExpression(referred,terms,projection) } | 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 | } | ||
571 | 581 | ||
572 | // Function calls | 582 | // Function calls |
573 | def call(Function function, TermDescription... substitutions) { | 583 | def call(Function function, TermDescription... substitutions) { |
@@ -592,17 +602,19 @@ class LogicProblemBuilder{ | |||
592 | def 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>)} |
593 | def call(Relation relation, Iterable<? extends TermDescription> substitution) { | 603 | def call(Relation relation, Iterable<? extends TermDescription> substitution) { |
594 | val relationReference = createSymbolicValue | 604 | val relationReference = createSymbolicValue |
605 | if(relation === null) { | ||
606 | throw new LogicProblemBuilderException('''Call is referring to null!''') | ||
607 | } | ||
595 | relationReference.symbolicReference = relation | 608 | relationReference.symbolicReference = relation |
596 | //println('''«relation.name»(«substitution.size»->«relation.parameters»)''') | ||
597 | for(value : substitution) | 609 | for(value : substitution) |
598 | relationReference.parameterSubstitutions += value.toTerm | 610 | relationReference.parameterSubstitutions += value.toTerm |
599 | relationReference.checkRelationCall(relation) | 611 | relationReference.checkRelationCall(relation) |
600 | return relationReference | 612 | return relationReference |
601 | } | 613 | } |
602 | def private checkRelationCall(SymbolicValue value, Relation referredRelation) { | 614 | def private checkRelationCall(SymbolicValue value, Relation referredRelation) { |
603 | // if(value === null || referredRelation === null) { | 615 | if(value === null || referredRelation === null) { |
604 | // println("gebasz") | 616 | throw new LogicProblemBuilderException('''Call is referring to null!''') |
605 | // } | 617 | } |
606 | if(value.parameterSubstitutions.size != referredRelation.parameters.size) { | 618 | if(value.parameterSubstitutions.size != referredRelation.parameters.size) { |
607 | throw new LogicProblemBuilderException( | 619 | throw new LogicProblemBuilderException( |
608 | '''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»!''') |