Author: thn
Date: 2010-12-05 04:20:17-0800
New Revision: 18885

Modified:
   
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
   trunk/src/argouml-core-model/src/org/argouml/model/Facade.java

Log:
UML2 only: new method isAAppliedProfileElement(...)

Modified: 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java?view=diff&pathrev=18885&r1=18884&r2=18885
==============================================================================
--- 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
    (original)
+++ 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
    2010-12-05 04:20:17-0800
@@ -30,8 +30,11 @@
 import org.eclipse.emf.common.util.Enumerator;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.uml2.uml.Abstraction;
@@ -1028,6 +1031,30 @@
             }
         } else if (handle instanceof Enumerator) {
             return ((Enumerator) handle).getName();
+        } else if (handle instanceof DynamicEObjectImpl) {
+            StringBuffer name = new StringBuffer();
+            EClass c = ((DynamicEObjectImpl) handle).eClass();
+            if (c != null) {
+                EObject p = c.eContainer();
+                if (p instanceof EPackage) {
+                    name.append(((EPackage)p).getName()).append(':');
+                } else {
+                    name.append("(null):");
+                }
+                
name.append('<').append('<').append(c.getName()).append('>').append('>');
+                /*
+                char sep = '<';
+                for (EStructuralFeature o : c.getEAllStructuralFeatures()) {
+                    name.append(sep).append(o.getName());
+                    sep = ',';
+                }
+                if (sep == ',') {
+                    name.append('>');
+                }
+                */
+                return name.toString();
+            }
+            return handle.toString();
         } else {
             // TODO: Some elements such as Generalization are
             // no longer named.  For a transitional period we'll
@@ -1657,6 +1684,10 @@
         return handle instanceof AggregationKind;
     }
 
+    public boolean isAAppliedProfileElement(Object handle) {
+        return handle instanceof DynamicEObjectImpl;
+    }
+
     public boolean isAArgument(Object modelElement) {
         // TODO: Double check - tfm
         return modelElement instanceof InputPin

Modified: 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java?view=diff&pathrev=18885&r1=18884&r2=18885
==============================================================================
--- 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java   
    (original)
+++ 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java   
    2010-12-05 04:20:17-0800
@@ -273,6 +273,11 @@
         return handle instanceof AggregationKind;
     }
 
+    public boolean isAAppliedProfileElement(Object handle) {
+        // non existent in UML1
+        return false;
+    }
+
     public boolean isAArgument(Object modelElement) {
         return modelElement instanceof Argument;
     }

Modified: trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/Facade.java?view=diff&pathrev=18885&r1=18884&r2=18885
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/Facade.java      
(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/Facade.java      
2010-12-05 04:20:17-0800
@@ -196,6 +196,13 @@
     boolean isAAggregationKind(Object handle);
 
     /**
+     * Recognizer for an applied profile element. UML2 only.
+     *
+     * @param handle candidate
+     * @return true if handle is an applied profile element
+     */
+    boolean isAAppliedProfileElement(Object handle);
+    /**
      * Recognizer for Artifact.
      *
      * @param handle candidate

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2687979

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to