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]].