svn commit: r17426 - trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java
Thomas Neustupny <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: thn
Date: 2009-10-24 16:05:25-0700
New Revision: 17426
Modified:
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java
Log:
some intermediate work, not finished, just to make things compilable
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java?view=diff&pathrev=17426&r1=17425&r2=17426
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsFactoryEUMLImpl.java 2009-10-24 16:05:25-0700
@@ -28,12 +28,21 @@
import java.util.Collection;
+import org.apache.log4j.Logger;
import org.argouml.model.AbstractModelFactory;
import org.argouml.model.ExtensionMechanismsFactory;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Stereotype;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.resource.UMLResource;
/**
* The implementation of the ExtensionMechanismsFactory for EUML2.
@@ -41,12 +50,20 @@
class ExtensionMechanismsFactoryEUMLImpl implements
ExtensionMechanismsFactory, AbstractModelFactory {
+ private static final Logger LOG = Logger
+ .getLogger(ExtensionMechanismsFactoryEUMLImpl.class);
+
/**
* The model implementation.
*/
private EUMLModelImplementation modelImpl;
/**
+ * The UML metamodel (lazily loaded singleton).
+ */
+ private static UMLPackage metamodel = null;
+
+ /**
* Constructor.
*
* @param implementation
@@ -156,4 +173,28 @@
return null;
}
+ public static UMLPackage getUMLMetamodel() {
+ if (metamodel == null) {
+ // load metamodel
+ metamodel = UMLPackage.eINSTANCE;
+ }
+ return metamodel;
+ }
+
+ private static Model loadUMLMetamodel(EUMLModelImplementation model) {
+ Model m = null;
+ try {
+ Resource res = (new ResourceSetImpl()).createResource(URI
+ .createURI(UMLResource.UML_METAMODEL_URI));
+ //Resource res = UMLUtil.getResource(model, URI
+ // .createURI(UMLResource.UML_METAMODEL_URI), true);
+ Object o = EcoreUtil.getObjectByType(res.getContents(),
+ UMLPackage.Literals.PACKAGE);
+ m = (Model) o;
+ LOG.debug("no. of resources: " + res.getContents().size());
+ } catch (WrappedException we) {
+ LOG.warn("Failed getting UML metamodel");
+ }
+ return m;
+ }
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2411107
To unsubscribe from this discussion, e-mail: [[email protected]].