package org.eclipse.papyrus.uml.diagram.statemachine.part;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.common.providers.BaseViewInfo;
import org.eclipse.papyrus.uml.diagram.common.providers.ViewInfo;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.expressions.UMLOCLFactory;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentBodyEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintBodyEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintNameLabelEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.DoActivityStateBehaviorStateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.EntryStateBehaviorEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ExitStateBehaviorEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.GeneralizationEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.GeneralizationStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.InternalTransitionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PackageEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionGuardEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionStereotypeEditPart;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.PseudostateKind;
import org.eclipse.uml2.uml.UMLPackage;
/**
* This registry is used to determine which type of visual object should be
* created for the corresponding Diagram, Node, ChildNode or Link represented by
* a domain model object.
*
* @generated
*/
public class UMLVisualIDRegistry {
/**
* @generated
*/
private static final String DEBUG_KEY = "org.eclipse.papyrus.uml.diagram.statemachine/debug/visualID"; //$NON-NLS-1$
/**
* @generated
*/
private static ViewInfo diagramViewInfo = null;
/**
* @generated
*/
public static boolean canCreateNode(View containerView, int nodeVisualID) {
String containerModelID = org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry.getModelID(containerView);
if(!PackageEditPart.MODEL_ID.equals(containerModelID)) {
return false;
}
int containerVisualID;
if(PackageEditPart.MODEL_ID.equals(containerModelID)) {
containerVisualID = org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry.getVisualID(containerView);
} else {
if(containerView instanceof Diagram) {
containerVisualID = PackageEditPart.VISUAL_ID;
} else {
return false;
}
}
switch(containerVisualID) {
case PackageEditPart.VISUAL_ID:
if(StateMachineEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case StateMachineEditPart.VISUAL_ID:
if(StateMachineNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(StateMachineCompartmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateEntryPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateExitPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case RegionEditPart.VISUAL_ID:
if(RegionCompartmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case FinalStateEditPart.VISUAL_ID:
if(FinalStateNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(FinalStateStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case StateEditPart.VISUAL_ID:
if(StateNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(StateCompartmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(EntryStateBehaviorEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(DoActivityStateBehaviorStateEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ExitStateBehaviorEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(InternalTransitionEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(RegionEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateEntryPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateExitPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ConnectionPointReferenceEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateInitialEditPart.VISUAL_ID:
if(PseudostateInitialNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateInitialStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateJoinEditPart.VISUAL_ID:
if(PseudostateJoinNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateJoinStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateForkEditPart.VISUAL_ID:
if(PseudostateForkNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateForkStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateChoiceEditPart.VISUAL_ID:
if(PseudostateChoiceNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateChoiceStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateJunctionEditPart.VISUAL_ID:
if(PseudostateJunctionNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateJunctionStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateShallowHistoryEditPart.VISUAL_ID:
if(PseudostateShallowHistoryNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateShallowHistoryStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateDeepHistoryEditPart.VISUAL_ID:
if(PseudostateDeepHistoryNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateDeepHistoryStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateTerminateEditPart.VISUAL_ID:
if(PseudostateTerminateNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateTerminateStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateEntryPointEditPart.VISUAL_ID:
if(PseudostateEntryPointNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateEntryPointStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PseudostateExitPointEditPart.VISUAL_ID:
if(PseudostateExitPointNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateExitPointStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case ConnectionPointReferenceEditPart.VISUAL_ID:
if(ConnectionPointReferenceNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ConnectionPointReferenceStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case CommentEditPart.VISUAL_ID:
if(CommentBodyEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case ConstraintEditPart.VISUAL_ID:
if(ConstraintNameLabelEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ConstraintBodyEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case RegionCompartmentEditPart.VISUAL_ID:
if(PseudostateInitialEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateJoinEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateForkEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateChoiceEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateJunctionEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateShallowHistoryEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateDeepHistoryEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateTerminateEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(FinalStateEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(StateEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateEntryPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateExitPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(CommentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ConstraintEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case StateMachineCompartmentEditPart.VISUAL_ID:
if(RegionEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateEntryPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(PseudostateExitPointEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case StateCompartmentEditPart.VISUAL_ID:
if(RegionEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(ConnectionPointReferenceEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case TransitionEditPart.VISUAL_ID:
if(TransitionNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(TransitionGuardEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if(TransitionStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case GeneralizationEditPart.VISUAL_ID:
if(GeneralizationStereotypeEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
}
return false;
}
/**
* @generated
*/
public static ViewInfo getDiagramViewInfo() {
if(diagramViewInfo == null) {
diagramViewInfo = getPackage_1000ViewInfo();
}
return diagramViewInfo;
}
/**
* @generated
*/
public static int getDiagramVisualID(EObject domainElement) {
if(domainElement == null) {
return -1;
}
if(UMLPackage.eINSTANCE.getPackage().isSuperTypeOf(domainElement.eClass()) && isDiagram((Package)domainElement)) {
return PackageEditPart.VISUAL_ID;
}
return -1;
}
/**
* @generated
*/
public static int getLinkWithClassVisualID(EObject domainElement) {
if(domainElement == null) {
return -1;
}
if(UMLPackage.eINSTANCE.getTransition().isSuperTypeOf(domainElement.eClass())
) {
return TransitionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getGeneralization().isSuperTypeOf(domainElement.eClass())
) {
return GeneralizationEditPart.VISUAL_ID;
}
return -1;
}
/**
* @generated
*/
public static String getModelID(View view) {
View diagram = view.getDiagram();
while(view != diagram) {
EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
if(annotation != null) {
return (String)annotation.getDetails().get("modelID"); //$NON-NLS-1$
}
view = (View)view.eContainer();
}
return diagram != null ? diagram.getType() : null;
}
/**
* @generated
*/
public static int getNodeVisualID(View containerView, EObject domainElement) {
if(domainElement == null) {
return -1;
}
String containerModelID = org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry.getModelID(containerView);
if(!PackageEditPart.MODEL_ID.equals(containerModelID)) {
return -1;
}
int containerVisualID;
if(PackageEditPart.MODEL_ID.equals(containerModelID)) {
containerVisualID = org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry.getVisualID(containerView);
} else {
if(containerView instanceof Diagram) {
containerVisualID = PackageEditPart.VISUAL_ID;
} else {
return -1;
}
}
switch(containerVisualID) {
case PackageEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getStateMachine().isSuperTypeOf(domainElement.eClass())
) {
return StateMachineEditPart.VISUAL_ID;
}
break;
case StateMachineEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_16000(containerView, (Pseudostate)domainElement)) {
return PseudostateEntryPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_17000(containerView, (Pseudostate)domainElement)) {
return PseudostateExitPointEditPart.VISUAL_ID;
}
break;
case StateEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getBehavior().isSuperTypeOf(domainElement.eClass()) && isBehavior_690(containerView, (Behavior)domainElement)) {
return EntryStateBehaviorEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getBehavior().isSuperTypeOf(domainElement.eClass()) && isBehavior_691(containerView, (Behavior)domainElement)) {
return DoActivityStateBehaviorStateEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getBehavior().isSuperTypeOf(domainElement.eClass()) && isBehavior_692(containerView, (Behavior)domainElement)) {
return ExitStateBehaviorEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getTransition().isSuperTypeOf(domainElement.eClass())
) {
return InternalTransitionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getRegion().isSuperTypeOf(domainElement.eClass())
) {
return RegionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_16000(containerView, (Pseudostate)domainElement)) {
return PseudostateEntryPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_17000(containerView, (Pseudostate)domainElement)) {
return PseudostateExitPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getConnectionPointReference().isSuperTypeOf(domainElement.eClass())
) {
return ConnectionPointReferenceEditPart.VISUAL_ID;
}
break;
case RegionCompartmentEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_8000(containerView, (Pseudostate)domainElement)) {
return PseudostateInitialEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_9000(containerView, (Pseudostate)domainElement)) {
return PseudostateJoinEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_10000(containerView, (Pseudostate)domainElement)) {
return PseudostateForkEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_11000(containerView, (Pseudostate)domainElement)) {
return PseudostateChoiceEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_12000(containerView, (Pseudostate)domainElement)) {
return PseudostateJunctionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_13000(containerView, (Pseudostate)domainElement)) {
return PseudostateShallowHistoryEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_14000(containerView, (Pseudostate)domainElement)) {
return PseudostateDeepHistoryEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_15000(containerView, (Pseudostate)domainElement)) {
return PseudostateTerminateEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getFinalState().isSuperTypeOf(domainElement.eClass())
) {
return FinalStateEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getState().isSuperTypeOf(domainElement.eClass())
) {
return StateEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_16000(containerView, (Pseudostate)domainElement)) {
return PseudostateEntryPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_17000(containerView, (Pseudostate)domainElement)) {
return PseudostateExitPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getComment().isSuperTypeOf(domainElement.eClass())
) {
return CommentEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getConstraint().isSuperTypeOf(domainElement.eClass())
) {
return ConstraintEditPart.VISUAL_ID;
}
break;
case StateMachineCompartmentEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getRegion().isSuperTypeOf(domainElement.eClass())
) {
return RegionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_16000(containerView, (Pseudostate)domainElement)) {
return PseudostateEntryPointEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getPseudostate().isSuperTypeOf(domainElement.eClass()) && isPseudostate_17000(containerView, (Pseudostate)domainElement)) {
return PseudostateExitPointEditPart.VISUAL_ID;
}
break;
case StateCompartmentEditPart.VISUAL_ID:
if(UMLPackage.eINSTANCE.getRegion().isSuperTypeOf(domainElement.eClass())
) {
return RegionEditPart.VISUAL_ID;
}
if(UMLPackage.eINSTANCE.getConnectionPointReference().isSuperTypeOf(domainElement.eClass())
) {
return ConnectionPointReferenceEditPart.VISUAL_ID;
}
break;
}
return -1;
}
/**
* @generated
*/
protected static ViewInfo getPackage_1000ViewInfo() {
ViewInfo root = new BaseViewInfo(1000, ViewInfo.Head, "", null, null);
ViewInfo viewInfo = null;
ViewInfo labelInfo = null;
viewInfo = new BaseViewInfo(2000, ViewInfo.Node, "StateMachine");
root.addNode(1000, viewInfo);
viewInfo = new BaseViewInfo(7000, ViewInfo.Edge, "");
root.addNode(1000, viewInfo);
labelInfo = new BaseViewInfo(7001, ViewInfo.Label, "", null, viewInfo);
viewInfo.getChildren().add(labelInfo);
labelInfo = new BaseViewInfo(7002, ViewInfo.Label, "", null, viewInfo);
viewInfo.getChildren().add(labelInfo);
labelInfo = new BaseViewInfo(7003, ViewInfo.Label, "", null, viewInfo);
viewInfo.getChildren().add(labelInfo);
viewInfo = new BaseViewInfo(19000, ViewInfo.Edge, "");
root.addNode(1000, viewInfo);
labelInfo = new BaseViewInfo(19002, ViewInfo.Label, "", null, viewInfo);
viewInfo.getChildren().add(labelInfo);
viewInfo = new BaseViewInfo(667, ViewInfo.Edge, "");
root.addNode(1000, viewInfo);
viewInfo = new BaseViewInfo(670, ViewInfo.Edge, "");
root.addNode(1000, viewInfo);
viewInfo = new BaseViewInfo(3000, ViewInfo.Node, "Region");
root.addNode(2002, viewInfo);
root.addNode(6002, viewInfo);
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(5000, ViewInfo.Node, "FinalState");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(6000, ViewInfo.Node, "State");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(8000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(9000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(10000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(11000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(12000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(13000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(14000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(15000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(16000, ViewInfo.Node, "Pseudostate");
root.addNode(2000, viewInfo);
root.addNode(3002, viewInfo);
root.addNode(2002, viewInfo);
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(17000, ViewInfo.Node, "Pseudostate");
root.addNode(3002, viewInfo);
root.addNode(2002, viewInfo);
root.addNode(2000, viewInfo);
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(18000, ViewInfo.Node, "ConnectionPointReference");
root.addNode(6000, viewInfo);
root.addNode(6002, viewInfo);
viewInfo = new BaseViewInfo(666, ViewInfo.Node, "Comment");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(668, ViewInfo.Node, "Constraint");
root.addNode(3002, viewInfo);
viewInfo = new BaseViewInfo(680, ViewInfo.Node, "Transition");
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(690, ViewInfo.Node, "Behavior");
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(691, ViewInfo.Node, "Behavior");
root.addNode(6000, viewInfo);
viewInfo = new BaseViewInfo(692, ViewInfo.Node, "Behavior");
root.addNode(6000, viewInfo);
return root;
}
/**
* @generated
*/
public static String getType(int visualID) {
return Integer.toString(visualID);
}
/**
* @generated
*/
public static int getVisualID(String type) {
try {
return Integer.parseInt(type);
} catch (NumberFormatException e) {
if(Boolean.TRUE.toString().equalsIgnoreCase(Platform.getDebugOption(DEBUG_KEY))) {
UMLDiagramEditorPlugin.getInstance().logError("Unable to parse view type as a visualID number: " + type);
}
}
return -1;
}
/**
* @generated
*/
public static int getVisualID(View view) {
if(view instanceof Diagram) {
if(PackageEditPart.MODEL_ID.equals(view.getType())) {
return PackageEditPart.VISUAL_ID;
} else {
return -1;
}
}
return org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry.getVisualID(view.getType());
}
/**
* User can change implementation of this method to handle some specific
* situations not covered by default logic.
*
* @generated
*/
private static boolean isDiagram(Package element) {
return true;
}
/**
* @generated
*/
private static boolean isPseudostate_10000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a fork
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.FORK_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_11000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a choice
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.CHOICE_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_12000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a junction
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.JUNCTION_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_13000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a shallowHistory
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.SHALLOW_HISTORY_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_14000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a deepHistory
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.DEEP_HISTORY_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_15000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a terminate
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.TERMINATE_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_16000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is an entryPoint
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.ENTRY_POINT_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_17000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is an exitPoint
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.EXIT_POINT_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isBehavior_690(Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(2, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
/**
* @generated
*/
private static boolean isBehavior_691(Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(3, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
/**
* @generated
*/
private static boolean isBehavior_692(Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(1, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
/**
* @generated
*/
private static boolean isPseudostate_8000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is an initial
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.INITIAL_LITERAL))
return true;
}
return false;
}
/**
* @generated
*/
private static boolean isPseudostate_9000(View containerView, Pseudostate domainElement) {
// Test if the pseudostate is a join
if(domainElement instanceof Pseudostate) {
PseudostateKind kind = ((Pseudostate)domainElement).getKind();
if(kind.equals(PseudostateKind.JOIN_LITERAL))
return true;
}
return false;
}
/**
*
* @generated not cf http://www.eclipse.org/forums/index.php/m/759914/#msg_759914
*/
private static boolean isBehavior_690(View containerView, Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(2, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
/**
* @generated not cf http://www.eclipse.org/forums/index.php/m/759914/#msg_759914
*/
private static boolean isBehavior_691(View containerView, Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(3, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
/**
* @generated not cf http://www.eclipse.org/forums/index.php/m/759914/#msg_759914
*/
private static boolean isBehavior_692(View containerView, Behavior domainElement) {
Object result = UMLOCLFactory.getExpression(1, UMLPackage.eINSTANCE.getBehavior(), null).evaluate(domainElement);
return result instanceof Boolean && ((Boolean)result).booleanValue();
}
}