/*
* Copyright (C) Yutaka Matsuno 2010-2012 All rights reserved.
*/
// AUTO_GENERATED:START
package net.dependableos.dcase.diagram.part;
import net.dependableos.dcase.Argument;
import net.dependableos.dcase.DcasePackage;
import net.dependableos.dcase.diagram.edit.parts.*;
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;
/**
* 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 DcaseVisualIDRegistry {
/**
* @generated
*/
private static final String DEBUG_KEY = "net.dependableos.dcase.diagram/debug/visualID"; //$NON-NLS-1$
/**
* @generated
*/
public static int getVisualID(View view) {
if (view instanceof Diagram) {
if (ArgumentEditPart.MODEL_ID.equals(view.getType())) {
return ArgumentEditPart.VISUAL_ID;
} else {
return -1;
}
}
return net.dependableos.dcase.diagram.part.DcaseVisualIDRegistry
.getVisualID(view.getType());
}
/**
* @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 getVisualID(String type) {
try {
return Integer.parseInt(type);
} catch (NumberFormatException e) {
if (Boolean.TRUE.toString().equalsIgnoreCase(
Platform.getDebugOption(DEBUG_KEY))) {
DcaseDiagramEditorPlugin.getInstance().logError(
"Unable to parse view type as a visualID number: "
+ type);
}
}
return -1;
}
/**
* @generated
*/
public static String getType(int visualID) {
return String.valueOf(visualID);
}
/**
* @generated
*/
public static int getDiagramVisualID(EObject domainElement) {
if (domainElement == null) {
return -1;
}
if (DcasePackage.eINSTANCE.getArgument().isSuperTypeOf(
domainElement.eClass())
&& isDiagram((Argument) domainElement)) {
return ArgumentEditPart.VISUAL_ID;
}
return -1;
}
/**
* @generated
*/
public static int getNodeVisualID(View containerView, EObject domainElement) {
if (domainElement == null) {
return -1;
}
String containerModelID = net.dependableos.dcase.diagram.part.DcaseVisualIDRegistry
.getModelID(containerView);
if (!ArgumentEditPart.MODEL_ID.equals(containerModelID)) {
return -1;
}
int containerVisualID;
if (ArgumentEditPart.MODEL_ID.equals(containerModelID)) {
containerVisualID = net.dependableos.dcase.diagram.part.DcaseVisualIDRegistry
.getVisualID(containerView);
} else {
if (containerView instanceof Diagram) {
containerVisualID = ArgumentEditPart.VISUAL_ID;
} else {
return -1;
}
}
switch (containerVisualID) {
case ArgumentEditPart.VISUAL_ID:
if (DcasePackage.eINSTANCE.getGoal().isSuperTypeOf(
domainElement.eClass())) {
return GoalEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getStrategy().isSuperTypeOf(
domainElement.eClass())) {
return StrategyEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getEvidence().isSuperTypeOf(
domainElement.eClass())) {
return EvidenceEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getMonitor().isSuperTypeOf(
domainElement.eClass())) {
return MonitorEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUndeveloped().isSuperTypeOf(
domainElement.eClass())) {
return UndevelopedEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getContext().isSuperTypeOf(
domainElement.eClass())) {
return ContextEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getJustification().isSuperTypeOf(
domainElement.eClass())) {
return JustificationEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getSystem().isSuperTypeOf(
domainElement.eClass())) {
return SystemEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getPolicy().isSuperTypeOf(
domainElement.eClass())) {
return PolicyEditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef001().isSuperTypeOf(
domainElement.eClass())) {
return Userdef001EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef002().isSuperTypeOf(
domainElement.eClass())) {
return Userdef002EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef003().isSuperTypeOf(
domainElement.eClass())) {
return Userdef003EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef004().isSuperTypeOf(
domainElement.eClass())) {
return Userdef004EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef005().isSuperTypeOf(
domainElement.eClass())) {
return Userdef005EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getUserdef006().isSuperTypeOf(
domainElement.eClass())) {
return Userdef006EditPart.VISUAL_ID;
}
break;
}
return -1;
}
/**
* @generated
*/
public static boolean canCreateNode(View containerView, int nodeVisualID) {
String containerModelID = net.dependableos.dcase.diagram.part.DcaseVisualIDRegistry
.getModelID(containerView);
if (!ArgumentEditPart.MODEL_ID.equals(containerModelID)) {
return false;
}
int containerVisualID;
if (ArgumentEditPart.MODEL_ID.equals(containerModelID)) {
containerVisualID = net.dependableos.dcase.diagram.part.DcaseVisualIDRegistry
.getVisualID(containerView);
} else {
if (containerView instanceof Diagram) {
containerVisualID = ArgumentEditPart.VISUAL_ID;
} else {
return false;
}
}
switch (containerVisualID) {
case GoalEditPart.VISUAL_ID:
if (GoalNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (GoalUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (GoalDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (GoalUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (GoalAttachmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (GoalResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case StrategyEditPart.VISUAL_ID:
if (StrategyNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (StrategyUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (StrategyDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (StrategyUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (StrategyResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case EvidenceEditPart.VISUAL_ID:
if (EvidenceNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (EvidenceUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (EvidenceDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (EvidenceUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (EvidenceResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case MonitorEditPart.VISUAL_ID:
if (MonitorNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (MonitorUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (MonitorDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (MonitorUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (MonitorResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case UndevelopedEditPart.VISUAL_ID:
if (UndevelopedNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (UndevelopedUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (UndevelopedDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (UndevelopedUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (UndevelopedResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case ContextEditPart.VISUAL_ID:
if (ContextNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (ContextUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (ContextDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (ContextUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (ContextResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case JustificationEditPart.VISUAL_ID:
if (JustificationNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (JustificationUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (JustificationDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (JustificationUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (JustificationResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case SystemEditPart.VISUAL_ID:
if (SystemNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (SystemUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (SystemDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (SystemUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (SystemResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case PolicyEditPart.VISUAL_ID:
if (PolicyNameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (PolicyUserdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (PolicyDescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (PolicyUserdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (PolicyResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef001EditPart.VISUAL_ID:
if (Userdef001NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001AttachmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef002EditPart.VISUAL_ID:
if (Userdef002NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef002Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef002DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef002Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef002ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef003EditPart.VISUAL_ID:
if (Userdef003NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef003Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef003DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef003Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef003ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef004EditPart.VISUAL_ID:
if (Userdef004NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef004Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef004DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef004Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef004ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef005EditPart.VISUAL_ID:
if (Userdef005NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005AttachmentEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case Userdef006EditPart.VISUAL_ID:
if (Userdef006NameEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef006Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef006DescEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef006Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef006ResponsibilityEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case ArgumentEditPart.VISUAL_ID:
if (GoalEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (StrategyEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (EvidenceEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (MonitorEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (UndevelopedEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (ContextEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (JustificationEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (SystemEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (PolicyEditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef001EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef002EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef003EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef004EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef005EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
if (Userdef006EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case DcaseLink001EditPart.VISUAL_ID:
if (DcaseLink001Userdef001DescUserdef00EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case DcaseLink002EditPart.VISUAL_ID:
if (DcaseLink002Userdef001DescUserdef00EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case DcaseLink003EditPart.VISUAL_ID:
if (DcaseLink003Userdef001DescUserdef00EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
case DcaseLink004EditPart.VISUAL_ID:
if (DcaseLink004Userdef001DescUserdef00EditPart.VISUAL_ID == nodeVisualID) {
return true;
}
break;
}
return false;
}
/**
* @generated
*/
public static int getLinkWithClassVisualID(EObject domainElement) {
if (domainElement == null) {
return -1;
}
if (DcasePackage.eINSTANCE.getDcaseLink001().isSuperTypeOf(
domainElement.eClass())) {
return DcaseLink001EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getDcaseLink002().isSuperTypeOf(
domainElement.eClass())) {
return DcaseLink002EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getDcaseLink003().isSuperTypeOf(
domainElement.eClass())) {
return DcaseLink003EditPart.VISUAL_ID;
}
if (DcasePackage.eINSTANCE.getDcaseLink004().isSuperTypeOf(
domainElement.eClass())) {
return DcaseLink004EditPart.VISUAL_ID;
}
return -1;
}
/**
* User can change implementation of this method to handle some specific
* situations not covered by default logic.
*
* @generated
*/
private static boolean isDiagram(Argument element) {
return true;
}
}