diff options
author | jeremie.tatibouet | 2015-04-27 09:42:16 +0000 |
---|---|---|
committer | Arnaud Cuccuru | 2015-05-05 16:45:17 +0000 |
commit | 4c0ce3cdc44f1add7ac02b24e35b95a551d18aae (patch) | |
tree | 103d515b74c8d804d2172f4068c2889abc63fe29 | |
parent | ab647664e65adea6e9ca8163245691d762ee1eef (diff) | |
download | org.eclipse.papyrus-4c0ce3cdc44f1add7ac02b24e35b95a551d18aae.tar.gz org.eclipse.papyrus-4c0ce3cdc44f1add7ac02b24e35b95a551d18aae.tar.xz org.eclipse.papyrus-4c0ce3cdc44f1add7ac02b24e35b95a551d18aae.zip |
Proposal to solve https://bugs.eclipse.org/bugs/show_bug.cgi?id=465111
Validation context changes correctly when switching between ALF
specifications edited in a Papyrus UML model and ALF specifications
edited through the raw editor.
Change-Id: I521321cdb439b9336d1c9ac244f9883ef472c5bd
Signed-off-by: jeremie.tatibouet <jeremie.tatibouet@cea.fr>
Reviewed-on: https://git.eclipse.org/r/46801
Tested-by: Hudson CI
Reviewed-by: Arnaud Cuccuru <arnaud.cuccuru@cea.fr>
Tested-by: Arnaud Cuccuru <arnaud.cuccuru@cea.fr>
18 files changed, 379 insertions, 231 deletions
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.ui/src/org/eclipse/papyrus/uml/alf/ui/editor/AlfPopupEditor.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.ui/src/org/eclipse/papyrus/uml/alf/ui/editor/AlfPopupEditor.java index 52b348e8417..8ee49a46150 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.ui/src/org/eclipse/papyrus/uml/alf/ui/editor/AlfPopupEditor.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.ui/src/org/eclipse/papyrus/uml/alf/ui/editor/AlfPopupEditor.java @@ -14,7 +14,6 @@ *****************************************************************************/
package org.eclipse.papyrus.uml.alf.ui.editor;
-import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl;
import org.eclipse.papyrus.uml.alf.libraries.helper.AlfUtil;
import org.eclipse.papyrus.uml.alf.ui.internal.AlfActivator;
import org.eclipse.swt.SWT;
@@ -65,7 +64,7 @@ public class AlfPopupEditor { this.contextElement = contextElement;
this.alfInjector = AlfActivator.getInstance().getInjector("org.eclipse.papyrus.uml.alf.Alf");
this.args = args;
- ModelNamespaceImpl.setContextFor(contextElement);
+ //ModelNamespaceImpl.setContextFor(contextElement);
}
public void openEditor() {
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/Model.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/Model.java index 87f01e80c12..971e3e5c9dc 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/Model.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/Model.java @@ -46,7 +46,7 @@ public class Model extends ModelImpl { public Model() { super(); - this.setName("Model"); + this.setName("EmptyModel"); this.modelStorage = new ResourceSetImpl(); this.loadLibraries(); this.importLibraries(); @@ -90,8 +90,14 @@ public class Model extends ModelImpl { } private void registerTmpModel() { - Resource r = this.modelStorage.createResource(URI.createURI("NAME_RESOLUTION_MODEL")); + Resource r = this.modelStorage.createResource(URI.createURI("EMPTY_UML_CONTEXT_MODEL.uml")); r.getContents().add(this); this.modelStorage.getResources().add(r); } + + public void clean(){ + for(Resource resource : this.modelStorage.getResources()){ + resource.unload(); + } + } } diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/AlfValidationContextRegistry.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/AlfValidationContextRegistry.java new file mode 100644 index 00000000000..92dcf4dc74c --- /dev/null +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/AlfValidationContextRegistry.java @@ -0,0 +1,173 @@ +/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jeremie Tatibouet
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.alf.validation;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.papyrus.uml.alf.AlfFactory;
+import org.eclipse.papyrus.uml.alf.Model;
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl;
+import org.eclipse.uml2.uml.Namespace;
+
+/**
+ * The registry relating URI (of resources containing ALF models) to ModelNamespace which are used
+ * as validation contexts
+ */
+class AlfValidationContextRegistry{
+
+ /**
+ * Relation between URI and ModelNamespace
+ */
+ protected HashMap<URI, ModelNamespaceWithState> validationMap;
+
+ protected AlfValidationContextRegistry(){
+ this.validationMap = new HashMap<URI, ModelNamespaceWithState>();
+ }
+
+ /**
+ * Provide the currently used ModelNamespace
+ *
+ * @return namespace
+ * the currently used ModelNamespace
+ */
+ public ModelNamespaceImpl getCurrentlyUsedValidationContext(){
+ ModelNamespaceImpl namespace = null;
+ Iterator<URI> iterator = this.validationMap.keySet().iterator();
+ while(namespace == null && iterator.hasNext()){
+ URI uri = iterator.next();
+ if(this.validationMap.get(uri).used){
+ namespace = this.validationMap.get(uri).modelNamespace;
+ }
+ }
+ if(namespace==null){
+ namespace = this.createEmptyValidationContext(null);
+ }
+ return namespace;
+ }
+
+ /**
+ * Provide the validation context corresponding to the given URI
+ *
+ * @param uri
+ * the uri of the resource currently validated
+ *
+ * @return modelNamespace
+ * the validation context
+ */
+ public ModelNamespaceImpl getValidationContext(URI uri){
+ if(this.validationMap.get(uri)!=null){
+ return this.validationMap.get(uri).modelNamespace;
+ }
+ return null;
+ }
+
+ /**
+ * Associate the given URI with an empty validation context. Such validation context
+ * is defined by a ModelNamespace associated with an empty UML model.
+ *
+ * @param uri
+ * the uri of the resource that will be validated
+ *
+ * @return namespace
+ * the modelNamespace associated to the uri
+ */
+ protected ModelNamespaceImpl createEmptyValidationContext(URI uri){
+ ModelNamespaceImpl namespace = null;
+ namespace = (ModelNamespaceImpl) AlfFactory.eINSTANCE.createModelNamespace();
+ namespace.setContextNamespace(new Model());
+ this.add(uri, new ModelNamespaceWithState(namespace, true));
+ return namespace;
+ }
+
+ /**
+ * Add the uri and the modelNamespace into the validation map of the registry
+ *
+ * @param uri
+ * the uri of a validated resource
+ *
+ * @param modelNamespace
+ * the modelNamespace associated to uri
+ */
+ private void add(URI uri, ModelNamespaceWithState modelNamespace){
+ for(URI currentURI : this.validationMap.keySet()){
+ this.validationMap.get(currentURI).used = false;;
+ }
+ this.validationMap.put(uri, modelNamespace);
+ }
+
+ /**
+ * Associate the given uri to a ModelNamespace.
+ *
+ * @param uri
+ * the uri of the resource that will be validated
+ *
+ * @param namespace
+ * the namespace associated to the modelNamespace
+ *
+ * @return modelNamespace
+ * the modelNamespace associated to the uri
+ */
+ protected ModelNamespaceImpl createValidationContext(URI uri, Namespace namespace){
+ ModelNamespaceImpl modelNamespace = null;
+ if(uri!=null && namespace!=null){
+ modelNamespace = this.validationMap.get(uri)!=null ? this.validationMap.get(uri).modelNamespace : null;
+ if(modelNamespace!=null){
+ modelNamespace.setContextNamespace(namespace);
+ }else{
+ modelNamespace = (ModelNamespaceImpl) AlfFactory.eINSTANCE.createModelNamespace();
+ modelNamespace.setContextNamespace(namespace);
+ this.add(uri, new ModelNamespaceWithState(modelNamespace, true));
+ }
+ }
+ return modelNamespace;
+ }
+
+ /**
+ * Release the validation context (i.e., the model namespace) corresponding to the URI
+ *
+ * @param uri
+ * the uri for which we have an associated namespace resource
+ *
+ * @return true if the corresponding model namespace was deleted false otherwise
+ */
+ public boolean deleteValidationContext(URI uri){
+ ModelNamespaceWithState modelNamespace = this.validationMap.get(uri);
+ if(modelNamespace!=null){
+ this.validationMap.remove(modelNamespace);
+ if(modelNamespace.modelNamespace.getContextNamespace() instanceof Model){
+ ((Model)modelNamespace.modelNamespace.getContextNamespace()).clean();
+ }
+ return true;
+ }
+ return false;
+ }
+
+ class ModelNamespaceWithState{
+
+ public ModelNamespaceImpl modelNamespace;
+
+ public boolean used;
+
+ protected ModelNamespaceWithState(){
+ this.used = false;
+ }
+
+ protected ModelNamespaceWithState(ModelNamespaceImpl namespace, boolean used){
+ this.used = used;
+ this.modelNamespace = namespace;
+ }
+ }
+}
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/ModelNamespaceFacade.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/ModelNamespaceFacade.java new file mode 100644 index 00000000000..4731246ba19 --- /dev/null +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/src/org/eclipse/papyrus/uml/alf/validation/ModelNamespaceFacade.java @@ -0,0 +1,125 @@ +/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jeremie Tatibouet
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.alf.validation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.uml.alf.ElementReference;
+import org.eclipse.papyrus.uml.alf.NamespaceDefinition;
+import org.eclipse.papyrus.uml.alf.QualifiedName;
+import org.eclipse.papyrus.uml.alf.SyntaxElement;
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl;
+import org.eclipse.uml2.uml.Namespace;
+
+/**
+ * Facade to enable the validator to get the right validation context (i.e., a ModelNamespace)
+ * for a given ALF model
+ */
+public class ModelNamespaceFacade {
+
+ /**
+ * The facade is a singleton
+ */
+ private static ModelNamespaceFacade INSTANCE;
+
+ /**
+ * It owns a registry managing the correspondance between resource URI and ModelNamespace
+ */
+ protected AlfValidationContextRegistry registry;
+
+ private ModelNamespaceFacade() {
+ this.registry = new AlfValidationContextRegistry();
+ }
+
+ /**
+ * Provide access onto the ModelNamespaceFacade
+ *
+ * @return INSTANCE
+ * the instance of the facade
+ */
+ public static ModelNamespaceFacade getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new ModelNamespaceFacade();
+ }
+ return INSTANCE;
+ }
+
+ /**
+ * Provide the model namespace that need to be used for a given model element
+ *
+ * @param element
+ * an ALF model element
+ *
+ * @return namespace
+ * the model namespace in which the validation occurs
+ */
+ public ModelNamespaceImpl getContext(SyntaxElement element) {
+ if (element.eResource() == null) {
+ return this.registry.getCurrentlyUsedValidationContext();
+ }
+ ModelNamespaceImpl namespace = this.registry.getValidationContext(element.eResource().getURI());
+ if (namespace == null) {
+ namespace = this.registry.createEmptyValidationContext(element.eResource().getURI());
+ }
+ return namespace;
+ }
+
+ public NamespaceDefinition modelNamespaceFor(NamespaceDefinition namespace) {
+ ModelNamespaceImpl modelNamespace = this.getContext(namespace);
+ modelNamespace.setModelUnit(namespace);
+ return modelNamespace;
+ }
+
+ public EList<ElementReference> resolveInModelScope(QualifiedName qualifiedName) {
+ return this.getContext(qualifiedName).resolvePathName(qualifiedName.getPathName());
+ }
+
+ /**
+ * Create a relation between a specific resource and a UML namespace which is used as a validation context
+ *
+ * @param validatedResource
+ * the resource containing the ALF model to validate
+ *
+ * @param validationContext
+ * the namespace used as validation context
+ */
+ public ModelNamespaceImpl createValidationContext(Resource validatedResource, Namespace validationContext){
+ return this.registry.createValidationContext(validatedResource.getURI(), validationContext);
+ }
+
+ /**
+ * Create an empty validation context (i.e., a model namespace) for a given resource. The validation context is an
+ * empty UML model having an import on ALF and the standard UML profile applied
+ *
+ * @param validatedResource
+ * the resource containing the ALF model to validate
+ *
+ * @return the model namespace used as validation context
+ */
+ public ModelNamespaceImpl createEmptyValidationContext(Resource validatedResource){
+ return this.registry.createEmptyValidationContext(validatedResource.getURI());
+ }
+
+ /**
+ * Delete the registered validation context used for the given resource
+ *
+ * @param validatedResource
+ * the resource for the validation context is deleted
+ *
+ * @return true if the validation context was deleted false otherwise
+ */
+ public boolean deleteValidationContext(Resource validatedResource){
+ return this.registry.deleteValidationContext(validatedResource.getURI());
+ }
+}
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/MemberDefinitionImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/MemberDefinitionImpl.java index 39a15b8451d..957960a79e2 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/MemberDefinitionImpl.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/MemberDefinitionImpl.java @@ -23,6 +23,7 @@ import org.eclipse.papyrus.uml.alf.QualifiedName; import org.eclipse.papyrus.uml.alf.StereotypeAnnotation; import org.eclipse.papyrus.uml.alf.UnitDefinition; import org.eclipse.papyrus.uml.alf.util.AlfValidator; +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade; /** * <!-- begin-user-doc --> @@ -328,7 +329,8 @@ public abstract class MemberDefinitionImpl extends SyntaxElementImpl implements */ public Member addToModel() { // System.out.println("[addToModel] member=" + this.getName()); - return ModelNamespaceImpl.getModelNamespace().addOwnedMember(this); + return ModelNamespaceFacade.getInstance().getContext(this).addOwnedMember(this); + //return ModelNamespaceImpl.getModelNamespace().addOwnedMember(this); } /** diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ModelNamespaceImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ModelNamespaceImpl.java index a81ee8a2a4d..66b8daf3461 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ModelNamespaceImpl.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ModelNamespaceImpl.java @@ -4,12 +4,12 @@ package org.eclipse.papyrus.uml.alf.impl; import java.lang.reflect.InvocationTargetException; import java.util.Collection; + import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.WrappedException; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EOperation; -import org.eclipse.papyrus.uml.alf.Model; import org.eclipse.papyrus.uml.alf.AlfFactory; import org.eclipse.papyrus.uml.alf.AlfPackage; import org.eclipse.papyrus.uml.alf.ElementReference; @@ -18,14 +18,13 @@ import org.eclipse.papyrus.uml.alf.ImportedMember; import org.eclipse.papyrus.uml.alf.InternalElementReference; import org.eclipse.papyrus.uml.alf.Member; import org.eclipse.papyrus.uml.alf.MemberDefinition; +import org.eclipse.papyrus.uml.alf.Model; import org.eclipse.papyrus.uml.alf.ModelNamespace; import org.eclipse.papyrus.uml.alf.NamespaceDefinition; import org.eclipse.papyrus.uml.alf.PackageDefinition; import org.eclipse.papyrus.uml.alf.QualifiedName; import org.eclipse.papyrus.uml.alf.UnitDefinition; import org.eclipse.papyrus.uml.tools.utils.NameResolutionUtils; -import org.eclipse.uml2.uml.Element; -import org.eclipse.uml2.uml.NamedElement; import org.eclipse.uml2.uml.Namespace; import org.eclipse.uml2.uml.UMLPackage; @@ -43,21 +42,6 @@ public class ModelNamespaceImpl extends PackageDefinitionImpl implements ModelNa super(); } - private static ModelNamespaceImpl modelNamespace; - - public static ModelNamespaceImpl getModelNamespace() { - if (modelNamespace == null) { - modelNamespace = (ModelNamespaceImpl) AlfFactory.eINSTANCE.createModelNamespace(); - } - return modelNamespace; - } - - public static NamespaceDefinition modelNamespaceFor(NamespaceDefinition namespace) { - final ModelNamespaceImpl modelNamespace = getModelNamespace(); - modelNamespace.setModelUnit(namespace); - return modelNamespace; - } - static protected Member asMember(ElementReference reference) { ImportedMember importedMember = AlfFactory.eINSTANCE.createImportedMember(); importedMember.setName(reference.name()); @@ -68,23 +52,6 @@ public class ModelNamespaceImpl extends PackageDefinitionImpl implements ModelNa return member; } - public static EList<ElementReference> resolveInModelScope(QualifiedName qualifiedName) { - return getModelNamespace().resolvePathName(qualifiedName.getPathName()); - } - - public static void setContextFor(Element contextElement) { - setContext(!(contextElement instanceof NamedElement) ? null : - ((NamedElement) contextElement).getNamespace()); - } - - public static void setContext(Namespace contextNamespace) { - getModelNamespace().setContextNamespace(contextNamespace); - } - - public static Namespace getContext() { - return getModelNamespace().getContextNamespace(); - } - private Namespace contextNamespace = null; private String modelUnitName = null; diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/NamespaceDefinitionImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/NamespaceDefinitionImpl.java index 27fc9038953..db878f34043 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/NamespaceDefinitionImpl.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/NamespaceDefinitionImpl.java @@ -26,6 +26,7 @@ import org.eclipse.papyrus.uml.alf.StereotypeAnnotation; import org.eclipse.papyrus.uml.alf.SyntaxElement; import org.eclipse.papyrus.uml.alf.UnitDefinition; import org.eclipse.papyrus.uml.alf.util.AlfValidator; +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade; /** * <!-- begin-user-doc --> @@ -139,7 +140,7 @@ public class NamespaceDefinitionImpl extends MemberDefinitionImpl implements Nam * @generated NOT */ public NamespaceDefinition modelNamespace() { - return ModelNamespaceImpl.modelNamespaceFor(this); + return ModelNamespaceFacade.getInstance().modelNamespaceFor(this); } /** diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/QualifiedNameImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/QualifiedNameImpl.java index edb12057b60..b9ad73af386 100644 --- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/QualifiedNameImpl.java +++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/QualifiedNameImpl.java @@ -20,6 +20,7 @@ import org.eclipse.papyrus.uml.alf.FeatureReference; import org.eclipse.papyrus.uml.alf.NameBinding; import org.eclipse.papyrus.uml.alf.QualifiedName; import org.eclipse.papyrus.uml.alf.util.AlfValidator; +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade; /** * <!-- begin-user-doc --> @@ -305,7 +306,7 @@ public class QualifiedNameImpl extends SyntaxElementImpl implements QualifiedNam * @generated NOT */ public EList<ElementReference> modelReferents() { - return ModelNamespaceImpl.resolveInModelScope(this); + return ModelNamespaceFacade.getInstance().resolveInModelScope(this); } /** diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend index 4406e577faf..943830ccd82 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend @@ -20,18 +20,18 @@ import org.eclipse.ocl.ecore.delegate.OCLDelegateDomain import org.eclipse.ocl.pivot.model.OCLstdlib import org.eclipse.ocl.uml.OCL import org.eclipse.papyrus.uml.alf.AlfInjectorProvider -import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea import org.eclipse.xtext.junit4.InjectWith import org.eclipse.xtext.junit4.XtextRunner import org.eclipse.xtext.resource.XtextResourceSet import org.junit.AfterClass import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* +import org.junit.Ignore +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade @InjectWith(AlfInjectorProvider) @RunWith(XtextRunner) @@ -48,25 +48,27 @@ class SemanticTest extends ParserTest { resourceSet = new XtextResourceSet() OCL.initialize(resourceSet); - //UML2Pivot.initialize(resourceSet) OCLstdlib.install(); - OCLDelegateDomain.initialize(resourceSet) - //OCLinEcoreStandaloneSetup.doSetup() - //OCLstdlibStandaloneSetup.doSetup() - - var modelArea = new ContextModelArea("Model") - ModelNamespaceImpl.setContext(modelArea.getModel); + OCLDelegateDomain.initialize(resourceSet) testDirectory = System.getProperty("test.directory", TEST_DIRECTORY) } @Test - // @Ignore("Doesn't run on Maven - Bug 464026") + @Ignore("Doesn't run on Maven - Bug 464026") def void testStaticSemantics() { System.out.print("[SemanticTest] ") val failures = parseDirectory(resourceSet, testDirectory, true); assertEquals(0, failures) } + + override parseResource(Resource resource, boolean validate) { + ModelNamespaceFacade.instance.createEmptyValidationContext(resource); + val failures = super.parseResource(resource, validate); + ModelNamespaceFacade.instance.deleteValidationContext(resource); + return failures; + } + @AfterClass static def void cleanUp() { diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend index 9ae6997c386..8befe38d780 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend @@ -20,18 +20,18 @@ import org.eclipse.ocl.ecore.delegate.OCLDelegateDomain import org.eclipse.ocl.pivot.model.OCLstdlib import org.eclipse.ocl.uml.OCL import org.eclipse.papyrus.uml.alf.AlfInjectorProvider -import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea import org.eclipse.xtext.junit4.InjectWith import org.eclipse.xtext.junit4.XtextRunner import org.eclipse.xtext.resource.XtextResourceSet import org.junit.AfterClass import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* +import org.junit.Ignore +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade @InjectWith(AlfInjectorProvider) @RunWith(XtextRunner) @@ -48,25 +48,27 @@ class SingleTest extends ParserTest { resourceSet = new XtextResourceSet() OCL.initialize(resourceSet); - //UML2Pivot.initialize(resourceSet) OCLstdlib.install(); OCLDelegateDomain.initialize(resourceSet) - - var modelArea = new ContextModelArea("Model") - ModelNamespaceImpl.setContext(modelArea.getModel); - testDirectory = System.getProperty("test.directory", testDirectory) testFile = System.getProperty("test.file", testFile) } @Test - // @Ignore("Doesn't run on Maven - Bug 464026") + @Ignore("Doesn't run on Maven - Bug 464026") def void testOneFile() { System.out.print("[SingleTest] "); val failures = parseFile(resourceSet, new File(testDirectory + "/" + testFile), true); System.out.println() assertEquals(0, failures) } + + override parseResource(Resource resource, boolean validate) { + ModelNamespaceFacade.instance.createEmptyValidationContext(resource); + val failures = super.parseResource(resource, validate); + ModelNamespaceFacade.instance.deleteValidationContext(resource); + return failures; + } @AfterClass static def void cleanUp() { diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend index 3cb93edfe94..4a4588f375f 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend @@ -24,11 +24,13 @@ import org.eclipse.xtext.junit4.XtextRunner import org.eclipse.xtext.resource.XtextResourceSet import org.junit.AfterClass import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* +import org.junit.Ignore +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade @InjectWith(AlfInjectorProvider) @RunWith(XtextRunner) @@ -45,10 +47,8 @@ class SyntacticTest extends ParserTest { resourceSet = new XtextResourceSet() OCL.initialize(resourceSet); - //UML2Pivot.initialize(resourceSet) OCLstdlib.install(); OCLDelegateDomain.initialize(resourceSet) - //OCLstdlibStandaloneSetup.doSetup() testDirectory = System.getProperty("test.directory", TEST_DIRECTORY) } @@ -61,6 +61,13 @@ class SyntacticTest extends ParserTest { assertEquals(0, failures) } + override parseResource(Resource resource, boolean validate) { + ModelNamespaceFacade.instance.createEmptyValidationContext(resource); + val failures = super.parseResource(resource, validate); + ModelNamespaceFacade.instance.deleteValidationContext(resource); + return failures; + } + @AfterClass static def void cleanUp() { resourceSet = null; diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend index 2cbb93a086d..7ee3e7148e5 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend @@ -23,7 +23,6 @@ import org.eclipse.papyrus.uml.alf.MappingError import org.eclipse.papyrus.uml.alf.tests.ParserTest import org.eclipse.xtext.junit4.XtextRunner import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith @@ -45,7 +44,7 @@ class GenerationTest extends ParserTest { } @Test - @Ignore("Doesn't run on Maven - Bug 464026") + //@Ignore("Doesn't run on Maven - Bug 464026") def void testGeneration() { var failures = 0; System.out.println("[GenerationTest] Directory " + umlDirectory + ":") diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java index f279374010e..1f43a951252 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java @@ -35,7 +35,7 @@ import org.eclipse.papyrus.uml.alf.AlfStandaloneSetup; import org.eclipse.papyrus.uml.alf.MappingError; import org.eclipse.papyrus.uml.alf.tests.mapper.AlfMapper; import org.eclipse.papyrus.uml.alf.tests.utils.RegisteredItemLoader; -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea.RequiredElementsNames; +import org.eclipse.papyrus.uml.alf.tests.utils.RegisteredItemLoader.RequiredElementsNames; import org.eclipse.uml2.uml.Package; import org.eclipse.uml2.uml.PackageableElement; import org.eclipse.uml2.uml.resources.util.UMLResourcesUtil; @@ -59,7 +59,6 @@ public class AlfMapper extends org.eclipse.papyrus.uml.alf.AlfMapper { OCL.initialize(this.resourceSet); OCLstdlib.install(); OCLDelegateDomain.initialize(this.resourceSet); - //OCLstdlibStandaloneSetup.doSetup(); this.setStandardProfile( RegisteredItemLoader.getInstance().loadProfile(this.resourceSet, RequiredElementsNames.STANDARD_PROFILE)); diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java index fd15d2dcd55..4037cedf567 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java @@ -21,10 +21,9 @@ import java.util.List; import org.eclipse.emf.common.util.EList; import org.eclipse.papyrus.uml.alf.MappingError; +import org.eclipse.papyrus.uml.alf.Model; import org.eclipse.papyrus.uml.alf.ParsingError; -import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl; import org.eclipse.papyrus.uml.alf.tests.mapper.AlfCompiler; -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea; import org.eclipse.uml2.uml.Activity; import org.eclipse.uml2.uml.Association; import org.eclipse.uml2.uml.Behavior; @@ -63,16 +62,17 @@ public class CompilerTests { private static AlfCompiler compiler = null; + private static Model contextModel = null; + @BeforeClass public static void setup() throws Exception { compiler = new AlfCompiler(); - ContextModelArea modelArea = new ContextModelArea("Model"); - ModelNamespaceImpl.setContext(modelArea.getModel()); + contextModel = new Model(); } @After public void clean() { - ((Package) ModelNamespaceImpl.getContext()).getPackagedElements().clear(); + ((Package)contextModel).getPackagedElements().clear(); } public static void assertTextualRepresentation( @@ -156,7 +156,7 @@ public class CompilerTests { public static <T extends PackageableElement> T setupContextElement( T element, String name) throws ParsingError, MappingError { - ((Package) ModelNamespaceImpl.getContext()).getPackagedElements().add(element); + ((Package)contextModel).getPackagedElements().add(element); // compiler.addTextualRepresentation(element, textualRepresentation); // compiler.compile(element, textualRepresentation); return element; diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend index 4c4a8a4faf4..e5b75c4b042 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend @@ -18,16 +18,15 @@ import java.io.File import java.io.IOException import org.eclipse.emf.common.util.BasicDiagnostic import org.eclipse.papyrus.uml.alf.MappingError -import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl import org.eclipse.papyrus.uml.alf.tests.ParserTest -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea import org.eclipse.xtext.junit4.XtextRunner import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* +import org.junit.Ignore +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade @RunWith(XtextRunner) class MappingTest extends ParserTest { @@ -44,12 +43,10 @@ class MappingTest extends ParserTest { mapper = new AlfMapper() testDirectory = System.getProperty("test.directory", TEST_DIRECTORY) testFile = System.getProperty("test.file"); - var modelArea = new ContextModelArea("Model"); - ModelNamespaceImpl.setContext(modelArea.getModel); } @Test - //@Ignore("Doesn't run on Maven - Bug 464026") + @Ignore("Doesn't run on Maven - Bug 464026") def void testMapping() { var failures = 0 var File[] files @@ -66,6 +63,7 @@ class MappingTest extends ParserTest { if (name.substring(l - 4, l).equals(".alf")) { System.out.print(name + ": ") val resource = mapper.getResource(file.path) + ModelNamespaceFacade.instance.createEmptyValidationContext(resource); val parseFailures = parseResource(resource, true) if (parseFailures > 0) { failures = failures + parseFailures @@ -88,6 +86,7 @@ class MappingTest extends ParserTest { failures = failures + 1 } } + ModelNamespaceFacade.instance.deleteValidationContext(resource); resource.unload() } } diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend index 3eab307c8f3..ee3bdb21155 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend @@ -28,19 +28,18 @@ import org.eclipse.papyrus.uml.alf.MappingError import org.eclipse.papyrus.uml.alf.PackageDefinition import org.eclipse.papyrus.uml.alf.SignalDefinition import org.eclipse.papyrus.uml.alf.UnitDefinition -import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl import org.eclipse.papyrus.uml.alf.tests.ParserTest -import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea +import org.eclipse.papyrus.uml.alf.validation.ModelNamespaceFacade import org.eclipse.uml2.uml.Package import org.eclipse.uml2.uml.PackageableElement import org.eclipse.uml2.uml.UMLFactory import org.eclipse.xtext.junit4.XtextRunner import org.junit.BeforeClass -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import static org.junit.Assert.* +import org.junit.Ignore @RunWith(XtextRunner) class MergeTest extends ParserTest { @@ -55,15 +54,11 @@ class MergeTest extends ParserTest { static def void setUp() { mapper = new AlfMapper() testDirectory = System.getProperty("test.directory", TEST_DIRECTORY) - var modelArea = new ContextModelArea("Model"); - ModelNamespaceImpl.setContext(modelArea.getModel); } @Test @Ignore("Doesn't run on Maven - Bug 464026") def void testMerging() { - val contextNamespace = ModelNamespaceImpl.getContext() as Package - val contextResource = contextNamespace.eResource; var failures = 0; System.out.println("[MergeTest] Directory " + testDirectory + ":") val directory = new File(testDirectory) @@ -73,6 +68,7 @@ class MergeTest extends ParserTest { if (name.substring(l - 4, l).equals(".alf")) { System.out.print(name + ": ") val resource = mapper.getResource(file.path) + val modelNamespace = ModelNamespaceFacade.instance.createEmptyValidationContext(resource); val parseFailures = parseResource(resource, false) if (parseFailures > 0) { failures = failures + parseFailures @@ -82,19 +78,13 @@ class MergeTest extends ParserTest { val unit = contents.get(0) as UnitDefinition; val contextElement = this.mapContext(unit); contextElement.name = unit.definition.actualName(); - contextNamespace.packagedElements.clear(); - contextNamespace.packagedElements.add(contextElement); - + (modelNamespace.contextNamespace as Package).packagedElements.clear(); + (modelNamespace.contextNamespace as Package).packagedElements.add(contextElement); mapper.map(contextElement, contents) - - contextResource.save( + modelNamespace.contextNamespace.eResource.save( new FileOutputStream(UML_DIRECTORY + "/" + name.substring(0, l - 4) + ".uml"), null ); - - contextResource.contents.clear(); - contextResource.contents.add(contextNamespace); - } catch (MappingError e) { val status = BasicDiagnostic.toIStatus(e.diagnostic) System.out.println(" " + status) @@ -104,6 +94,7 @@ class MergeTest extends ParserTest { e.printStackTrace() } } + ModelNamespaceFacade.instance.deleteValidationContext(resource); resource.unload() } } diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java deleted file mode 100644 index 0b71d84d3ac..00000000000 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java +++ /dev/null @@ -1,134 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2015 CEA LIST. - * - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Jeremie Tatibouet - * - *****************************************************************************/ - -package org.eclipse.papyrus.uml.alf.tests.utils; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.uml2.uml.ElementImport; -import org.eclipse.uml2.uml.Model; -import org.eclipse.uml2.uml.PackageableElement; -import org.eclipse.uml2.uml.Profile; -import org.eclipse.uml2.uml.UMLFactory; -import org.eclipse.uml2.uml.VisibilityKind; - -/** - * This class initializes a UML model by applying required profiles and importing required libraries. - * The model managed by the class can be retrieved by external entities in order to be modified - */ -public class ContextModelArea { - - /** - * The resource set in which the different resources (the model, the libraries and the profiles) - * will be loaded. - */ - private ResourceSet area; - - /** - * The model for applying profiles and importing registered libraries - */ - private Model model; - - - /** - * Constructor - */ - public ContextModelArea(String modelName) { - this.model = UMLFactory.eINSTANCE.createModel(); - this.model.setName(modelName); - this.area = new ResourceSetImpl(); - this.addModelInresource(); - this.loadRequiredResources(); - } - - /** - * Place the model in a resource of the resourceSet - */ - private void addModelInresource() { - Resource resource = this.area.createResource(URI.createURI("Model"), "UML"); - if (resource != null) { - resource.getContents().add(this.model); - } - } - - /** - * Load elements that makes the model ready to be used - */ - protected void loadRequiredResources() { - this.applyRequiredProfiles(); - this.importRequiredLibraries(); - } - - /** - * Apply the standard profile and the action language profile - */ - private void applyRequiredProfiles() { - /* 1 Load and apply standard profile */ - Profile standardProfile = RegisteredItemLoader.getInstance(). - getProfile(RequiredElementsNames.STANDARD_PROFILE); - if (standardProfile != null) { - this.model.applyProfile(standardProfile); - } - /* 2. Load and apply action language profile */ - Profile actionLanguageProfile = RegisteredItemLoader.getInstance(). - getProfile(RequiredElementsNames.ACTION_LANGUAGE_PROFILE); - if (actionLanguageProfile != null) { - this.model.applyProfile(actionLanguageProfile); - } - } - - /** - * Import ALF library and UML primitive types in the model - */ - private void importRequiredLibraries() { - List<PackageableElement> libraries = new ArrayList<PackageableElement>(); - PackageableElement alfLibrary = RegisteredItemLoader.getInstance(). - loadLibrary(this.area, RequiredElementsNames.ALF_LIBRARY); - if (alfLibrary != null) { - libraries.add(alfLibrary); - } - PackageableElement umlPrimitiveTypes = RegisteredItemLoader.getInstance(). - loadLibrary(this.area, RequiredElementsNames.UML_PRIMITIVE_TYPES); - if (umlPrimitiveTypes != null) { - libraries.add(umlPrimitiveTypes); - } - for (PackageableElement library : libraries) { - ElementImport elementImport = UMLFactory.eINSTANCE.createElementImport(); - elementImport.setImportedElement(library); - elementImport.setVisibility(VisibilityKind.PUBLIC_LITERAL); - this.model.getElementImports().add(elementImport); - } - } - - /** - * Returns the model managed by this area - */ - public Model getModel() { - return this.model; - } - - public class RequiredElementsNames { - /* Profiles */ - public final static String STANDARD_PROFILE = "Standard"; - public final static String ACTION_LANGUAGE_PROFILE = "ActionLanguage"; - /* Libraries */ - public final static String ALF_LIBRARY = "Alf Library"; - public final static String UML_PRIMITIVE_TYPES = "UMLPrimitiveTypes"; - } -} diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java index e909923dd32..7a021c7daf1 100644 --- a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java +++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java @@ -206,4 +206,13 @@ public class RegisteredItemLoader { this.registeredItemResourceSet.getResources().clear();
this.registeredItemResourceSet = null;
}
+
+ public class RequiredElementsNames {
+ /* Profiles */
+ public final static String STANDARD_PROFILE = "Standard";
+ public final static String ACTION_LANGUAGE_PROFILE = "ActionLanguage";
+ /* Libraries */
+ public final static String ALF_LIBRARY = "Alf Library";
+ public final static String UML_PRIMITIVE_TYPES = "UMLPrimitiveTypes";
+ }
}
|