Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2015-07-03 04:53:20 +0000
committerEd Willink2015-07-07 20:56:14 +0000
commit79fba8d355d004995c0df8b75aba94f6bfcf6c2d (patch)
tree2d7b8ea12cd2ab5a0c1bba412a6fde5e46548c2d
parent3e1525c89bf62d389972a679c847e3d894ce7050 (diff)
downloadorg.eclipse.ocl-79fba8d355d004995c0df8b75aba94f6bfcf6c2d.tar.gz
org.eclipse.ocl-79fba8d355d004995c0df8b75aba94f6bfcf6c2d.tar.xz
org.eclipse.ocl-79fba8d355d004995c0df8b75aba94f6bfcf6c2d.zip
[ocl25] Introduce ElementUtil.isRequired()
-rw-r--r--plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java5
-rw-r--r--plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java21
-rw-r--r--plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/cs2as/EssentialOCLCSLeft2RightVisitor.java18
3 files changed, 27 insertions, 17 deletions
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
index b2010ae1bf..3f3b7d53bd 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
@@ -1058,6 +1058,11 @@ public class CS2ASConversion extends AbstractBase2ASConversion
return pivotType;
}
+ public void refreshRequiredType(@NonNull TypedElement pivotElement, @NonNull TypedRefCS csTypeRef) {
+ org.eclipse.ocl.pivot.Class type = PivotUtil.getPivot(org.eclipse.ocl.pivot.Class.class, csTypeRef);
+ setType(pivotElement, type, ElementUtil.isRequired(csTypeRef));
+ }
+
public void refreshTemplateSignature(@NonNull TemplateableElementCS csTemplateableElement, @NonNull TemplateableElement pivotTemplateableElement) {
TemplateSignatureCS csTemplateSignature = csTemplateableElement.getOwnedSignature();
if (csTemplateSignature == null) {
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
index f33fc5455b..15669bb7c1 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
@@ -467,10 +467,17 @@ public class ElementUtil
|| (instanceClass == int.class) || (instanceClass == long.class) || (instanceClass == short.class);
}
- public static boolean isUnique(@NonNull TypedElementCS csTypedElement) {
- List<String> qualifiers = csTypedElement.getQualifiers();
- assert qualifiers != null;
- return getQualifier(qualifiers, "unique", "!unique", true);
+ public static boolean isRequired(@Nullable TypedRefCS csTypeRef) {
+ if (csTypeRef != null) {
+ MultiplicityCS csMultiplicity = csTypeRef.getOwnedMultiplicity();
+ if (csMultiplicity != null) {
+ int lower = csMultiplicity.getLower();
+ if (lower > 0) {
+ return true;
+ }
+ }
+ }
+ return false;
}
public static boolean isSpecialization(@NonNull TemplateBindingCS csTemplateBinding) {
@@ -495,6 +502,12 @@ public class ElementUtil
return false;
}
+ public static boolean isUnique(@NonNull TypedElementCS csTypedElement) {
+ List<String> qualifiers = csTypedElement.getQualifiers();
+ assert qualifiers != null;
+ return getQualifier(qualifiers, "unique", "!unique", true);
+ }
+
public static void setLastPathElement(@NonNull PathNameCS ownedPathName,@NonNull Element asElement) {
List<PathElementCS> ownedPathElements = ownedPathName.getOwnedPathElements();
int size = ownedPathElements.size();
diff --git a/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/cs2as/EssentialOCLCSLeft2RightVisitor.java b/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/cs2as/EssentialOCLCSLeft2RightVisitor.java
index abb9e65333..0bb01a69ff 100644
--- a/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/cs2as/EssentialOCLCSLeft2RightVisitor.java
+++ b/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/cs2as/EssentialOCLCSLeft2RightVisitor.java
@@ -97,7 +97,6 @@ import org.eclipse.ocl.xtext.base.cs2as.CS2ASConversion;
import org.eclipse.ocl.xtext.base.utilities.ElementUtil;
import org.eclipse.ocl.xtext.basecs.ElementCS;
import org.eclipse.ocl.xtext.basecs.ModelElementCS;
-import org.eclipse.ocl.xtext.basecs.MultiplicityCS;
import org.eclipse.ocl.xtext.basecs.PathElementCS;
import org.eclipse.ocl.xtext.basecs.PathNameCS;
import org.eclipse.ocl.xtext.basecs.TypedRefCS;
@@ -504,17 +503,10 @@ public class EssentialOCLCSLeft2RightVisitor extends AbstractEssentialOCLCSLeft2
|| ((type instanceof CollectionType) && (((CollectionType)type).getElementType() instanceof InvalidType));
}
+ /** @deprecated use ElementUtil */
+ @Deprecated
protected boolean isRequired(@Nullable TypedRefCS csTypeRef) {
- if (csTypeRef != null) {
- MultiplicityCS csMultiplicity = csTypeRef.getOwnedMultiplicity();
- if (csMultiplicity != null) {
- int lower = csMultiplicity.getLower();
- if (lower > 0) {
- return true;
- }
- }
- }
- return false;
+ return ElementUtil.isRequired(csTypeRef);
}
protected @NonNull OperationCallExp refreshOperationCallExp(@NonNull AbstractNameExpCS csNameExp, @Nullable OCLExpression sourceExp) {
@@ -962,7 +954,7 @@ public class EssentialOCLCSLeft2RightVisitor extends AbstractEssentialOCLCSLeft2
iterator.setRepresentedParameter(formalIterator);
Type varType = null;
TypedRefCS csType = csArgument.getOwnedType();
- boolean iteratorIsRequired = isRequired(csType);
+ boolean iteratorIsRequired = ElementUtil.isRequired(csType);
if (csType != null) {
varType = PivotUtil.getPivot(Type.class, csType);
}
@@ -1721,7 +1713,7 @@ public class EssentialOCLCSLeft2RightVisitor extends AbstractEssentialOCLCSLeft2
if (csInitExpression != null) {
TypedRefCS csVariableType = csLetVariable.getOwnedType();
Type variableType = csVariableType != null ? PivotUtil.getPivot(Type.class, csVariableType) : null;
- boolean variableIsRequired = isRequired(csVariableType);
+ boolean variableIsRequired = ElementUtil.isRequired(csVariableType);
boolean initIsRequired = false;
OCLExpression initExpression = context.visitLeft2Right(OCLExpression.class, csInitExpression);
Type initType = null;

Back to the top