diff options
Diffstat (limited to 'extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java')
-rw-r--r-- | extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java new file mode 100644 index 00000000000..c0531887cb9 --- /dev/null +++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java @@ -0,0 +1,35 @@ +package org.eclipse.papyrus.umlrt.ui.queries; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager; +import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException; +import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetReference; +import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue; +import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2; +import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2; +import org.eclipse.uml2.uml.Collaboration; + +public class DisplayMessagesOnlyQuery implements IJavaQuery2<Collaboration, Boolean> { + + public Boolean evaluate(final Collaboration context, + final IParameterValueList2 parameterValues, + final IFacetManager facetManager) + throws DerivedTypedElementException { + + // display only in / out and inout features. They should not be collapsed also + ParameterValue parameterValue = parameterValues.getParameterValueByName("eStructuralFeature"); + if (parameterValue == null) { + return false; + } + EStructuralFeature eStructuralFeature = (EStructuralFeature) parameterValue.getValue(); + // the eStructure is a containmentReference or Facet Reference? + if (eStructuralFeature instanceof FacetReference) { + // check this is in / out or inout + String name = ((FacetReference)eStructuralFeature).getName(); + if("in".equals(name) || "out".equals(name) || "inout".equals(name) ) { + return true; + } + } + return false; + } +} |