diff options
author | Remi Schnekenburger | 2015-02-02 16:51:57 +0000 |
---|---|---|
committer | Remi Schnekenburger | 2015-02-13 18:33:10 +0000 |
commit | f8ccc260f9c90a0724ef6bd4d62394eedf32f59d (patch) | |
tree | 325e3af1638ff25fe67981bf1180fa5601aad972 | |
parent | b1c3dbffb61c877190e1aa504f7f6171ace3d06e (diff) | |
download | org.eclipse.papyrus-f8ccc260f9c90a0724ef6bd4d62394eedf32f59d.tar.gz org.eclipse.papyrus-f8ccc260f9c90a0724ef6bd4d62394eedf32f59d.tar.xz org.eclipse.papyrus-f8ccc260f9c90a0724ef6bd4d62394eedf32f59d.zip |
Bug 454455: [ExtendedTypes] Performance issue when using
InvariantContainerConfiguration
https://bugs.eclipse.org/bugs/show_bug.cgi?id=454455
- fixes performances issues on the invariant container matcher and
container descriptor matcher
- integrates contribution from Sebastien Gabel on Invariant Stereotype
configuration matcher (isStrict has been added) - see contribution
gerrit 35580 (https://git.eclipse.org/r/#/c/35580/)
- integrates contribution from Sebastien Gabel on Invariant Container
configuration - see contribution gerrit 37023
(https://git.eclipse.org/r/#/c/37023 )
Cherry pick from contribution in maintenance/luna branch
Conflicts:
plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java
plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerUtils.java
plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/META-INF/MANIFEST.MF
Change-Id: Ie0668715cb204f9382330f34a2e264386b3c33b6
Signed-off-by: Remi Schnekenburger <remi.schnekenburger@cea.fr>
10 files changed, 1112 insertions, 899 deletions
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml index c1b0cd1dd03..8b2fbf8587a 100644 --- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml +++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml @@ -85,8 +85,8 @@ point="org.eclipse.papyrus.infra.extendedtypes.invariantRule"> <invariantRule configurationClass="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration" - configurationModelCreation="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationModelCreation" editHelperAdvice="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerEditHelperAdvice" + elementMatcher="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerMatcher" semanticTypeDescriptor="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationContainerDescriptor"> </invariantRule> </extension> diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java index d9e5291bf86..8e85a2ca13c 100644 --- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java +++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2013 CEA LIST. + * Copyright (c) 2013, 2014 CEA LIST and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,12 +8,12 @@ * * Contributors: * Remi Schnekenburger (CEA LIST) - Initial API and implementation + * Sebastien Gabel (Esterel Technologies) - Change implementation to consider denied permissions * *****************************************************************************/ package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration; import java.util.Arrays; -import java.util.List; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; @@ -22,6 +22,8 @@ import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; import org.eclipse.gmf.runtime.emf.type.core.IClientContext; import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher; import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.IMetamodelType; +import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType; import org.eclipse.papyrus.infra.core.services.ServiceException; import org.eclipse.papyrus.infra.extendedtypes.Activator; import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IInvariantContainerDescriptor; @@ -59,38 +61,73 @@ public class InvariantContainerConfigurationContainerDescriptor implements IInva return false; } - IElementType[] types = ElementTypeRegistry.getInstance().getAllTypesMatching(eObject, sharedContext); - if (types == null || types.length == 0) { - return false; - } + IElementType objectMetamodelType = ElementTypeRegistry.getInstance().getElementType(eObject, sharedContext); + boolean isValid = false; - for (HierarchyPermission permission : permissions) { + for (HierarchyPermission permission : permissions) { // for each permission, get the matcher and matches directly boolean isPermitted = permission.isIsPermitted(); String childType = permission.getChildType(); boolean isStrict = permission.isIsStrict(); IElementType type = ElementTypeRegistry.getInstance().getType(childType); - if (type != null) { + + // check is the permission type is a specialization type or a metamodel type, to enhance performances + // if this is a metamodel type and strict, a simple equals can match or not if it is permitted or not + // if this is a metamodel type and not strict, we only compare the list of supertypes of the eobject type with the permission Type + if (type instanceof IMetamodelType) { if (isStrict) { - if (types[0].equals(type)) { - if (isPermitted) { - isValid = true; - } - } else if (!isPermitted) { - isValid = false; - } + isValid = type.equals(objectMetamodelType) ? isPermitted : !isPermitted; } else { - // not strict. The super types of typeToCreate should contain the permission type if permitted, or not contain the permission type if not permitted - List<IElementType> allTypes = Arrays.asList(types); - if (allTypes.contains(type)) { - if (isPermitted) { - isValid = true; - } else if (!isPermitted) { - isValid = false; + // this is not strict + // so any super metamodeltype of permission type that matches objectMetamodelType is OK + isValid = Arrays.asList(objectMetamodelType.getAllSuperTypes()).contains(type) ? isPermitted : !isPermitted; + } + } else if (type instanceof ISpecializationType) { + IElementMatcher matcher = ((ISpecializationType) type).getMatcher(); + if (matcher != null) { + boolean matchesSpecialization = matcher.matches(eObject) && objectMetamodelType.equals(((ISpecializationType) type).getMetamodelType()); // the eObject matches the speciailization type that is permitted. Should then check the + if (matchesSpecialization) { + // test the isStrict now... It will be false if it matches one of the sub-specialization type + if (isStrict) { + ISpecializationType[] subtypes = ElementTypeRegistry.getInstance().getSpecializationsOf(childType); + if (subtypes != null && subtypes.length > 0) { + for (ISpecializationType subType : subtypes) { + isValid = subType.getMatcher().matches(eObject) ? isPermitted : !isPermitted; // the isStrict is not verified (one of the subtypes is matched whereas it shoud not) + } + } else { // there are no further sub specialization types. + isValid = isPermitted; + } + } else { + // not strict + isValid = isPermitted; } + } else { // eObject type does not match the permission type + isValid = !isPermitted; + } } } } + + // IElementType[] types = ElementTypeRegistry.getInstance().getAllTypesMatching(eObject, sharedContext); + // if (types == null || types.length == 0) { + // return false; + // } + // + // for (HierarchyPermission permission : permissions) { + // boolean isPermitted = permission.isIsPermitted(); + // String childType = permission.getChildType(); + // boolean isStrict = permission.isIsStrict(); + // IElementType type = ElementTypeRegistry.getInstance().getType(childType); + // if (type != null) { + // if (isStrict) { + // isValid = types[0].equals(type) ? isPermitted : !isPermitted; + // } else { + // // not strict. The super types of typeToCreate should contain the permission type if permitted, or not contain the permission type if not permitted + // List<IElementType> allTypes = Arrays.asList(types); + // isValid = allTypes.contains(type) ? isPermitted : !isPermitted; + // } + // } + // } return isValid; } }; diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java index 17058e3dbf2..1998d627068 100644 --- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java +++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java @@ -12,20 +12,29 @@ *****************************************************************************/ package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration; +import java.util.Arrays; import java.util.List; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; +import org.eclipse.gmf.runtime.emf.type.core.IClientContext; +import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher; import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.IMetamodelType; +import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType; +import org.eclipse.papyrus.infra.core.services.ServiceException; +import org.eclipse.papyrus.infra.extendedtypes.Activator; import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IInvariantElementMatcher; +import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext; /** * Matcher of the hierarchy matcher */ public class InvariantContainerMatcher implements IInvariantElementMatcher<InvariantContainerConfiguration> { - protected EList<HierarchyPermission> permissions; + protected List<HierarchyPermission> permissions; + + protected IClientContext sharedContext; /** * @@ -38,106 +47,81 @@ public class InvariantContainerMatcher implements IInvariantElementMatcher<Invar * {@inheritDoc} */ public boolean matches(EObject eObject) { - return true; - // boolean matches = false; - // - // EObject container = eObject.eContainer(); - // - // if(container ==null) { - // return false; - // } - // - // matches = checkAllowed(container, allowedDirectParents, false); - // - // // if not ok in direct parents, test in the hierarchy - // if(!matches && allowedParentsInHierarchy!=null && !allowedParentsInHierarchy.isEmpty()) { - // while(!matches && container.eContainer() !=null) { - // container = container.eContainer(); - // matches = checkAllowed(container, allowedParentsInHierarchy, false); - // } - // } - // - // // check now that some forbidden type does not override the current matches - // if(!matches) { - // return false; - // } - // - // container = eObject.eContainer(); - // // container (direct or indirect) could match. now try the forbidden lists - // matches = checkForbidden(container, forbiddenDirectParents, false); - // - // // if not ok in direct parents, test in the hierarchy - // if(matches && forbiddenParentsInHierarchy!=null && !forbiddenParentsInHierarchy.isEmpty()) { - // while(matches && container.eContainer() !=null) { - // container = container.eContainer(); - // matches = checkForbidden(container, forbiddenParentsInHierarchy, false); - // } - // } - // - // return matches; - } + EObject container = eObject.eContainer(); - /** - * @param container - * @param forbiddenParentsInHierarchy2 - * @param b - * @return - */ - protected boolean checkForbidden(EObject container, List<String> forbiddenParents, boolean isStrict) { - // check direct permissions - if (forbiddenParents != null && !forbiddenParents.isEmpty()) { - IElementType parentType = ElementTypeRegistry.getInstance().getElementType(container); - if (parentType != null) { - // check if necessary all super types of the direct parent - if (forbiddenParents.contains(parentType.getId())) { - return false; - } else { - // check also super types ids, if not strict permission - if (!isStrict) { - for (IElementType superType : parentType.getAllSuperTypes()) { - if (forbiddenParents.contains(superType.getId())) { - return false; - } - } - } - } - } + if (container == null) { + return false; } - return true; - } + + IElementType objectMetamodelType = ElementTypeRegistry.getInstance().getElementType(container, sharedContext); - /** - * - */ - protected boolean checkAllowed(EObject container, List<String> allowedParents, boolean isStrict) { - boolean matches = false; - // check direct permissions - if (allowedParents != null && !allowedParents.isEmpty()) { - IElementType parentType = ElementTypeRegistry.getInstance().getElementType(container); - if (parentType != null) { - // check if necessary all super types of the direct parent - if (allowedParents.contains(parentType.getId())) { - matches = true; + boolean isValid = false; + for (HierarchyPermission permission : permissions) { // for each permission, get the matcher and matches directly + boolean isPermitted = permission.isIsPermitted(); + String childType = permission.getChildType(); + boolean isStrict = permission.isIsStrict(); + IElementType type = ElementTypeRegistry.getInstance().getType(childType); + + // check is the permission type is a specialization type or a metamodel type, to enhance performances + // if this is a metamodel type and strict, a simple equals can match or not if it is permitted or not + // if this is a metamodel type and not strict, we only compare the list of supertypes of the eobject type with the permission Type + if (type instanceof IMetamodelType) { + if (isStrict) { + isValid = type.equals(objectMetamodelType) ? isPermitted : !isPermitted; } else { - // check also super types ids, if not strict permission - if (!isStrict) { - for (IElementType superType : parentType.getAllSuperTypes()) { - if (allowedParents.contains(superType.getId())) { - matches = true; - break; + // this is not strict + // so any super metamodeltype of permission type that matches objectMetamodelType is OK + isValid = Arrays.asList(objectMetamodelType.getAllSuperTypes()).contains(type) ? isPermitted : !isPermitted; + } + } else if (type instanceof ISpecializationType) { + IElementMatcher matcher = ((ISpecializationType) type).getMatcher(); + if (matcher != null) { + boolean matchesSpecialization = matcher.matches(container) && objectMetamodelType.equals(((ISpecializationType) type).getMetamodelType()); // the eObject matches the speciailization type that is permitted. Should then check the + if (matchesSpecialization) { + // test the isStrict now... It will be false if it matches one of the sub-specialization type + if (isStrict) { + ISpecializationType[] subtypes = ElementTypeRegistry.getInstance().getSpecializationsOf(childType); + if (subtypes != null && subtypes.length > 0) { + for (ISpecializationType subType : subtypes) { + isValid = subType.getMatcher().matches(container) ? isPermitted : !isPermitted; // the isStrict is not verified (one of the subtypes is matched whereas it shoud not) + } + } else { // there are no further sub specialization types. + isValid = isPermitted; } + } else { + // not strict + isValid = isPermitted; } + } else { // eObject type does not match the permission type + isValid = !isPermitted; + } } } } - return matches; + + return isValid; + +// +// +// // retrieve element type +// IElementType[] containerTypes = ElementTypeRegistry.getInstance().getAllTypesMatching(container, sharedContext); +// if(containerTypes != null && containerTypes.length >0) { +// return InvariantContainerUtils.isContainerValid(containerTypes, matches, permissions); +// } +// return false; } + /** * {@inheritDoc} */ public void init(InvariantContainerConfiguration configuration) { + try { + sharedContext = TypeContext.getContext(); + } catch (ServiceException e) { + Activator.log.error(e); + } this.permissions = configuration.getPermissions(); } } diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/META-INF/MANIFEST.MF b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/META-INF/MANIFEST.MF index 0854fe9ff27..835d7533b07 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/META-INF/MANIFEST.MF +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/META-INF/MANIFEST.MF @@ -1,32 +1,37 @@ -Manifest-Version: 1.0
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.1.0";visibility:=reexport,
- org.eclipse.uml2.uml,
- org.eclipse.papyrus.infra.core.log;bundle-version="1.1.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.1.0",
- org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.4.0",
- org.eclipse.papyrus.infra.extendedtypes.emf;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.1.0",
- org.eclipse.swt,
- org.eclipse.papyrus.infra.widgets;bundle-version="1.1.0",
- org.eclipse.papyrus.uml.properties;bundle-version="1.1.0",
- org.eclipse.papyrus.views.properties;bundle-version="1.1.0"
-Export-Package: org.eclipse.papyrus.uml.tools.extendedtypes,
- org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration,
- org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration.impl,
- org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration.util
-Bundle-Vendor: %providerName
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Version: 1.1.0.qualifier
-Bundle-Localization: plugin
-Bundle-Name: %pluginName
-Bundle-Activator: org.eclipse.papyrus.uml.tools.extendedtypes.Activato
- r$Implementation
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.uml.tools.extendedtypes;singl
- eton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-
+Manifest-Version: 1.0 +Export-Package: org.eclipse.papyrus.uml.tools.extendedtypes, + org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration, + org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration.impl, + org.eclipse.papyrus.uml.tools.extendedtypes.applystereotypeactionconfiguration.util, + org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration, + org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl, + org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.util, + org.eclipse.papyrus.uml.tools.extendedtypes.settypeactionconfiguration, + org.eclipse.papyrus.uml.tools.extendedtypes.settypeactionconfiguration.impl, + org.eclipse.papyrus.uml.tools.extendedtypes.settypeactionconfiguration.util, + org.eclipse.papyrus.uml.tools.extendedtypes.stereotypedelementmatcherconfiguration, + org.eclipse.papyrus.uml.tools.extendedtypes.stereotypedelementmatcherconfiguration.impl, + org.eclipse.papyrus.uml.tools.extendedtypes.stereotypedelementmatcherconfiguration.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.1.0";visibility:=reexport, + org.eclipse.uml2.uml, + org.eclipse.papyrus.infra.core.log;bundle-version="1.1.0", + org.eclipse.papyrus.uml.tools.utils;bundle-version="1.1.0", + org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.4.0", + org.eclipse.papyrus.infra.extendedtypes.emf;bundle-version="1.1.0", + org.eclipse.papyrus.infra.services.edit;bundle-version="1.1.0", + org.eclipse.swt, + org.eclipse.papyrus.infra.widgets;bundle-version="1.1.0", + org.eclipse.papyrus.uml.properties;bundle-version="1.1.0", + org.eclipse.papyrus.views.properties;bundle-version="1.1.0" +Bundle-Vendor: %providerName +Bundle-ActivationPolicy: lazy +Bundle-ClassPath: . +Bundle-Version: 1.1.0.qualifier +Bundle-Localization: plugin +Bundle-ManifestVersion: 2 +Bundle-Activator: org.eclipse.papyrus.uml.tools.extendedtypes.Activator$Implementation +Bundle-SymbolicName: org.eclipse.papyrus.uml.tools.extendedtypes;singleton:=true +Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/model/InvariantStereotypeConfiguration.ecore b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/model/InvariantStereotypeConfiguration.ecore index 7a0216a825f..5a2d4a135c6 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/model/InvariantStereotypeConfiguration.ecore +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/model/InvariantStereotypeConfiguration.ecore @@ -6,5 +6,6 @@ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stereotypeQualifiedName" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredProfile" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="strict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> </eClassifiers> </ecore:EPackage> diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfiguration.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfiguration.java index 31f2e4fd2d0..f08de0c6f60 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfiguration.java +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfiguration.java @@ -1,91 +1,120 @@ -/**
- * Copyright (c) 2013 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:
- * CEA LIST - Initial API and implementation
- */
-package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration;
-
-import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Invariant Stereotype Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration()
- * @model
- * @generated
- */
-public interface InvariantStereotypeConfiguration extends InvariantRuleConfiguration {
-
- /**
- * Returns the value of the '<em><b>Stereotype Qualified Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Stereotype Qualified Name</em>' attribute isn't clear, there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- *
- * @return the value of the '<em>Stereotype Qualified Name</em>' attribute.
- * @see #setStereotypeQualifiedName(String)
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration_StereotypeQualifiedName()
- * @model required="true"
- * @generated
- */
- String getStereotypeQualifiedName();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>Stereotype Qualified Name</em>' attribute.
- * @see #getStereotypeQualifiedName()
- * @generated
- */
- void setStereotypeQualifiedName(String value);
-
- /**
- * Returns the value of the '<em><b>Required Profile</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Required Profile</em>' attribute isn't clear, there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- *
- * @return the value of the '<em>Required Profile</em>' attribute.
- * @see #setRequiredProfile(String)
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration_RequiredProfile()
- * @model
- * @generated
- */
- String getRequiredProfile();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>Required Profile</em>' attribute.
- * @see #getRequiredProfile()
- * @generated
- */
- void setRequiredProfile(String value);
-} // InvariantStereotypeConfiguration
+/** + * Copyright (c) 2013 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: + * CEA LIST - Initial API and implementation + */ +package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration; + +import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Invariant Stereotype Configuration</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}</li> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}</li> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#isStrict <em>Strict</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration() + * @model + * @generated + */ +public interface InvariantStereotypeConfiguration extends InvariantRuleConfiguration { + + /** + * Returns the value of the '<em><b>Stereotype Qualified Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Stereotype Qualified Name</em>' attribute isn't clear, there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * + * @return the value of the '<em>Stereotype Qualified Name</em>' attribute. + * @see #setStereotypeQualifiedName(String) + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration_StereotypeQualifiedName() + * @model required="true" + * @generated + */ + String getStereotypeQualifiedName(); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @param value + * the new value of the '<em>Stereotype Qualified Name</em>' attribute. + * @see #getStereotypeQualifiedName() + * @generated + */ + void setStereotypeQualifiedName(String value); + + /** + * Returns the value of the '<em><b>Required Profile</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Required Profile</em>' attribute isn't clear, there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * + * @return the value of the '<em>Required Profile</em>' attribute. + * @see #setRequiredProfile(String) + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration_RequiredProfile() + * @model + * @generated + */ + String getRequiredProfile(); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @param value + * the new value of the '<em>Required Profile</em>' attribute. + * @see #getRequiredProfile() + * @generated + */ + void setRequiredProfile(String value); + + /** + * Returns the value of the '<em><b>Strict</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Strict</em>' attribute isn't clear, there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * + * @return the value of the '<em>Strict</em>' attribute. + * @see #setStrict(boolean) + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#getInvariantStereotypeConfiguration_Strict() + * @model + * @generated + */ + boolean isStrict(); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#isStrict <em>Strict</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @param value + * the new value of the '<em>Strict</em>' attribute. + * @see #isStrict() + * @generated + */ + void setStrict(boolean value); +} // InvariantStereotypeConfiguration diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfigurationPackage.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfigurationPackage.java index ff7ce3ad3c6..a01c46df0c8 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfigurationPackage.java +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeConfigurationPackage.java @@ -1,216 +1,247 @@ -/**
- * Copyright (c) 2013 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:
- * CEA LIST - Initial API and implementation
- */
-package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- * <li>each class,</li>
- * <li>each feature of each class,</li>
- * <li>each operation of each class,</li>
- * <li>each enum,</li>
- * <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationFactory
- * @model kind="package"
- * @generated
- */
-public interface InvariantStereotypeConfigurationPackage extends EPackage {
-
- /**
- * The package name.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- String eNAME = "invariantstereotypeconfiguration";
-
- /**
- * The package namespace URI.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/stereotype/1.0";
-
- /**
- * The package namespace name.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- String eNS_PREFIX = "invariantstereotypeconfiguration";
-
- /**
- * The singleton instance of the package.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- InvariantStereotypeConfigurationPackage eINSTANCE = org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl.init();
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl <em>Invariant Stereotype Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl#getInvariantStereotypeConfiguration()
- * @generated
- */
- int INVARIANT_STEREOTYPE_CONFIGURATION = 0;
-
- /**
- * The feature id for the '<em><b>Stereotype Qualified Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- * @ordered
- */
- int INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 0;
-
- /**
- * The feature id for the '<em><b>Required Profile</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- * @ordered
- */
- int INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 1;
-
- /**
- * The number of structural features of the '<em>Invariant Stereotype Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- * @ordered
- */
- int INVARIANT_STEREOTYPE_CONFIGURATION_FEATURE_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 2;
-
- /**
- * The number of operations of the '<em>Invariant Stereotype Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- * @ordered
- */
- int INVARIANT_STEREOTYPE_CONFIGURATION_OPERATION_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_OPERATION_COUNT + 0;
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration <em>Invariant Stereotype Configuration</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @return the meta object for class '<em>Invariant Stereotype Configuration</em>'.
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration
- * @generated
- */
- EClass getInvariantStereotypeConfiguration();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @return the meta object for the attribute '<em>Stereotype Qualified Name</em>'.
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName()
- * @see #getInvariantStereotypeConfiguration()
- * @generated
- */
- EAttribute getInvariantStereotypeConfiguration_StereotypeQualifiedName();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @return the meta object for the attribute '<em>Required Profile</em>'.
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile()
- * @see #getInvariantStereotypeConfiguration()
- * @generated
- */
- EAttribute getInvariantStereotypeConfiguration_RequiredProfile();
-
- /**
- * Returns the factory that creates the instances of the model.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @return the factory that creates the instances of the model.
- * @generated
- */
- InvariantStereotypeConfigurationFactory getInvariantStereotypeConfigurationFactory();
-
- /**
- * <!-- begin-user-doc -->
- * Defines literals for the meta objects that represent
- * <ul>
- * <li>each class,</li>
- * <li>each feature of each class,</li>
- * <li>each operation of each class,</li>
- * <li>each enum,</li>
- * <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- *
- * @generated
- */
- interface Literals {
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl <em>Invariant Stereotype Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl#getInvariantStereotypeConfiguration()
- * @generated
- */
- EClass INVARIANT_STEREOTYPE_CONFIGURATION = eINSTANCE.getInvariantStereotypeConfiguration();
-
- /**
- * The meta object literal for the '<em><b>Stereotype Qualified Name</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- EAttribute INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME = eINSTANCE.getInvariantStereotypeConfiguration_StereotypeQualifiedName();
-
- /**
- * The meta object literal for the '<em><b>Required Profile</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- EAttribute INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE = eINSTANCE.getInvariantStereotypeConfiguration_RequiredProfile();
- }
-} // InvariantStereotypeConfigurationPackage
+/** + * Copyright (c) 2013 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: + * CEA LIST - Initial API and implementation + */ +package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationFactory + * @model kind="package" + * @generated + */ +public interface InvariantStereotypeConfigurationPackage extends EPackage { + + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + String eNAME = "invariantstereotypeconfiguration"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/stereotype/1.0"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + String eNS_PREFIX = "invariantstereotypeconfiguration"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + InvariantStereotypeConfigurationPackage eINSTANCE = org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl <em>Invariant Stereotype Configuration</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl#getInvariantStereotypeConfiguration() + * @generated + */ + int INVARIANT_STEREOTYPE_CONFIGURATION = 0; + + /** + * The feature id for the '<em><b>Stereotype Qualified Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Required Profile</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Strict</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int INVARIANT_STEREOTYPE_CONFIGURATION__STRICT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the '<em>Invariant Stereotype Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int INVARIANT_STEREOTYPE_CONFIGURATION_FEATURE_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 3; + + /** + * The number of operations of the '<em>Invariant Stereotype Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int INVARIANT_STEREOTYPE_CONFIGURATION_OPERATION_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_OPERATION_COUNT + 0; + + /** + * Returns the meta object for class '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration <em>Invariant Stereotype Configuration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @return the meta object for class '<em>Invariant Stereotype Configuration</em>'. + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration + * @generated + */ + EClass getInvariantStereotypeConfiguration(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @return the meta object for the attribute '<em>Stereotype Qualified Name</em>'. + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getStereotypeQualifiedName() + * @see #getInvariantStereotypeConfiguration() + * @generated + */ + EAttribute getInvariantStereotypeConfiguration_StereotypeQualifiedName(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile <em>Required Profile</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @return the meta object for the attribute '<em>Required Profile</em>'. + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#getRequiredProfile() + * @see #getInvariantStereotypeConfiguration() + * @generated + */ + EAttribute getInvariantStereotypeConfiguration_RequiredProfile(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#isStrict <em>Strict</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @return the meta object for the attribute '<em>Strict</em>'. + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration#isStrict() + * @see #getInvariantStereotypeConfiguration() + * @generated + */ + EAttribute getInvariantStereotypeConfiguration_Strict(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @return the factory that creates the instances of the model. + * @generated + */ + InvariantStereotypeConfigurationFactory getInvariantStereotypeConfigurationFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * + * @generated + */ + interface Literals { + + /** + * The meta object literal for the '{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl <em>Invariant Stereotype Configuration</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationPackageImpl#getInvariantStereotypeConfiguration() + * @generated + */ + EClass INVARIANT_STEREOTYPE_CONFIGURATION = eINSTANCE.getInvariantStereotypeConfiguration(); + + /** + * The meta object literal for the '<em><b>Stereotype Qualified Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + EAttribute INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME = eINSTANCE.getInvariantStereotypeConfiguration_StereotypeQualifiedName(); + + /** + * The meta object literal for the '<em><b>Required Profile</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + EAttribute INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE = eINSTANCE.getInvariantStereotypeConfiguration_RequiredProfile(); + + /** + * The meta object literal for the '<em><b>Strict</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + EAttribute INVARIANT_STEREOTYPE_CONFIGURATION__STRICT = eINSTANCE.getInvariantStereotypeConfiguration_Strict(); + } +} // InvariantStereotypeConfigurationPackage diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationImpl.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationImpl.java index 0d5323359e5..7c668b1054d 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationImpl.java +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationImpl.java @@ -1,242 +1,302 @@ -/**
- * Copyright (c) 2013 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:
- * CEA LIST - Initial API and implementation
- */
-package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl;
-import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration;
-import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Invariant Stereotype Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl#getRequiredProfile <em>Required Profile</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class InvariantStereotypeConfigurationImpl extends InvariantRuleConfigurationImpl implements InvariantStereotypeConfiguration {
-
- /**
- * The default value of the '{@link #getStereotypeQualifiedName() <em>Stereotype Qualified Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #getStereotypeQualifiedName()
- * @generated
- * @ordered
- */
- protected static final String STEREOTYPE_QUALIFIED_NAME_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getStereotypeQualifiedName() <em>Stereotype Qualified Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #getStereotypeQualifiedName()
- * @generated
- * @ordered
- */
- protected String stereotypeQualifiedName = STEREOTYPE_QUALIFIED_NAME_EDEFAULT;
-
- /**
- * The default value of the '{@link #getRequiredProfile() <em>Required Profile</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #getRequiredProfile()
- * @generated
- * @ordered
- */
- protected static final String REQUIRED_PROFILE_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getRequiredProfile() <em>Required Profile</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #getRequiredProfile()
- * @generated
- * @ordered
- */
- protected String requiredProfile = REQUIRED_PROFILE_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- protected InvariantStereotypeConfigurationImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return InvariantStereotypeConfigurationPackage.Literals.INVARIANT_STEREOTYPE_CONFIGURATION;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public String getStereotypeQualifiedName() {
- return stereotypeQualifiedName;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public void setStereotypeQualifiedName(String newStereotypeQualifiedName) {
- String oldStereotypeQualifiedName = stereotypeQualifiedName;
- stereotypeQualifiedName = newStereotypeQualifiedName;
- if (eNotificationRequired()) {
- eNotify(new ENotificationImpl(this, Notification.SET, InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME, oldStereotypeQualifiedName, stereotypeQualifiedName));
- }
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public String getRequiredProfile() {
- return requiredProfile;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public void setRequiredProfile(String newRequiredProfile) {
- String oldRequiredProfile = requiredProfile;
- requiredProfile = newRequiredProfile;
- if (eNotificationRequired()) {
- eNotify(new ENotificationImpl(this, Notification.SET, InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE, oldRequiredProfile, requiredProfile));
- }
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME:
- return getStereotypeQualifiedName();
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE:
- return getRequiredProfile();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME:
- setStereotypeQualifiedName((String) newValue);
- return;
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE:
- setRequiredProfile((String) newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME:
- setStereotypeQualifiedName(STEREOTYPE_QUALIFIED_NAME_EDEFAULT);
- return;
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE:
- setRequiredProfile(REQUIRED_PROFILE_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME:
- return STEREOTYPE_QUALIFIED_NAME_EDEFAULT == null ? stereotypeQualifiedName != null : !STEREOTYPE_QUALIFIED_NAME_EDEFAULT.equals(stereotypeQualifiedName);
- case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE:
- return REQUIRED_PROFILE_EDEFAULT == null ? requiredProfile != null : !REQUIRED_PROFILE_EDEFAULT.equals(requiredProfile);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) {
- return super.toString();
- }
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (stereotypeQualifiedName: ");
- result.append(stereotypeQualifiedName);
- result.append(", requiredProfile: ");
- result.append(requiredProfile);
- result.append(')');
- return result.toString();
- }
-} // InvariantStereotypeConfigurationImpl
+/** + * Copyright (c) 2013 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: + * CEA LIST - Initial API and implementation + */ +package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl; +import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration; +import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Invariant Stereotype Configuration</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl#getStereotypeQualifiedName <em>Stereotype Qualified Name</em>}</li> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl#getRequiredProfile <em>Required Profile</em>}</li> + * <li>{@link org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl.InvariantStereotypeConfigurationImpl#isStrict <em>Strict</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class InvariantStereotypeConfigurationImpl extends InvariantRuleConfigurationImpl implements InvariantStereotypeConfiguration { + + /** + * The default value of the '{@link #getStereotypeQualifiedName() <em>Stereotype Qualified Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #getStereotypeQualifiedName() + * @generated + * @ordered + */ + protected static final String STEREOTYPE_QUALIFIED_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getStereotypeQualifiedName() <em>Stereotype Qualified Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #getStereotypeQualifiedName() + * @generated + * @ordered + */ + protected String stereotypeQualifiedName = STEREOTYPE_QUALIFIED_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getRequiredProfile() <em>Required Profile</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #getRequiredProfile() + * @generated + * @ordered + */ + protected static final String REQUIRED_PROFILE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getRequiredProfile() <em>Required Profile</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #getRequiredProfile() + * @generated + * @ordered + */ + protected String requiredProfile = REQUIRED_PROFILE_EDEFAULT; + + /** + * The default value of the '{@link #isStrict() <em>Strict</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #isStrict() + * @generated + * @ordered + */ + protected static final boolean STRICT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isStrict() <em>Strict</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #isStrict() + * @generated + * @ordered + */ + protected boolean strict = STRICT_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + protected InvariantStereotypeConfigurationImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return InvariantStereotypeConfigurationPackage.Literals.INVARIANT_STEREOTYPE_CONFIGURATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public String getStereotypeQualifiedName() { + return stereotypeQualifiedName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public void setStereotypeQualifiedName(String newStereotypeQualifiedName) { + String oldStereotypeQualifiedName = stereotypeQualifiedName; + stereotypeQualifiedName = newStereotypeQualifiedName; + if (eNotificationRequired()) { + eNotify(new ENotificationImpl(this, Notification.SET, InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME, oldStereotypeQualifiedName, stereotypeQualifiedName)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public String getRequiredProfile() { + return requiredProfile; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public void setRequiredProfile(String newRequiredProfile) { + String oldRequiredProfile = requiredProfile; + requiredProfile = newRequiredProfile; + if (eNotificationRequired()) { + eNotify(new ENotificationImpl(this, Notification.SET, InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE, oldRequiredProfile, requiredProfile)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public boolean isStrict() { + return strict; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public void setStrict(boolean newStrict) { + boolean oldStrict = strict; + strict = newStrict; + if (eNotificationRequired()) { + eNotify(new ENotificationImpl(this, Notification.SET, InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STRICT, oldStrict, strict)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME: + return getStereotypeQualifiedName(); + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE: + return getRequiredProfile(); + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STRICT: + return isStrict(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME: + setStereotypeQualifiedName((String) newValue); + return; + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE: + setRequiredProfile((String) newValue); + return; + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STRICT: + setStrict((Boolean) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME: + setStereotypeQualifiedName(STEREOTYPE_QUALIFIED_NAME_EDEFAULT); + return; + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE: + setRequiredProfile(REQUIRED_PROFILE_EDEFAULT); + return; + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STRICT: + setStrict(STRICT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME: + return STEREOTYPE_QUALIFIED_NAME_EDEFAULT == null ? stereotypeQualifiedName != null : !STEREOTYPE_QUALIFIED_NAME_EDEFAULT.equals(stereotypeQualifiedName); + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE: + return REQUIRED_PROFILE_EDEFAULT == null ? requiredProfile != null : !REQUIRED_PROFILE_EDEFAULT.equals(requiredProfile); + case InvariantStereotypeConfigurationPackage.INVARIANT_STEREOTYPE_CONFIGURATION__STRICT: + return strict != STRICT_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) { + return super.toString(); + } + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (stereotypeQualifiedName: "); + result.append(stereotypeQualifiedName); + result.append(", requiredProfile: "); + result.append(requiredProfile); + result.append(", strict: "); + result.append(strict); + result.append(')'); + return result.toString(); + } +} // InvariantStereotypeConfigurationImpl diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationPackageImpl.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationPackageImpl.java index b4bd2250c4a..8d6223d1611 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationPackageImpl.java +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src-gen/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/impl/InvariantStereotypeConfigurationPackageImpl.java @@ -1,206 +1,236 @@ -/**
- * Copyright (c) 2013 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:
- * CEA LIST - Initial API and implementation
- */
-package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
-import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration;
-import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationFactory;
-import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class InvariantStereotypeConfigurationPackageImpl extends EPackageImpl implements InvariantStereotypeConfigurationPackage {
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- private EClass invariantStereotypeConfigurationEClass = null;
-
- /**
- * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
- * package URI value.
- * <p>
- * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecore.EPackage.Registry
- * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#eNS_URI
- * @see #init()
- * @generated
- */
- private InvariantStereotypeConfigurationPackageImpl() {
- super(eNS_URI, InvariantStereotypeConfigurationFactory.eINSTANCE);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- private static boolean isInited = false;
-
- /**
- * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
- *
- * <p>
- * This method is used to initialize {@link InvariantStereotypeConfigurationPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #eNS_URI
- * @see #createPackageContents()
- * @see #initializePackageContents()
- * @generated
- */
- public static InvariantStereotypeConfigurationPackage init() {
- if (isInited) {
- return (InvariantStereotypeConfigurationPackage) EPackage.Registry.INSTANCE.getEPackage(InvariantStereotypeConfigurationPackage.eNS_URI);
- }
- // Obtain or create and register package
- InvariantStereotypeConfigurationPackageImpl theInvariantStereotypeConfigurationPackage = (InvariantStereotypeConfigurationPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof InvariantStereotypeConfigurationPackageImpl ? EPackage.Registry.INSTANCE
- .get(eNS_URI) : new InvariantStereotypeConfigurationPackageImpl());
- isInited = true;
- // Initialize simple dependencies
- InvariantSemanticTypeConfigurationPackage.eINSTANCE.eClass();
- // Create package meta-data objects
- theInvariantStereotypeConfigurationPackage.createPackageContents();
- // Initialize created meta-data
- theInvariantStereotypeConfigurationPackage.initializePackageContents();
- // Mark meta-data to indicate it can't be changed
- theInvariantStereotypeConfigurationPackage.freeze();
- // Update the registry and return the package
- EPackage.Registry.INSTANCE.put(InvariantStereotypeConfigurationPackage.eNS_URI, theInvariantStereotypeConfigurationPackage);
- return theInvariantStereotypeConfigurationPackage;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public EClass getInvariantStereotypeConfiguration() {
- return invariantStereotypeConfigurationEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public EAttribute getInvariantStereotypeConfiguration_StereotypeQualifiedName() {
- return (EAttribute) invariantStereotypeConfigurationEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public EAttribute getInvariantStereotypeConfiguration_RequiredProfile() {
- return (EAttribute) invariantStereotypeConfigurationEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public InvariantStereotypeConfigurationFactory getInvariantStereotypeConfigurationFactory() {
- return (InvariantStereotypeConfigurationFactory) getEFactoryInstance();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- private boolean isCreated = false;
-
- /**
- * Creates the meta-model objects for the package. This method is
- * guarded to have no affect on any invocation but its first.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public void createPackageContents() {
- if (isCreated) {
- return;
- }
- isCreated = true;
- // Create classes and their features
- invariantStereotypeConfigurationEClass = createEClass(INVARIANT_STEREOTYPE_CONFIGURATION);
- createEAttribute(invariantStereotypeConfigurationEClass, INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME);
- createEAttribute(invariantStereotypeConfigurationEClass, INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- private boolean isInitialized = false;
-
- /**
- * Complete the initialization of the package and its meta-model. This
- * method is guarded to have no affect on any invocation but its first.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
- public void initializePackageContents() {
- if (isInitialized) {
- return;
- }
- isInitialized = true;
- // Initialize package
- setName(eNAME);
- setNsPrefix(eNS_PREFIX);
- setNsURI(eNS_URI);
- // Obtain other dependent packages
- InvariantSemanticTypeConfigurationPackage theInvariantSemanticTypeConfigurationPackage = (InvariantSemanticTypeConfigurationPackage) EPackage.Registry.INSTANCE.getEPackage(InvariantSemanticTypeConfigurationPackage.eNS_URI);
- EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
- // Create type parameters
- // Set bounds for type parameters
- // Add supertypes to classes
- invariantStereotypeConfigurationEClass.getESuperTypes().add(theInvariantSemanticTypeConfigurationPackage.getInvariantRuleConfiguration());
- // Initialize classes, features, and operations; add parameters
- initEClass(invariantStereotypeConfigurationEClass, InvariantStereotypeConfiguration.class, "InvariantStereotypeConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getInvariantStereotypeConfiguration_StereotypeQualifiedName(), theEcorePackage.getEString(), "stereotypeQualifiedName", null, 1, 1, InvariantStereotypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
- !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getInvariantStereotypeConfiguration_RequiredProfile(), theEcorePackage.getEString(), "requiredProfile", null, 0, 1, InvariantStereotypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
- !IS_DERIVED, IS_ORDERED);
- // Create resource
- createResource(eNS_URI);
- }
-} // InvariantStereotypeConfigurationPackageImpl
+/** + * Copyright (c) 2013 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: + * CEA LIST - Initial API and implementation + */ +package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage; +import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfiguration; +import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationFactory; +import org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * + * @generated + */ +public class InvariantStereotypeConfigurationPackageImpl extends EPackageImpl implements InvariantStereotypeConfigurationPackage { + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + private EClass invariantStereotypeConfigurationEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p> + * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration.InvariantStereotypeConfigurationPackage#eNS_URI + * @see #init() + * @generated + */ + private InvariantStereotypeConfigurationPackageImpl() { + super(eNS_URI, InvariantStereotypeConfigurationFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p> + * This method is used to initialize {@link InvariantStereotypeConfigurationPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static InvariantStereotypeConfigurationPackage init() { + if (isInited) { + return (InvariantStereotypeConfigurationPackage) EPackage.Registry.INSTANCE.getEPackage(InvariantStereotypeConfigurationPackage.eNS_URI); + } + + // Obtain or create and register package + InvariantStereotypeConfigurationPackageImpl theInvariantStereotypeConfigurationPackage = (InvariantStereotypeConfigurationPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof InvariantStereotypeConfigurationPackageImpl ? EPackage.Registry.INSTANCE + .get(eNS_URI) + : new InvariantStereotypeConfigurationPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + InvariantSemanticTypeConfigurationPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theInvariantStereotypeConfigurationPackage.createPackageContents(); + + // Initialize created meta-data + theInvariantStereotypeConfigurationPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theInvariantStereotypeConfigurationPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(InvariantStereotypeConfigurationPackage.eNS_URI, theInvariantStereotypeConfigurationPackage); + return theInvariantStereotypeConfigurationPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public EClass getInvariantStereotypeConfiguration() { + return invariantStereotypeConfigurationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public EAttribute getInvariantStereotypeConfiguration_StereotypeQualifiedName() { + return (EAttribute) invariantStereotypeConfigurationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public EAttribute getInvariantStereotypeConfiguration_RequiredProfile() { + return (EAttribute) invariantStereotypeConfigurationEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public EAttribute getInvariantStereotypeConfiguration_Strict() { + return (EAttribute) invariantStereotypeConfigurationEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public InvariantStereotypeConfigurationFactory getInvariantStereotypeConfigurationFactory() { + return (InvariantStereotypeConfigurationFactory) getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public void createPackageContents() { + if (isCreated) { + return; + } + isCreated = true; + + // Create classes and their features + invariantStereotypeConfigurationEClass = createEClass(INVARIANT_STEREOTYPE_CONFIGURATION); + createEAttribute(invariantStereotypeConfigurationEClass, INVARIANT_STEREOTYPE_CONFIGURATION__STEREOTYPE_QUALIFIED_NAME); + createEAttribute(invariantStereotypeConfigurationEClass, INVARIANT_STEREOTYPE_CONFIGURATION__REQUIRED_PROFILE); + createEAttribute(invariantStereotypeConfigurationEClass, INVARIANT_STEREOTYPE_CONFIGURATION__STRICT); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @generated + */ + public void initializePackageContents() { + if (isInitialized) { + return; + } + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + InvariantSemanticTypeConfigurationPackage theInvariantSemanticTypeConfigurationPackage = (InvariantSemanticTypeConfigurationPackage) EPackage.Registry.INSTANCE.getEPackage(InvariantSemanticTypeConfigurationPackage.eNS_URI); + EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + invariantStereotypeConfigurationEClass.getESuperTypes().add(theInvariantSemanticTypeConfigurationPackage.getInvariantRuleConfiguration()); + + // Initialize classes, features, and operations; add parameters + initEClass(invariantStereotypeConfigurationEClass, InvariantStereotypeConfiguration.class, "InvariantStereotypeConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getInvariantStereotypeConfiguration_StereotypeQualifiedName(), theEcorePackage.getEString(), "stereotypeQualifiedName", null, 1, 1, InvariantStereotypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, + !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getInvariantStereotypeConfiguration_RequiredProfile(), theEcorePackage.getEString(), "requiredProfile", null, 0, 1, InvariantStereotypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getInvariantStereotypeConfiguration_Strict(), ecorePackage.getEBoolean(), "strict", null, 0, 1, InvariantStereotypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } +} // InvariantStereotypeConfigurationPackageImpl diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeElementMatcher.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeElementMatcher.java index 6fdb6f10f60..ab7b2a4bf7a 100644 --- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeElementMatcher.java +++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools.extendedtypes/src/org/eclipse/papyrus/uml/tools/extendedtypes/invariantstereotypeconfiguration/InvariantStereotypeElementMatcher.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2013 CEA LIST. + * Copyright (c) 2013, 2014 CEA LIST and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,12 +8,14 @@ * * Contributors: * Remi Schnekenburger (CEA LIST) - Initial API and implementation + * Sebastien Gabel (Esterel Technologies) - Add support to isStrict attribute * *****************************************************************************/ package org.eclipse.papyrus.uml.tools.extendedtypes.invariantstereotypeconfiguration; import org.eclipse.emf.ecore.EObject; import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IInvariantElementMatcher; +import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil; import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.Stereotype; @@ -25,6 +27,8 @@ public class InvariantStereotypeElementMatcher implements IInvariantElementMatch private String stereotypeQualifiedName; + private boolean isStrict; + /** * {@inheritDoc} */ @@ -34,8 +38,23 @@ public class InvariantStereotypeElementMatcher implements IInvariantElementMatch return false; } - Stereotype appliedStereotype = ((Element) eObject).getAppliedStereotype(getStereotypeQualifiedName()); - return appliedStereotype != null; + String stereotypeQualifiedName = getStereotypeQualifiedName(); + if(stereotypeQualifiedName==null) { // to avoid null pointers + return false; + } + Stereotype appliedStereotype = ((Element) eObject).getAppliedStereotype(stereotypeQualifiedName); + if (appliedStereotype != null) { // one has been found, no need to get further + return true; + } else if(!isStrict) { // the stereotype does not match perfectly, but one of the applied stereotypes on the element could match if not strict + for (Stereotype stereotype : ((Element) eObject).getAppliedStereotypes()) { + for (Stereotype superStereotype : StereotypeUtil.getAllSuperStereotypes(stereotype)) { + if (stereotypeQualifiedName.equals(superStereotype.getQualifiedName())) { + return true; // there is a match in the super stereotypes. Finish here, element matches + } + } + } + } + return false; } /** @@ -43,6 +62,7 @@ public class InvariantStereotypeElementMatcher implements IInvariantElementMatch */ public void init(InvariantStereotypeConfiguration ruleConfiguration) { setStereotypeQualifiedName(ruleConfiguration.getStereotypeQualifiedName()); + setStrict(ruleConfiguration.isStrict()); } /** @@ -59,4 +79,20 @@ public class InvariantStereotypeElementMatcher implements IInvariantElementMatch public void setStereotypeQualifiedName(String stereotypeQualifiedName) { this.stereotypeQualifiedName = stereotypeQualifiedName; } + + + /** + * @return the isStrict + */ + public boolean isStrict() { + return isStrict; + } + + /** + * @param isStrict + * the isStrict to set + */ + public void setStrict(boolean isStrict) { + this.isStrict = isStrict; + } } |