svn commit: r16428 - trunk/src/argouml-app/src/org/argouml/profile/internal/ocl: . uml14

Tom Morris <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-12-22 16:41:14-0800
New Revision: 16428

Modified:
   trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/ContextApplicable.java
   trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java
   trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/OclAPIModelInterpreter.java

Log:
Issue 5563: Use new Model API methods for dealing with metatypes
http://argouml.tigris.org/issues/show_bug.cgi?id=5563

Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/ContextApplicable.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/ContextApplicable.java?view=diff&pathrev=16428&r1=16427&r2=16428
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/ContextApplicable.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/ContextApplicable.java	2008-12-22 16:41:14-0800
@@ -24,10 +24,7 @@
 
 package org.argouml.profile.internal.ocl;
 
-import java.lang.reflect.Method;
-
 import org.apache.log4j.Logger;
-import org.argouml.model.Facade;
 import org.argouml.model.Model;
 
 import tudresden.ocl.parser.analysis.DepthFirstAdapter;
@@ -43,9 +40,6 @@
  */
 public class ContextApplicable extends DepthFirstAdapter {
 
-    /**
-     * Logger.
-     */
     private static final Logger LOG = Logger.getLogger(ContextApplicable.class);
 
     private boolean applicable = true;
@@ -74,18 +68,7 @@
      */
     public void caseAClassifierContext(AClassifierContext node) {
         String metaclass = ("" + node.getPathTypeName()).trim();
-
-        try {
-            Method m = Facade.class.getDeclaredMethod("isA" + metaclass,
-                    new Class[] { Object.class });
-            if (m != null) {
-                applicable &= (Boolean) m.invoke(Model.getFacade(),
-                        new Object[] { modelElement });
-            }
-        } catch (Exception e) {
-            LOG.error("Exception", e);
-        }
-
+        applicable &= Model.getFacade().isA(metaclass, modelElement);
     }
 
     /**

Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java?view=diff&pathrev=16428&r1=16427&r2=16428
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java	2008-12-22 16:41:14-0800
@@ -24,13 +24,11 @@
 
 package org.argouml.profile.internal.ocl.uml14;
 
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
-import org.argouml.model.Facade;
 import org.argouml.model.Model;
 import org.argouml.profile.internal.ocl.DefaultOclEvaluator;
 import org.argouml.profile.internal.ocl.InvalidOclException;
@@ -816,22 +814,9 @@
      * @see org.argouml.profile.internal.ocl.ModelInterpreter#getBuiltInSymbol(java.lang.String)
      */
     public Object getBuiltInSymbol(String sym) {
-        Method m;
-        if (sym.equals("Class")) {
-            return new OclType(sym.toString());
-        } else {
-            try {
-                m = Facade.class.getDeclaredMethod("isA" + sym,
-                        new Class[] {Object.class});
-                if (m != null) {
-                    return new OclType(sym.toString());
-                }
-            } catch (Exception e) {
-                LOG.error("Exception", e);
-                // TODO: We shouldn't be throwing RuntimeException.
-                // We need some exception type of our own.
-                // Should this be a checked exception?
-                throw new RuntimeException(e);
+        for (String name : Model.getFacade().getMetatypeNames()) {
+            if (name.equals(sym)) {
+                return new OclType(sym);
             }
         }
         return null;

Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/OclAPIModelInterpreter.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/OclAPIModelInterpreter.java?view=diff&pathrev=16428&r1=16427&r2=16428
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/OclAPIModelInterpreter.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/uml14/OclAPIModelInterpreter.java	2008-12-22 16:41:14-0800
@@ -24,11 +24,9 @@
 
 package org.argouml.profile.internal.ocl.uml14;
 
-import java.lang.reflect.Method;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
-import org.argouml.model.Facade;
 import org.argouml.model.Model;
 import org.argouml.profile.internal.ocl.ModelInterpreter;
 
@@ -39,9 +37,6 @@
  */
 public class OclAPIModelInterpreter implements ModelInterpreter {
 
-    /**
-     * Logger.
-     */
     private static final Logger LOG = Logger
             .getLogger(OclAPIModelInterpreter.class);
 
@@ -62,22 +57,7 @@
                 if (typeName.equals("OclAny")) {
                     return true;
                 } else {
-                    boolean applicable = false;
-                    try {
-                        if (typeName.equals("Class")) {
-                            typeName = "UMLClass";
-                        }
-                        
-                        Method m = Facade.class.getDeclaredMethod("isA"
-                                + typeName, new Class[] {Object.class});
-                        if (m != null) {
-                            applicable = (Boolean) m.invoke(Model.getFacade(),
-                                    new Object[] {subject});
-                        }
-                    } catch (Exception e) {
-                        LOG.error("Exception", e);
-                    }
-                    return applicable;
+                    return  Model.getFacade().isA(typeName, subject);
                 }
             }

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

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.