diff options
Diffstat (limited to 'plugins/uml/org.eclipse.papyrus.uml.elementtypesconfigurations/src/org/eclipse/papyrus/uml/elementtypesconfigurations/invariantstereotyperuleconfiguration/InvariantStereotypeRule.java')
-rw-r--r-- | plugins/uml/org.eclipse.papyrus.uml.elementtypesconfigurations/src/org/eclipse/papyrus/uml/elementtypesconfigurations/invariantstereotyperuleconfiguration/InvariantStereotypeRule.java | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/plugins/uml/org.eclipse.papyrus.uml.elementtypesconfigurations/src/org/eclipse/papyrus/uml/elementtypesconfigurations/invariantstereotyperuleconfiguration/InvariantStereotypeRule.java b/plugins/uml/org.eclipse.papyrus.uml.elementtypesconfigurations/src/org/eclipse/papyrus/uml/elementtypesconfigurations/invariantstereotyperuleconfiguration/InvariantStereotypeRule.java deleted file mode 100644 index 9509e98a5e1..00000000000 --- a/plugins/uml/org.eclipse.papyrus.uml.elementtypesconfigurations/src/org/eclipse/papyrus/uml/elementtypesconfigurations/invariantstereotyperuleconfiguration/InvariantStereotypeRule.java +++ /dev/null @@ -1,193 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2014 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.elementtypesconfigurations.invariantstereotyperuleconfiguration; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; -import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest; -import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; -import org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType; -import org.eclipse.papyrus.uml.elementtypesconfigurations.requests.ApplyProfileRequest; -import org.eclipse.papyrus.uml.elementtypesconfigurations.requests.ApplyStereotypeRequest; -import org.eclipse.papyrus.uml.elementtypesconfigurations.requests.SetStereotypeValueRequest; -import org.eclipse.papyrus.uml.elementtypesconfigurations.requests.UnapplyProfileRequest; -import org.eclipse.papyrus.uml.elementtypesconfigurations.requests.UnapplyStereotypeRequest; -import org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule; -import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil; -import org.eclipse.uml2.uml.Element; -import org.eclipse.uml2.uml.Package; -import org.eclipse.uml2.uml.Profile; -import org.eclipse.uml2.uml.Stereotype; - -public class InvariantStereotypeRule extends AbstractUmlInvariantRule<InvariantStereotypeRuleConfiguration> { - - /** - * @see org.eclipse.papyrus.infra.elementtypesconfigurations.invarianttypes.invarianttypeconfiguration.IInvariantRule#matches(org.eclipse.emf.ecore.EObject) - * - * @param eObject - * @return - */ - public boolean matches(EObject eObject) { - if (!(eObject instanceof Element)) { - return false; - } - - String stereotypeQualifiedName = invariantRuleConfiguration.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 (!invariantRuleConfiguration.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; - } - - /** - * @see org.eclipse.papyrus.infra.elementtypesconfigurations.invarianttypes.invarianttypeconfiguration.AbstractInvariantRule#approveMoveRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveMoveRequest(ConfiguredHintedSpecializationElementType type, MoveRequest request) { - return true; - } - - /** - * @see org.eclipse.papyrus.infra.elementtypesconfigurations.invarianttypes.invarianttypeconfiguration.AbstractInvariantRule#approveSetRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveSetRequest(ConfiguredHintedSpecializationElementType type, SetRequest request) { - return true; - } - - /** - * @see org.eclipse.papyrus.infra.elementtypesconfigurations.invarianttypes.invarianttypeconfiguration.AbstractInvariantRule#approveCreationRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveCreationRequest(ConfiguredHintedSpecializationElementType type, CreateElementRequest request) { - // check that the required profile is present. - String requiredProfileName = invariantRuleConfiguration.getRequiredProfile(); - if (requiredProfileName != null) { - // check target - EObject container = request.getContainer(); - if (!(container instanceof Element)) { - return false; - } - Package nearestPackage = ((Element) container).getNearestPackage(); - if (nearestPackage == null) { - return false; - } - Profile appliedProfile = nearestPackage.getAppliedProfile(requiredProfileName, true); - return appliedProfile != null; - } - - return true; - } - - /** - * @see org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule#approveApplyStereotypeRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.papyrus.uml.elementtypesconfigurations.requests.ApplyStereotypeRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveApplyStereotypeRequest(ConfiguredHintedSpecializationElementType type, ApplyStereotypeRequest request) { - return true; - } - - /** - * @see org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule#approveUnapplyStereotypeRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.papyrus.uml.elementtypesconfigurations.requests.UnapplyStereotypeRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveUnapplyStereotypeRequest(ConfiguredHintedSpecializationElementType type, UnapplyStereotypeRequest request) { - - if (request.getStereotype().getQualifiedName().equals(this.invariantRuleConfiguration.getStereotypeQualifiedName())) { - return false; - } - return true; - } - - /** - * @see org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule#approveApplyProfileRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.papyrus.uml.elementtypesconfigurations.requests.ApplyProfileRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveApplyProfileRequest(ConfiguredHintedSpecializationElementType type, ApplyProfileRequest request) { - return true; - } - - /** - * @see org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule#approveUnapplyProfileRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.papyrus.uml.elementtypesconfigurations.requests.UnapplyProfileRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveUnapplyProfileRequest(ConfiguredHintedSpecializationElementType type, UnapplyProfileRequest request) { - String requiredProfileName = invariantRuleConfiguration.getRequiredProfile(); - - if (requiredProfileName.equals(request.getProfile().getQualifiedName())) { - return false; - } - return true; - } - - /** - * @see org.eclipse.papyrus.uml.elementtypesconfigurations.umlinvariantrule.AbstractUmlInvariantRule#approveSetStereotypeValueRequest(org.eclipse.papyrus.infra.elementtypesconfigurations.impl.ConfiguredHintedSpecializationElementType, - * org.eclipse.papyrus.uml.elementtypesconfigurations.requests.SetStereotypeValueRequest) - * - * @param type - * @param request - * @return - */ - @Override - protected boolean approveSetStereotypeValueRequest(ConfiguredHintedSpecializationElementType type, SetStereotypeValueRequest request) { - return true; - } - -} |