All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.omg.bpmn.bpmn2.util.Bpmn2Switch Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2012 - 2024 Data In Motion and others.
 * All rights reserved. 
 * 
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 * 
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *      Mark Hoffmann - initial API and implementation
 */
package org.omg.bpmn.bpmn2.util;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.Switch;

import org.omg.bpmn.bpmn2.Activity;
import org.omg.bpmn.bpmn2.AdHocSubProcess;
import org.omg.bpmn.bpmn2.Artifact;
import org.omg.bpmn.bpmn2.Assignment;
import org.omg.bpmn.bpmn2.Association;
import org.omg.bpmn.bpmn2.Auditing;
import org.omg.bpmn.bpmn2.BPMNRoot;
import org.omg.bpmn.bpmn2.BaseElement;
import org.omg.bpmn.bpmn2.BoundaryEvent;
import org.omg.bpmn.bpmn2.Bpmn2Package;
import org.omg.bpmn.bpmn2.BusinessRuleTask;
import org.omg.bpmn.bpmn2.CallActivity;
import org.omg.bpmn.bpmn2.CallChoreography;
import org.omg.bpmn.bpmn2.CallConversation;
import org.omg.bpmn.bpmn2.CallableElement;
import org.omg.bpmn.bpmn2.CancelEventDefinition;
import org.omg.bpmn.bpmn2.CatchEvent;
import org.omg.bpmn.bpmn2.Category;
import org.omg.bpmn.bpmn2.CategoryValue;
import org.omg.bpmn.bpmn2.Choreography;
import org.omg.bpmn.bpmn2.ChoreographyActivity;
import org.omg.bpmn.bpmn2.ChoreographyTask;
import org.omg.bpmn.bpmn2.Collaboration;
import org.omg.bpmn.bpmn2.CompensateEventDefinition;
import org.omg.bpmn.bpmn2.ComplexBehaviorDefinition;
import org.omg.bpmn.bpmn2.ComplexGateway;
import org.omg.bpmn.bpmn2.ConditionalEventDefinition;
import org.omg.bpmn.bpmn2.Conversation;
import org.omg.bpmn.bpmn2.ConversationAssociation;
import org.omg.bpmn.bpmn2.ConversationLink;
import org.omg.bpmn.bpmn2.ConversationNode;
import org.omg.bpmn.bpmn2.CorrelationKey;
import org.omg.bpmn.bpmn2.CorrelationProperty;
import org.omg.bpmn.bpmn2.CorrelationPropertyBinding;
import org.omg.bpmn.bpmn2.CorrelationPropertyRetrievalExpression;
import org.omg.bpmn.bpmn2.CorrelationSubscription;
import org.omg.bpmn.bpmn2.DataAssociation;
import org.omg.bpmn.bpmn2.DataInput;
import org.omg.bpmn.bpmn2.DataInputAssociation;
import org.omg.bpmn.bpmn2.DataObject;
import org.omg.bpmn.bpmn2.DataObjectReference;
import org.omg.bpmn.bpmn2.DataOutput;
import org.omg.bpmn.bpmn2.DataOutputAssociation;
import org.omg.bpmn.bpmn2.DataState;
import org.omg.bpmn.bpmn2.DataStore;
import org.omg.bpmn.bpmn2.DataStoreReference;
import org.omg.bpmn.bpmn2.Definitions;
import org.omg.bpmn.bpmn2.Documentation;
import org.omg.bpmn.bpmn2.EndEvent;
import org.omg.bpmn.bpmn2.EndPoint;
import org.omg.bpmn.bpmn2.ErrorEventDefinition;
import org.omg.bpmn.bpmn2.Escalation;
import org.omg.bpmn.bpmn2.EscalationEventDefinition;
import org.omg.bpmn.bpmn2.Event;
import org.omg.bpmn.bpmn2.EventBasedGateway;
import org.omg.bpmn.bpmn2.EventDefinition;
import org.omg.bpmn.bpmn2.ExclusiveGateway;
import org.omg.bpmn.bpmn2.Expression;
import org.omg.bpmn.bpmn2.Extension;
import org.omg.bpmn.bpmn2.ExtensionAttributeDefinition;
import org.omg.bpmn.bpmn2.ExtensionAttributeValue;
import org.omg.bpmn.bpmn2.ExtensionDefinition;
import org.omg.bpmn.bpmn2.FlowElement;
import org.omg.bpmn.bpmn2.FlowElementsContainer;
import org.omg.bpmn.bpmn2.FlowNode;
import org.omg.bpmn.bpmn2.FormalExpression;
import org.omg.bpmn.bpmn2.Gateway;
import org.omg.bpmn.bpmn2.GlobalBusinessRuleTask;
import org.omg.bpmn.bpmn2.GlobalChoreographyTask;
import org.omg.bpmn.bpmn2.GlobalConversation;
import org.omg.bpmn.bpmn2.GlobalManualTask;
import org.omg.bpmn.bpmn2.GlobalScriptTask;
import org.omg.bpmn.bpmn2.GlobalTask;
import org.omg.bpmn.bpmn2.GlobalUserTask;
import org.omg.bpmn.bpmn2.Group;
import org.omg.bpmn.bpmn2.HumanPerformer;
import org.omg.bpmn.bpmn2.ImplicitThrowEvent;
import org.omg.bpmn.bpmn2.Import;
import org.omg.bpmn.bpmn2.InclusiveGateway;
import org.omg.bpmn.bpmn2.InputOutputBinding;
import org.omg.bpmn.bpmn2.InputOutputSpecification;
import org.omg.bpmn.bpmn2.InputSet;
import org.omg.bpmn.bpmn2.InteractionNode;
import org.omg.bpmn.bpmn2.Interface;
import org.omg.bpmn.bpmn2.IntermediateCatchEvent;
import org.omg.bpmn.bpmn2.IntermediateThrowEvent;
import org.omg.bpmn.bpmn2.ItemAwareElement;
import org.omg.bpmn.bpmn2.ItemDefinition;
import org.omg.bpmn.bpmn2.Lane;
import org.omg.bpmn.bpmn2.LaneSet;
import org.omg.bpmn.bpmn2.LinkEventDefinition;
import org.omg.bpmn.bpmn2.LoopCharacteristics;
import org.omg.bpmn.bpmn2.ManualTask;
import org.omg.bpmn.bpmn2.Message;
import org.omg.bpmn.bpmn2.MessageEventDefinition;
import org.omg.bpmn.bpmn2.MessageFlow;
import org.omg.bpmn.bpmn2.MessageFlowAssociation;
import org.omg.bpmn.bpmn2.Monitoring;
import org.omg.bpmn.bpmn2.MultiInstanceLoopCharacteristics;
import org.omg.bpmn.bpmn2.Operation;
import org.omg.bpmn.bpmn2.OutputSet;
import org.omg.bpmn.bpmn2.ParallelGateway;
import org.omg.bpmn.bpmn2.Participant;
import org.omg.bpmn.bpmn2.ParticipantAssociation;
import org.omg.bpmn.bpmn2.ParticipantMultiplicity;
import org.omg.bpmn.bpmn2.PartnerEntity;
import org.omg.bpmn.bpmn2.PartnerRole;
import org.omg.bpmn.bpmn2.Performer;
import org.omg.bpmn.bpmn2.PotentialOwner;
import org.omg.bpmn.bpmn2.Property;
import org.omg.bpmn.bpmn2.ReceiveTask;
import org.omg.bpmn.bpmn2.Relationship;
import org.omg.bpmn.bpmn2.Rendering;
import org.omg.bpmn.bpmn2.Resource;
import org.omg.bpmn.bpmn2.ResourceAssignmentExpression;
import org.omg.bpmn.bpmn2.ResourceParameter;
import org.omg.bpmn.bpmn2.ResourceParameterBinding;
import org.omg.bpmn.bpmn2.ResourceRole;
import org.omg.bpmn.bpmn2.RootElement;
import org.omg.bpmn.bpmn2.ScriptTask;
import org.omg.bpmn.bpmn2.SendTask;
import org.omg.bpmn.bpmn2.SequenceFlow;
import org.omg.bpmn.bpmn2.ServiceTask;
import org.omg.bpmn.bpmn2.Signal;
import org.omg.bpmn.bpmn2.SignalEventDefinition;
import org.omg.bpmn.bpmn2.StandardLoopCharacteristics;
import org.omg.bpmn.bpmn2.StartEvent;
import org.omg.bpmn.bpmn2.SubChoreography;
import org.omg.bpmn.bpmn2.SubConversation;
import org.omg.bpmn.bpmn2.SubProcess;
import org.omg.bpmn.bpmn2.Task;
import org.omg.bpmn.bpmn2.TerminateEventDefinition;
import org.omg.bpmn.bpmn2.TextAnnotation;
import org.omg.bpmn.bpmn2.ThrowEvent;
import org.omg.bpmn.bpmn2.TimerEventDefinition;
import org.omg.bpmn.bpmn2.Transaction;
import org.omg.bpmn.bpmn2.UserTask;

/**
 * 
 * The Switch for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the caseXXX method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * 
 * @see org.omg.bpmn.bpmn2.Bpmn2Package
 * @generated
 */
public class Bpmn2Switch extends Switch {
	/**
	 * The cached model package
	 * 
	 * 
	 * @generated
	 */
	protected static Bpmn2Package modelPackage;

	/**
	 * Creates an instance of the switch.
	 * 
	 * 
	 * @generated
	 */
	public Bpmn2Switch() {
		if (modelPackage == null) {
			modelPackage = Bpmn2Package.eINSTANCE;
		}
	}

	/**
	 * Checks whether this is a switch for the given package.
	 * 
	 * 
	 * @param ePackage the package in question.
	 * @return whether this is a switch for the given package.
	 * @generated
	 */
	@Override
	protected boolean isSwitchFor(EPackage ePackage) {
		return ePackage == modelPackage;
	}

	/**
	 * Calls caseXXX for each class of the model until one returns a non null result; it yields that result.
	 * 
	 * 
	 * @return the first non-null result returned by a caseXXX call.
	 * @generated
	 */
	@Override
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case Bpmn2Package.BPMN_ROOT: {
				BPMNRoot bpmnRoot = (BPMNRoot)theEObject;
				T result = caseBPMNRoot(bpmnRoot);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ACTIVITY: {
				Activity activity = (Activity)theEObject;
				T result = caseActivity(activity);
				if (result == null) result = caseFlowNode(activity);
				if (result == null) result = caseFlowElement(activity);
				if (result == null) result = caseBaseElement(activity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.AD_HOC_SUB_PROCESS: {
				AdHocSubProcess adHocSubProcess = (AdHocSubProcess)theEObject;
				T result = caseAdHocSubProcess(adHocSubProcess);
				if (result == null) result = caseSubProcess(adHocSubProcess);
				if (result == null) result = caseActivity(adHocSubProcess);
				if (result == null) result = caseFlowElementsContainer(adHocSubProcess);
				if (result == null) result = caseInteractionNode(adHocSubProcess);
				if (result == null) result = caseFlowNode(adHocSubProcess);
				if (result == null) result = caseFlowElement(adHocSubProcess);
				if (result == null) result = caseBaseElement(adHocSubProcess);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ARTIFACT: {
				Artifact artifact = (Artifact)theEObject;
				T result = caseArtifact(artifact);
				if (result == null) result = caseBaseElement(artifact);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ASSIGNMENT: {
				Assignment assignment = (Assignment)theEObject;
				T result = caseAssignment(assignment);
				if (result == null) result = caseBaseElement(assignment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ASSOCIATION: {
				Association association = (Association)theEObject;
				T result = caseAssociation(association);
				if (result == null) result = caseArtifact(association);
				if (result == null) result = caseBaseElement(association);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.AUDITING: {
				Auditing auditing = (Auditing)theEObject;
				T result = caseAuditing(auditing);
				if (result == null) result = caseBaseElement(auditing);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.BASE_ELEMENT: {
				BaseElement baseElement = (BaseElement)theEObject;
				T result = caseBaseElement(baseElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.BOUNDARY_EVENT: {
				BoundaryEvent boundaryEvent = (BoundaryEvent)theEObject;
				T result = caseBoundaryEvent(boundaryEvent);
				if (result == null) result = caseCatchEvent(boundaryEvent);
				if (result == null) result = caseEvent(boundaryEvent);
				if (result == null) result = caseFlowNode(boundaryEvent);
				if (result == null) result = caseInteractionNode(boundaryEvent);
				if (result == null) result = caseFlowElement(boundaryEvent);
				if (result == null) result = caseBaseElement(boundaryEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.BUSINESS_RULE_TASK: {
				BusinessRuleTask businessRuleTask = (BusinessRuleTask)theEObject;
				T result = caseBusinessRuleTask(businessRuleTask);
				if (result == null) result = caseTask(businessRuleTask);
				if (result == null) result = caseActivity(businessRuleTask);
				if (result == null) result = caseInteractionNode(businessRuleTask);
				if (result == null) result = caseFlowNode(businessRuleTask);
				if (result == null) result = caseFlowElement(businessRuleTask);
				if (result == null) result = caseBaseElement(businessRuleTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CALL_ACTIVITY: {
				CallActivity callActivity = (CallActivity)theEObject;
				T result = caseCallActivity(callActivity);
				if (result == null) result = caseActivity(callActivity);
				if (result == null) result = caseInteractionNode(callActivity);
				if (result == null) result = caseFlowNode(callActivity);
				if (result == null) result = caseFlowElement(callActivity);
				if (result == null) result = caseBaseElement(callActivity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CALL_CHOREOGRAPHY: {
				CallChoreography callChoreography = (CallChoreography)theEObject;
				T result = caseCallChoreography(callChoreography);
				if (result == null) result = caseChoreographyActivity(callChoreography);
				if (result == null) result = caseFlowNode(callChoreography);
				if (result == null) result = caseFlowElement(callChoreography);
				if (result == null) result = caseBaseElement(callChoreography);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CALL_CONVERSATION: {
				CallConversation callConversation = (CallConversation)theEObject;
				T result = caseCallConversation(callConversation);
				if (result == null) result = caseConversationNode(callConversation);
				if (result == null) result = caseBaseElement(callConversation);
				if (result == null) result = caseInteractionNode(callConversation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CALLABLE_ELEMENT: {
				CallableElement callableElement = (CallableElement)theEObject;
				T result = caseCallableElement(callableElement);
				if (result == null) result = caseRootElement(callableElement);
				if (result == null) result = caseBaseElement(callableElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CANCEL_EVENT_DEFINITION: {
				CancelEventDefinition cancelEventDefinition = (CancelEventDefinition)theEObject;
				T result = caseCancelEventDefinition(cancelEventDefinition);
				if (result == null) result = caseEventDefinition(cancelEventDefinition);
				if (result == null) result = caseRootElement(cancelEventDefinition);
				if (result == null) result = caseBaseElement(cancelEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CATCH_EVENT: {
				CatchEvent catchEvent = (CatchEvent)theEObject;
				T result = caseCatchEvent(catchEvent);
				if (result == null) result = caseEvent(catchEvent);
				if (result == null) result = caseFlowNode(catchEvent);
				if (result == null) result = caseInteractionNode(catchEvent);
				if (result == null) result = caseFlowElement(catchEvent);
				if (result == null) result = caseBaseElement(catchEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CATEGORY: {
				Category category = (Category)theEObject;
				T result = caseCategory(category);
				if (result == null) result = caseRootElement(category);
				if (result == null) result = caseBaseElement(category);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CATEGORY_VALUE: {
				CategoryValue categoryValue = (CategoryValue)theEObject;
				T result = caseCategoryValue(categoryValue);
				if (result == null) result = caseBaseElement(categoryValue);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CHOREOGRAPHY: {
				Choreography choreography = (Choreography)theEObject;
				T result = caseChoreography(choreography);
				if (result == null) result = caseCollaboration(choreography);
				if (result == null) result = caseFlowElementsContainer(choreography);
				if (result == null) result = caseRootElement(choreography);
				if (result == null) result = caseBaseElement(choreography);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CHOREOGRAPHY_ACTIVITY: {
				ChoreographyActivity choreographyActivity = (ChoreographyActivity)theEObject;
				T result = caseChoreographyActivity(choreographyActivity);
				if (result == null) result = caseFlowNode(choreographyActivity);
				if (result == null) result = caseFlowElement(choreographyActivity);
				if (result == null) result = caseBaseElement(choreographyActivity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CHOREOGRAPHY_TASK: {
				ChoreographyTask choreographyTask = (ChoreographyTask)theEObject;
				T result = caseChoreographyTask(choreographyTask);
				if (result == null) result = caseChoreographyActivity(choreographyTask);
				if (result == null) result = caseFlowNode(choreographyTask);
				if (result == null) result = caseFlowElement(choreographyTask);
				if (result == null) result = caseBaseElement(choreographyTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.COLLABORATION: {
				Collaboration collaboration = (Collaboration)theEObject;
				T result = caseCollaboration(collaboration);
				if (result == null) result = caseRootElement(collaboration);
				if (result == null) result = caseBaseElement(collaboration);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.COMPENSATE_EVENT_DEFINITION: {
				CompensateEventDefinition compensateEventDefinition = (CompensateEventDefinition)theEObject;
				T result = caseCompensateEventDefinition(compensateEventDefinition);
				if (result == null) result = caseEventDefinition(compensateEventDefinition);
				if (result == null) result = caseRootElement(compensateEventDefinition);
				if (result == null) result = caseBaseElement(compensateEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.COMPLEX_BEHAVIOR_DEFINITION: {
				ComplexBehaviorDefinition complexBehaviorDefinition = (ComplexBehaviorDefinition)theEObject;
				T result = caseComplexBehaviorDefinition(complexBehaviorDefinition);
				if (result == null) result = caseBaseElement(complexBehaviorDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.COMPLEX_GATEWAY: {
				ComplexGateway complexGateway = (ComplexGateway)theEObject;
				T result = caseComplexGateway(complexGateway);
				if (result == null) result = caseGateway(complexGateway);
				if (result == null) result = caseFlowNode(complexGateway);
				if (result == null) result = caseFlowElement(complexGateway);
				if (result == null) result = caseBaseElement(complexGateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CONDITIONAL_EVENT_DEFINITION: {
				ConditionalEventDefinition conditionalEventDefinition = (ConditionalEventDefinition)theEObject;
				T result = caseConditionalEventDefinition(conditionalEventDefinition);
				if (result == null) result = caseEventDefinition(conditionalEventDefinition);
				if (result == null) result = caseRootElement(conditionalEventDefinition);
				if (result == null) result = caseBaseElement(conditionalEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CONVERSATION: {
				Conversation conversation = (Conversation)theEObject;
				T result = caseConversation(conversation);
				if (result == null) result = caseConversationNode(conversation);
				if (result == null) result = caseBaseElement(conversation);
				if (result == null) result = caseInteractionNode(conversation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CONVERSATION_ASSOCIATION: {
				ConversationAssociation conversationAssociation = (ConversationAssociation)theEObject;
				T result = caseConversationAssociation(conversationAssociation);
				if (result == null) result = caseBaseElement(conversationAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CONVERSATION_LINK: {
				ConversationLink conversationLink = (ConversationLink)theEObject;
				T result = caseConversationLink(conversationLink);
				if (result == null) result = caseBaseElement(conversationLink);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CONVERSATION_NODE: {
				ConversationNode conversationNode = (ConversationNode)theEObject;
				T result = caseConversationNode(conversationNode);
				if (result == null) result = caseBaseElement(conversationNode);
				if (result == null) result = caseInteractionNode(conversationNode);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CORRELATION_KEY: {
				CorrelationKey correlationKey = (CorrelationKey)theEObject;
				T result = caseCorrelationKey(correlationKey);
				if (result == null) result = caseBaseElement(correlationKey);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CORRELATION_PROPERTY: {
				CorrelationProperty correlationProperty = (CorrelationProperty)theEObject;
				T result = caseCorrelationProperty(correlationProperty);
				if (result == null) result = caseRootElement(correlationProperty);
				if (result == null) result = caseBaseElement(correlationProperty);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CORRELATION_PROPERTY_BINDING: {
				CorrelationPropertyBinding correlationPropertyBinding = (CorrelationPropertyBinding)theEObject;
				T result = caseCorrelationPropertyBinding(correlationPropertyBinding);
				if (result == null) result = caseBaseElement(correlationPropertyBinding);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CORRELATION_PROPERTY_RETRIEVAL_EXPRESSION: {
				CorrelationPropertyRetrievalExpression correlationPropertyRetrievalExpression = (CorrelationPropertyRetrievalExpression)theEObject;
				T result = caseCorrelationPropertyRetrievalExpression(correlationPropertyRetrievalExpression);
				if (result == null) result = caseBaseElement(correlationPropertyRetrievalExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.CORRELATION_SUBSCRIPTION: {
				CorrelationSubscription correlationSubscription = (CorrelationSubscription)theEObject;
				T result = caseCorrelationSubscription(correlationSubscription);
				if (result == null) result = caseBaseElement(correlationSubscription);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_ASSOCIATION: {
				DataAssociation dataAssociation = (DataAssociation)theEObject;
				T result = caseDataAssociation(dataAssociation);
				if (result == null) result = caseBaseElement(dataAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_INPUT: {
				DataInput dataInput = (DataInput)theEObject;
				T result = caseDataInput(dataInput);
				if (result == null) result = caseItemAwareElement(dataInput);
				if (result == null) result = caseBaseElement(dataInput);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_INPUT_ASSOCIATION: {
				DataInputAssociation dataInputAssociation = (DataInputAssociation)theEObject;
				T result = caseDataInputAssociation(dataInputAssociation);
				if (result == null) result = caseDataAssociation(dataInputAssociation);
				if (result == null) result = caseBaseElement(dataInputAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_OBJECT: {
				DataObject dataObject = (DataObject)theEObject;
				T result = caseDataObject(dataObject);
				if (result == null) result = caseFlowElement(dataObject);
				if (result == null) result = caseItemAwareElement(dataObject);
				if (result == null) result = caseBaseElement(dataObject);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_OBJECT_REFERENCE: {
				DataObjectReference dataObjectReference = (DataObjectReference)theEObject;
				T result = caseDataObjectReference(dataObjectReference);
				if (result == null) result = caseFlowElement(dataObjectReference);
				if (result == null) result = caseItemAwareElement(dataObjectReference);
				if (result == null) result = caseBaseElement(dataObjectReference);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_OUTPUT: {
				DataOutput dataOutput = (DataOutput)theEObject;
				T result = caseDataOutput(dataOutput);
				if (result == null) result = caseItemAwareElement(dataOutput);
				if (result == null) result = caseBaseElement(dataOutput);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_OUTPUT_ASSOCIATION: {
				DataOutputAssociation dataOutputAssociation = (DataOutputAssociation)theEObject;
				T result = caseDataOutputAssociation(dataOutputAssociation);
				if (result == null) result = caseDataAssociation(dataOutputAssociation);
				if (result == null) result = caseBaseElement(dataOutputAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_STATE: {
				DataState dataState = (DataState)theEObject;
				T result = caseDataState(dataState);
				if (result == null) result = caseBaseElement(dataState);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_STORE: {
				DataStore dataStore = (DataStore)theEObject;
				T result = caseDataStore(dataStore);
				if (result == null) result = caseItemAwareElement(dataStore);
				if (result == null) result = caseRootElement(dataStore);
				if (result == null) result = caseBaseElement(dataStore);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DATA_STORE_REFERENCE: {
				DataStoreReference dataStoreReference = (DataStoreReference)theEObject;
				T result = caseDataStoreReference(dataStoreReference);
				if (result == null) result = caseFlowElement(dataStoreReference);
				if (result == null) result = caseItemAwareElement(dataStoreReference);
				if (result == null) result = caseBaseElement(dataStoreReference);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DEFINITIONS: {
				Definitions definitions = (Definitions)theEObject;
				T result = caseDefinitions(definitions);
				if (result == null) result = caseBaseElement(definitions);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.DOCUMENTATION: {
				Documentation documentation = (Documentation)theEObject;
				T result = caseDocumentation(documentation);
				if (result == null) result = caseBaseElement(documentation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.END_EVENT: {
				EndEvent endEvent = (EndEvent)theEObject;
				T result = caseEndEvent(endEvent);
				if (result == null) result = caseThrowEvent(endEvent);
				if (result == null) result = caseEvent(endEvent);
				if (result == null) result = caseFlowNode(endEvent);
				if (result == null) result = caseInteractionNode(endEvent);
				if (result == null) result = caseFlowElement(endEvent);
				if (result == null) result = caseBaseElement(endEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.END_POINT: {
				EndPoint endPoint = (EndPoint)theEObject;
				T result = caseEndPoint(endPoint);
				if (result == null) result = caseRootElement(endPoint);
				if (result == null) result = caseBaseElement(endPoint);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ERROR: {
				org.omg.bpmn.bpmn2.Error error = (org.omg.bpmn.bpmn2.Error)theEObject;
				T result = caseError(error);
				if (result == null) result = caseRootElement(error);
				if (result == null) result = caseBaseElement(error);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ERROR_EVENT_DEFINITION: {
				ErrorEventDefinition errorEventDefinition = (ErrorEventDefinition)theEObject;
				T result = caseErrorEventDefinition(errorEventDefinition);
				if (result == null) result = caseEventDefinition(errorEventDefinition);
				if (result == null) result = caseRootElement(errorEventDefinition);
				if (result == null) result = caseBaseElement(errorEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ESCALATION: {
				Escalation escalation = (Escalation)theEObject;
				T result = caseEscalation(escalation);
				if (result == null) result = caseRootElement(escalation);
				if (result == null) result = caseBaseElement(escalation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ESCALATION_EVENT_DEFINITION: {
				EscalationEventDefinition escalationEventDefinition = (EscalationEventDefinition)theEObject;
				T result = caseEscalationEventDefinition(escalationEventDefinition);
				if (result == null) result = caseEventDefinition(escalationEventDefinition);
				if (result == null) result = caseRootElement(escalationEventDefinition);
				if (result == null) result = caseBaseElement(escalationEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EVENT: {
				Event event = (Event)theEObject;
				T result = caseEvent(event);
				if (result == null) result = caseFlowNode(event);
				if (result == null) result = caseInteractionNode(event);
				if (result == null) result = caseFlowElement(event);
				if (result == null) result = caseBaseElement(event);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EVENT_BASED_GATEWAY: {
				EventBasedGateway eventBasedGateway = (EventBasedGateway)theEObject;
				T result = caseEventBasedGateway(eventBasedGateway);
				if (result == null) result = caseGateway(eventBasedGateway);
				if (result == null) result = caseFlowNode(eventBasedGateway);
				if (result == null) result = caseFlowElement(eventBasedGateway);
				if (result == null) result = caseBaseElement(eventBasedGateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EVENT_DEFINITION: {
				EventDefinition eventDefinition = (EventDefinition)theEObject;
				T result = caseEventDefinition(eventDefinition);
				if (result == null) result = caseRootElement(eventDefinition);
				if (result == null) result = caseBaseElement(eventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXCLUSIVE_GATEWAY: {
				ExclusiveGateway exclusiveGateway = (ExclusiveGateway)theEObject;
				T result = caseExclusiveGateway(exclusiveGateway);
				if (result == null) result = caseGateway(exclusiveGateway);
				if (result == null) result = caseFlowNode(exclusiveGateway);
				if (result == null) result = caseFlowElement(exclusiveGateway);
				if (result == null) result = caseBaseElement(exclusiveGateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXPRESSION: {
				Expression expression = (Expression)theEObject;
				T result = caseExpression(expression);
				if (result == null) result = caseBaseElement(expression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXTENSION: {
				Extension extension = (Extension)theEObject;
				T result = caseExtension(extension);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXTENSION_ATTRIBUTE_DEFINITION: {
				ExtensionAttributeDefinition extensionAttributeDefinition = (ExtensionAttributeDefinition)theEObject;
				T result = caseExtensionAttributeDefinition(extensionAttributeDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXTENSION_ATTRIBUTE_VALUE: {
				ExtensionAttributeValue extensionAttributeValue = (ExtensionAttributeValue)theEObject;
				T result = caseExtensionAttributeValue(extensionAttributeValue);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.EXTENSION_DEFINITION: {
				ExtensionDefinition extensionDefinition = (ExtensionDefinition)theEObject;
				T result = caseExtensionDefinition(extensionDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.FLOW_ELEMENT: {
				FlowElement flowElement = (FlowElement)theEObject;
				T result = caseFlowElement(flowElement);
				if (result == null) result = caseBaseElement(flowElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.FLOW_ELEMENTS_CONTAINER: {
				FlowElementsContainer flowElementsContainer = (FlowElementsContainer)theEObject;
				T result = caseFlowElementsContainer(flowElementsContainer);
				if (result == null) result = caseBaseElement(flowElementsContainer);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.FLOW_NODE: {
				FlowNode flowNode = (FlowNode)theEObject;
				T result = caseFlowNode(flowNode);
				if (result == null) result = caseFlowElement(flowNode);
				if (result == null) result = caseBaseElement(flowNode);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.FORMAL_EXPRESSION: {
				FormalExpression formalExpression = (FormalExpression)theEObject;
				T result = caseFormalExpression(formalExpression);
				if (result == null) result = caseExpression(formalExpression);
				if (result == null) result = caseBaseElement(formalExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GATEWAY: {
				Gateway gateway = (Gateway)theEObject;
				T result = caseGateway(gateway);
				if (result == null) result = caseFlowNode(gateway);
				if (result == null) result = caseFlowElement(gateway);
				if (result == null) result = caseBaseElement(gateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_BUSINESS_RULE_TASK: {
				GlobalBusinessRuleTask globalBusinessRuleTask = (GlobalBusinessRuleTask)theEObject;
				T result = caseGlobalBusinessRuleTask(globalBusinessRuleTask);
				if (result == null) result = caseGlobalTask(globalBusinessRuleTask);
				if (result == null) result = caseCallableElement(globalBusinessRuleTask);
				if (result == null) result = caseRootElement(globalBusinessRuleTask);
				if (result == null) result = caseBaseElement(globalBusinessRuleTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_CHOREOGRAPHY_TASK: {
				GlobalChoreographyTask globalChoreographyTask = (GlobalChoreographyTask)theEObject;
				T result = caseGlobalChoreographyTask(globalChoreographyTask);
				if (result == null) result = caseChoreography(globalChoreographyTask);
				if (result == null) result = caseCollaboration(globalChoreographyTask);
				if (result == null) result = caseFlowElementsContainer(globalChoreographyTask);
				if (result == null) result = caseRootElement(globalChoreographyTask);
				if (result == null) result = caseBaseElement(globalChoreographyTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_CONVERSATION: {
				GlobalConversation globalConversation = (GlobalConversation)theEObject;
				T result = caseGlobalConversation(globalConversation);
				if (result == null) result = caseCollaboration(globalConversation);
				if (result == null) result = caseRootElement(globalConversation);
				if (result == null) result = caseBaseElement(globalConversation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_MANUAL_TASK: {
				GlobalManualTask globalManualTask = (GlobalManualTask)theEObject;
				T result = caseGlobalManualTask(globalManualTask);
				if (result == null) result = caseGlobalTask(globalManualTask);
				if (result == null) result = caseCallableElement(globalManualTask);
				if (result == null) result = caseRootElement(globalManualTask);
				if (result == null) result = caseBaseElement(globalManualTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_SCRIPT_TASK: {
				GlobalScriptTask globalScriptTask = (GlobalScriptTask)theEObject;
				T result = caseGlobalScriptTask(globalScriptTask);
				if (result == null) result = caseGlobalTask(globalScriptTask);
				if (result == null) result = caseCallableElement(globalScriptTask);
				if (result == null) result = caseRootElement(globalScriptTask);
				if (result == null) result = caseBaseElement(globalScriptTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_TASK: {
				GlobalTask globalTask = (GlobalTask)theEObject;
				T result = caseGlobalTask(globalTask);
				if (result == null) result = caseCallableElement(globalTask);
				if (result == null) result = caseRootElement(globalTask);
				if (result == null) result = caseBaseElement(globalTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GLOBAL_USER_TASK: {
				GlobalUserTask globalUserTask = (GlobalUserTask)theEObject;
				T result = caseGlobalUserTask(globalUserTask);
				if (result == null) result = caseGlobalTask(globalUserTask);
				if (result == null) result = caseCallableElement(globalUserTask);
				if (result == null) result = caseRootElement(globalUserTask);
				if (result == null) result = caseBaseElement(globalUserTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.GROUP: {
				Group group = (Group)theEObject;
				T result = caseGroup(group);
				if (result == null) result = caseArtifact(group);
				if (result == null) result = caseBaseElement(group);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.HUMAN_PERFORMER: {
				HumanPerformer humanPerformer = (HumanPerformer)theEObject;
				T result = caseHumanPerformer(humanPerformer);
				if (result == null) result = casePerformer(humanPerformer);
				if (result == null) result = caseResourceRole(humanPerformer);
				if (result == null) result = caseBaseElement(humanPerformer);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.IMPLICIT_THROW_EVENT: {
				ImplicitThrowEvent implicitThrowEvent = (ImplicitThrowEvent)theEObject;
				T result = caseImplicitThrowEvent(implicitThrowEvent);
				if (result == null) result = caseThrowEvent(implicitThrowEvent);
				if (result == null) result = caseEvent(implicitThrowEvent);
				if (result == null) result = caseFlowNode(implicitThrowEvent);
				if (result == null) result = caseInteractionNode(implicitThrowEvent);
				if (result == null) result = caseFlowElement(implicitThrowEvent);
				if (result == null) result = caseBaseElement(implicitThrowEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.IMPORT: {
				Import import_ = (Import)theEObject;
				T result = caseImport(import_);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INCLUSIVE_GATEWAY: {
				InclusiveGateway inclusiveGateway = (InclusiveGateway)theEObject;
				T result = caseInclusiveGateway(inclusiveGateway);
				if (result == null) result = caseGateway(inclusiveGateway);
				if (result == null) result = caseFlowNode(inclusiveGateway);
				if (result == null) result = caseFlowElement(inclusiveGateway);
				if (result == null) result = caseBaseElement(inclusiveGateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INPUT_OUTPUT_BINDING: {
				InputOutputBinding inputOutputBinding = (InputOutputBinding)theEObject;
				T result = caseInputOutputBinding(inputOutputBinding);
				if (result == null) result = caseBaseElement(inputOutputBinding);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INPUT_OUTPUT_SPECIFICATION: {
				InputOutputSpecification inputOutputSpecification = (InputOutputSpecification)theEObject;
				T result = caseInputOutputSpecification(inputOutputSpecification);
				if (result == null) result = caseBaseElement(inputOutputSpecification);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INPUT_SET: {
				InputSet inputSet = (InputSet)theEObject;
				T result = caseInputSet(inputSet);
				if (result == null) result = caseBaseElement(inputSet);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INTERACTION_NODE: {
				InteractionNode interactionNode = (InteractionNode)theEObject;
				T result = caseInteractionNode(interactionNode);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INTERFACE: {
				Interface interface_ = (Interface)theEObject;
				T result = caseInterface(interface_);
				if (result == null) result = caseRootElement(interface_);
				if (result == null) result = caseBaseElement(interface_);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INTERMEDIATE_CATCH_EVENT: {
				IntermediateCatchEvent intermediateCatchEvent = (IntermediateCatchEvent)theEObject;
				T result = caseIntermediateCatchEvent(intermediateCatchEvent);
				if (result == null) result = caseCatchEvent(intermediateCatchEvent);
				if (result == null) result = caseEvent(intermediateCatchEvent);
				if (result == null) result = caseFlowNode(intermediateCatchEvent);
				if (result == null) result = caseInteractionNode(intermediateCatchEvent);
				if (result == null) result = caseFlowElement(intermediateCatchEvent);
				if (result == null) result = caseBaseElement(intermediateCatchEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.INTERMEDIATE_THROW_EVENT: {
				IntermediateThrowEvent intermediateThrowEvent = (IntermediateThrowEvent)theEObject;
				T result = caseIntermediateThrowEvent(intermediateThrowEvent);
				if (result == null) result = caseThrowEvent(intermediateThrowEvent);
				if (result == null) result = caseEvent(intermediateThrowEvent);
				if (result == null) result = caseFlowNode(intermediateThrowEvent);
				if (result == null) result = caseInteractionNode(intermediateThrowEvent);
				if (result == null) result = caseFlowElement(intermediateThrowEvent);
				if (result == null) result = caseBaseElement(intermediateThrowEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ITEM_AWARE_ELEMENT: {
				ItemAwareElement itemAwareElement = (ItemAwareElement)theEObject;
				T result = caseItemAwareElement(itemAwareElement);
				if (result == null) result = caseBaseElement(itemAwareElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ITEM_DEFINITION: {
				ItemDefinition itemDefinition = (ItemDefinition)theEObject;
				T result = caseItemDefinition(itemDefinition);
				if (result == null) result = caseRootElement(itemDefinition);
				if (result == null) result = caseBaseElement(itemDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.LANE: {
				Lane lane = (Lane)theEObject;
				T result = caseLane(lane);
				if (result == null) result = caseBaseElement(lane);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.LANE_SET: {
				LaneSet laneSet = (LaneSet)theEObject;
				T result = caseLaneSet(laneSet);
				if (result == null) result = caseBaseElement(laneSet);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.LINK_EVENT_DEFINITION: {
				LinkEventDefinition linkEventDefinition = (LinkEventDefinition)theEObject;
				T result = caseLinkEventDefinition(linkEventDefinition);
				if (result == null) result = caseEventDefinition(linkEventDefinition);
				if (result == null) result = caseRootElement(linkEventDefinition);
				if (result == null) result = caseBaseElement(linkEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.LOOP_CHARACTERISTICS: {
				LoopCharacteristics loopCharacteristics = (LoopCharacteristics)theEObject;
				T result = caseLoopCharacteristics(loopCharacteristics);
				if (result == null) result = caseBaseElement(loopCharacteristics);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MANUAL_TASK: {
				ManualTask manualTask = (ManualTask)theEObject;
				T result = caseManualTask(manualTask);
				if (result == null) result = caseTask(manualTask);
				if (result == null) result = caseActivity(manualTask);
				if (result == null) result = caseInteractionNode(manualTask);
				if (result == null) result = caseFlowNode(manualTask);
				if (result == null) result = caseFlowElement(manualTask);
				if (result == null) result = caseBaseElement(manualTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MESSAGE: {
				Message message = (Message)theEObject;
				T result = caseMessage(message);
				if (result == null) result = caseRootElement(message);
				if (result == null) result = caseBaseElement(message);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MESSAGE_EVENT_DEFINITION: {
				MessageEventDefinition messageEventDefinition = (MessageEventDefinition)theEObject;
				T result = caseMessageEventDefinition(messageEventDefinition);
				if (result == null) result = caseEventDefinition(messageEventDefinition);
				if (result == null) result = caseRootElement(messageEventDefinition);
				if (result == null) result = caseBaseElement(messageEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MESSAGE_FLOW: {
				MessageFlow messageFlow = (MessageFlow)theEObject;
				T result = caseMessageFlow(messageFlow);
				if (result == null) result = caseBaseElement(messageFlow);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MESSAGE_FLOW_ASSOCIATION: {
				MessageFlowAssociation messageFlowAssociation = (MessageFlowAssociation)theEObject;
				T result = caseMessageFlowAssociation(messageFlowAssociation);
				if (result == null) result = caseBaseElement(messageFlowAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MONITORING: {
				Monitoring monitoring = (Monitoring)theEObject;
				T result = caseMonitoring(monitoring);
				if (result == null) result = caseBaseElement(monitoring);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.MULTI_INSTANCE_LOOP_CHARACTERISTICS: {
				MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = (MultiInstanceLoopCharacteristics)theEObject;
				T result = caseMultiInstanceLoopCharacteristics(multiInstanceLoopCharacteristics);
				if (result == null) result = caseLoopCharacteristics(multiInstanceLoopCharacteristics);
				if (result == null) result = caseBaseElement(multiInstanceLoopCharacteristics);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.OPERATION: {
				Operation operation = (Operation)theEObject;
				T result = caseOperation(operation);
				if (result == null) result = caseBaseElement(operation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.OUTPUT_SET: {
				OutputSet outputSet = (OutputSet)theEObject;
				T result = caseOutputSet(outputSet);
				if (result == null) result = caseBaseElement(outputSet);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARALLEL_GATEWAY: {
				ParallelGateway parallelGateway = (ParallelGateway)theEObject;
				T result = caseParallelGateway(parallelGateway);
				if (result == null) result = caseGateway(parallelGateway);
				if (result == null) result = caseFlowNode(parallelGateway);
				if (result == null) result = caseFlowElement(parallelGateway);
				if (result == null) result = caseBaseElement(parallelGateway);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARTICIPANT: {
				Participant participant = (Participant)theEObject;
				T result = caseParticipant(participant);
				if (result == null) result = caseBaseElement(participant);
				if (result == null) result = caseInteractionNode(participant);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARTICIPANT_ASSOCIATION: {
				ParticipantAssociation participantAssociation = (ParticipantAssociation)theEObject;
				T result = caseParticipantAssociation(participantAssociation);
				if (result == null) result = caseBaseElement(participantAssociation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARTICIPANT_MULTIPLICITY: {
				ParticipantMultiplicity participantMultiplicity = (ParticipantMultiplicity)theEObject;
				T result = caseParticipantMultiplicity(participantMultiplicity);
				if (result == null) result = caseBaseElement(participantMultiplicity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARTNER_ENTITY: {
				PartnerEntity partnerEntity = (PartnerEntity)theEObject;
				T result = casePartnerEntity(partnerEntity);
				if (result == null) result = caseRootElement(partnerEntity);
				if (result == null) result = caseBaseElement(partnerEntity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PARTNER_ROLE: {
				PartnerRole partnerRole = (PartnerRole)theEObject;
				T result = casePartnerRole(partnerRole);
				if (result == null) result = caseRootElement(partnerRole);
				if (result == null) result = caseBaseElement(partnerRole);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PERFORMER: {
				Performer performer = (Performer)theEObject;
				T result = casePerformer(performer);
				if (result == null) result = caseResourceRole(performer);
				if (result == null) result = caseBaseElement(performer);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.POTENTIAL_OWNER: {
				PotentialOwner potentialOwner = (PotentialOwner)theEObject;
				T result = casePotentialOwner(potentialOwner);
				if (result == null) result = caseHumanPerformer(potentialOwner);
				if (result == null) result = casePerformer(potentialOwner);
				if (result == null) result = caseResourceRole(potentialOwner);
				if (result == null) result = caseBaseElement(potentialOwner);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PROCESS: {
				org.omg.bpmn.bpmn2.Process process = (org.omg.bpmn.bpmn2.Process)theEObject;
				T result = caseProcess(process);
				if (result == null) result = caseCallableElement(process);
				if (result == null) result = caseFlowElementsContainer(process);
				if (result == null) result = caseRootElement(process);
				if (result == null) result = caseBaseElement(process);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.PROPERTY: {
				Property property = (Property)theEObject;
				T result = caseProperty(property);
				if (result == null) result = caseItemAwareElement(property);
				if (result == null) result = caseBaseElement(property);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RECEIVE_TASK: {
				ReceiveTask receiveTask = (ReceiveTask)theEObject;
				T result = caseReceiveTask(receiveTask);
				if (result == null) result = caseTask(receiveTask);
				if (result == null) result = caseActivity(receiveTask);
				if (result == null) result = caseInteractionNode(receiveTask);
				if (result == null) result = caseFlowNode(receiveTask);
				if (result == null) result = caseFlowElement(receiveTask);
				if (result == null) result = caseBaseElement(receiveTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RELATIONSHIP: {
				Relationship relationship = (Relationship)theEObject;
				T result = caseRelationship(relationship);
				if (result == null) result = caseBaseElement(relationship);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RENDERING: {
				Rendering rendering = (Rendering)theEObject;
				T result = caseRendering(rendering);
				if (result == null) result = caseBaseElement(rendering);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RESOURCE: {
				Resource resource = (Resource)theEObject;
				T result = caseResource(resource);
				if (result == null) result = caseRootElement(resource);
				if (result == null) result = caseBaseElement(resource);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RESOURCE_ASSIGNMENT_EXPRESSION: {
				ResourceAssignmentExpression resourceAssignmentExpression = (ResourceAssignmentExpression)theEObject;
				T result = caseResourceAssignmentExpression(resourceAssignmentExpression);
				if (result == null) result = caseBaseElement(resourceAssignmentExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RESOURCE_PARAMETER: {
				ResourceParameter resourceParameter = (ResourceParameter)theEObject;
				T result = caseResourceParameter(resourceParameter);
				if (result == null) result = caseBaseElement(resourceParameter);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RESOURCE_PARAMETER_BINDING: {
				ResourceParameterBinding resourceParameterBinding = (ResourceParameterBinding)theEObject;
				T result = caseResourceParameterBinding(resourceParameterBinding);
				if (result == null) result = caseBaseElement(resourceParameterBinding);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.RESOURCE_ROLE: {
				ResourceRole resourceRole = (ResourceRole)theEObject;
				T result = caseResourceRole(resourceRole);
				if (result == null) result = caseBaseElement(resourceRole);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.ROOT_ELEMENT: {
				RootElement rootElement = (RootElement)theEObject;
				T result = caseRootElement(rootElement);
				if (result == null) result = caseBaseElement(rootElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SCRIPT_TASK: {
				ScriptTask scriptTask = (ScriptTask)theEObject;
				T result = caseScriptTask(scriptTask);
				if (result == null) result = caseTask(scriptTask);
				if (result == null) result = caseActivity(scriptTask);
				if (result == null) result = caseInteractionNode(scriptTask);
				if (result == null) result = caseFlowNode(scriptTask);
				if (result == null) result = caseFlowElement(scriptTask);
				if (result == null) result = caseBaseElement(scriptTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SEND_TASK: {
				SendTask sendTask = (SendTask)theEObject;
				T result = caseSendTask(sendTask);
				if (result == null) result = caseTask(sendTask);
				if (result == null) result = caseActivity(sendTask);
				if (result == null) result = caseInteractionNode(sendTask);
				if (result == null) result = caseFlowNode(sendTask);
				if (result == null) result = caseFlowElement(sendTask);
				if (result == null) result = caseBaseElement(sendTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SEQUENCE_FLOW: {
				SequenceFlow sequenceFlow = (SequenceFlow)theEObject;
				T result = caseSequenceFlow(sequenceFlow);
				if (result == null) result = caseFlowElement(sequenceFlow);
				if (result == null) result = caseBaseElement(sequenceFlow);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SERVICE_TASK: {
				ServiceTask serviceTask = (ServiceTask)theEObject;
				T result = caseServiceTask(serviceTask);
				if (result == null) result = caseTask(serviceTask);
				if (result == null) result = caseActivity(serviceTask);
				if (result == null) result = caseInteractionNode(serviceTask);
				if (result == null) result = caseFlowNode(serviceTask);
				if (result == null) result = caseFlowElement(serviceTask);
				if (result == null) result = caseBaseElement(serviceTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SIGNAL: {
				Signal signal = (Signal)theEObject;
				T result = caseSignal(signal);
				if (result == null) result = caseRootElement(signal);
				if (result == null) result = caseBaseElement(signal);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SIGNAL_EVENT_DEFINITION: {
				SignalEventDefinition signalEventDefinition = (SignalEventDefinition)theEObject;
				T result = caseSignalEventDefinition(signalEventDefinition);
				if (result == null) result = caseEventDefinition(signalEventDefinition);
				if (result == null) result = caseRootElement(signalEventDefinition);
				if (result == null) result = caseBaseElement(signalEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.STANDARD_LOOP_CHARACTERISTICS: {
				StandardLoopCharacteristics standardLoopCharacteristics = (StandardLoopCharacteristics)theEObject;
				T result = caseStandardLoopCharacteristics(standardLoopCharacteristics);
				if (result == null) result = caseLoopCharacteristics(standardLoopCharacteristics);
				if (result == null) result = caseBaseElement(standardLoopCharacteristics);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.START_EVENT: {
				StartEvent startEvent = (StartEvent)theEObject;
				T result = caseStartEvent(startEvent);
				if (result == null) result = caseCatchEvent(startEvent);
				if (result == null) result = caseEvent(startEvent);
				if (result == null) result = caseFlowNode(startEvent);
				if (result == null) result = caseInteractionNode(startEvent);
				if (result == null) result = caseFlowElement(startEvent);
				if (result == null) result = caseBaseElement(startEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SUB_CHOREOGRAPHY: {
				SubChoreography subChoreography = (SubChoreography)theEObject;
				T result = caseSubChoreography(subChoreography);
				if (result == null) result = caseChoreographyActivity(subChoreography);
				if (result == null) result = caseFlowElementsContainer(subChoreography);
				if (result == null) result = caseFlowNode(subChoreography);
				if (result == null) result = caseFlowElement(subChoreography);
				if (result == null) result = caseBaseElement(subChoreography);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SUB_CONVERSATION: {
				SubConversation subConversation = (SubConversation)theEObject;
				T result = caseSubConversation(subConversation);
				if (result == null) result = caseConversationNode(subConversation);
				if (result == null) result = caseBaseElement(subConversation);
				if (result == null) result = caseInteractionNode(subConversation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.SUB_PROCESS: {
				SubProcess subProcess = (SubProcess)theEObject;
				T result = caseSubProcess(subProcess);
				if (result == null) result = caseActivity(subProcess);
				if (result == null) result = caseFlowElementsContainer(subProcess);
				if (result == null) result = caseInteractionNode(subProcess);
				if (result == null) result = caseFlowNode(subProcess);
				if (result == null) result = caseFlowElement(subProcess);
				if (result == null) result = caseBaseElement(subProcess);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.TASK: {
				Task task = (Task)theEObject;
				T result = caseTask(task);
				if (result == null) result = caseActivity(task);
				if (result == null) result = caseInteractionNode(task);
				if (result == null) result = caseFlowNode(task);
				if (result == null) result = caseFlowElement(task);
				if (result == null) result = caseBaseElement(task);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.TERMINATE_EVENT_DEFINITION: {
				TerminateEventDefinition terminateEventDefinition = (TerminateEventDefinition)theEObject;
				T result = caseTerminateEventDefinition(terminateEventDefinition);
				if (result == null) result = caseEventDefinition(terminateEventDefinition);
				if (result == null) result = caseRootElement(terminateEventDefinition);
				if (result == null) result = caseBaseElement(terminateEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.TEXT_ANNOTATION: {
				TextAnnotation textAnnotation = (TextAnnotation)theEObject;
				T result = caseTextAnnotation(textAnnotation);
				if (result == null) result = caseArtifact(textAnnotation);
				if (result == null) result = caseBaseElement(textAnnotation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.THROW_EVENT: {
				ThrowEvent throwEvent = (ThrowEvent)theEObject;
				T result = caseThrowEvent(throwEvent);
				if (result == null) result = caseEvent(throwEvent);
				if (result == null) result = caseFlowNode(throwEvent);
				if (result == null) result = caseInteractionNode(throwEvent);
				if (result == null) result = caseFlowElement(throwEvent);
				if (result == null) result = caseBaseElement(throwEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.TIMER_EVENT_DEFINITION: {
				TimerEventDefinition timerEventDefinition = (TimerEventDefinition)theEObject;
				T result = caseTimerEventDefinition(timerEventDefinition);
				if (result == null) result = caseEventDefinition(timerEventDefinition);
				if (result == null) result = caseRootElement(timerEventDefinition);
				if (result == null) result = caseBaseElement(timerEventDefinition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.TRANSACTION: {
				Transaction transaction = (Transaction)theEObject;
				T result = caseTransaction(transaction);
				if (result == null) result = caseSubProcess(transaction);
				if (result == null) result = caseActivity(transaction);
				if (result == null) result = caseFlowElementsContainer(transaction);
				if (result == null) result = caseInteractionNode(transaction);
				if (result == null) result = caseFlowNode(transaction);
				if (result == null) result = caseFlowElement(transaction);
				if (result == null) result = caseBaseElement(transaction);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case Bpmn2Package.USER_TASK: {
				UserTask userTask = (UserTask)theEObject;
				T result = caseUserTask(userTask);
				if (result == null) result = caseTask(userTask);
				if (result == null) result = caseActivity(userTask);
				if (result == null) result = caseInteractionNode(userTask);
				if (result == null) result = caseFlowNode(userTask);
				if (result == null) result = caseFlowElement(userTask);
				if (result == null) result = caseBaseElement(userTask);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'BPMN Root'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'BPMN Root'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBPMNRoot(BPMNRoot object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Activity'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Activity'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseActivity(Activity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Ad Hoc Sub Process'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Ad Hoc Sub Process'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAdHocSubProcess(AdHocSubProcess object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Artifact'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Artifact'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseArtifact(Artifact object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Assignment'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Assignment'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAssignment(Assignment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAssociation(Association object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Auditing'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Auditing'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAuditing(Auditing object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Base Element'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Base Element'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBaseElement(BaseElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Boundary Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Boundary Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBoundaryEvent(BoundaryEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Business Rule Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Business Rule Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBusinessRuleTask(BusinessRuleTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Call Activity'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Call Activity'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCallActivity(CallActivity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Call Choreography'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Call Choreography'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCallChoreography(CallChoreography object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Call Conversation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Call Conversation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCallConversation(CallConversation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Callable Element'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Callable Element'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCallableElement(CallableElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Cancel Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Cancel Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCancelEventDefinition(CancelEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Catch Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Catch Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCatchEvent(CatchEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Category'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Category'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCategory(Category object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Category Value'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Category Value'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCategoryValue(CategoryValue object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Choreography'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Choreography'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseChoreography(Choreography object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Choreography Activity'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Choreography Activity'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseChoreographyActivity(ChoreographyActivity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Choreography Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Choreography Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseChoreographyTask(ChoreographyTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Collaboration'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Collaboration'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCollaboration(Collaboration object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Compensate Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Compensate Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCompensateEventDefinition(CompensateEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Complex Behavior Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Complex Behavior Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseComplexBehaviorDefinition(ComplexBehaviorDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Complex Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Complex Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseComplexGateway(ComplexGateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Conditional Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Conditional Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConditionalEventDefinition(ConditionalEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Conversation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Conversation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConversation(Conversation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Conversation Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Conversation Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConversationAssociation(ConversationAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Conversation Link'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Conversation Link'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConversationLink(ConversationLink object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Conversation Node'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Conversation Node'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConversationNode(ConversationNode object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Correlation Key'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Correlation Key'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCorrelationKey(CorrelationKey object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Correlation Property'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Correlation Property'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCorrelationProperty(CorrelationProperty object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Correlation Property Binding'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Correlation Property Binding'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCorrelationPropertyBinding(CorrelationPropertyBinding object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Correlation Property Retrieval Expression'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Correlation Property Retrieval Expression'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCorrelationPropertyRetrievalExpression(CorrelationPropertyRetrievalExpression object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Correlation Subscription'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Correlation Subscription'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCorrelationSubscription(CorrelationSubscription object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataAssociation(DataAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Input'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Input'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataInput(DataInput object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Input Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Input Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataInputAssociation(DataInputAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Object'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Object'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataObject(DataObject object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Object Reference'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Object Reference'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataObjectReference(DataObjectReference object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Output'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Output'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataOutput(DataOutput object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Output Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Output Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataOutputAssociation(DataOutputAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data State'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data State'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataState(DataState object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Store'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Store'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataStore(DataStore object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Data Store Reference'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Data Store Reference'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataStoreReference(DataStoreReference object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Definitions'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Definitions'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDefinitions(Definitions object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Documentation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Documentation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDocumentation(Documentation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'End Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'End Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEndEvent(EndEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'End Point'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'End Point'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEndPoint(EndPoint object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Error'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Error'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseError(org.omg.bpmn.bpmn2.Error object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Error Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Error Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseErrorEventDefinition(ErrorEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Escalation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Escalation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEscalation(Escalation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Escalation Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Escalation Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEscalationEventDefinition(EscalationEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEvent(Event object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Event Based Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Event Based Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEventBasedGateway(EventBasedGateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEventDefinition(EventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Exclusive Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Exclusive Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExclusiveGateway(ExclusiveGateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Expression'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Expression'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExpression(Expression object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Extension'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Extension'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExtension(Extension object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Extension Attribute Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Extension Attribute Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExtensionAttributeDefinition(ExtensionAttributeDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Extension Attribute Value'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Extension Attribute Value'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExtensionAttributeValue(ExtensionAttributeValue object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Extension Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Extension Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExtensionDefinition(ExtensionDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Flow Element'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Flow Element'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFlowElement(FlowElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Flow Elements Container'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Flow Elements Container'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFlowElementsContainer(FlowElementsContainer object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Flow Node'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Flow Node'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFlowNode(FlowNode object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Formal Expression'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Formal Expression'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFormalExpression(FormalExpression object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGateway(Gateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Business Rule Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Business Rule Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalBusinessRuleTask(GlobalBusinessRuleTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Choreography Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Choreography Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalChoreographyTask(GlobalChoreographyTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Conversation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Conversation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalConversation(GlobalConversation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Manual Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Manual Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalManualTask(GlobalManualTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Script Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Script Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalScriptTask(GlobalScriptTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalTask(GlobalTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Global User Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Global User Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGlobalUserTask(GlobalUserTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Group'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Group'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGroup(Group object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Human Performer'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Human Performer'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseHumanPerformer(HumanPerformer object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Implicit Throw Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Implicit Throw Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseImplicitThrowEvent(ImplicitThrowEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Import'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Import'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseImport(Import object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Inclusive Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Inclusive Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInclusiveGateway(InclusiveGateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Input Output Binding'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Input Output Binding'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInputOutputBinding(InputOutputBinding object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Input Output Specification'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Input Output Specification'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInputOutputSpecification(InputOutputSpecification object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Input Set'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Input Set'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInputSet(InputSet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Interaction Node'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Interaction Node'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInteractionNode(InteractionNode object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Interface'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Interface'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInterface(Interface object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Intermediate Catch Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Intermediate Catch Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseIntermediateCatchEvent(IntermediateCatchEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Intermediate Throw Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Intermediate Throw Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseIntermediateThrowEvent(IntermediateThrowEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Item Aware Element'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Item Aware Element'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseItemAwareElement(ItemAwareElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Item Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Item Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseItemDefinition(ItemDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Lane'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Lane'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLane(Lane object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Lane Set'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Lane Set'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLaneSet(LaneSet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Link Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Link Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinkEventDefinition(LinkEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Loop Characteristics'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Loop Characteristics'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLoopCharacteristics(LoopCharacteristics object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Manual Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Manual Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseManualTask(ManualTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Message'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Message'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMessage(Message object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Message Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Message Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMessageEventDefinition(MessageEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Message Flow'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Message Flow'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMessageFlow(MessageFlow object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Message Flow Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Message Flow Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMessageFlowAssociation(MessageFlowAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Monitoring'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Monitoring'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMonitoring(Monitoring object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Multi Instance Loop Characteristics'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Multi Instance Loop Characteristics'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMultiInstanceLoopCharacteristics(MultiInstanceLoopCharacteristics object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Operation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Operation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOperation(Operation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Output Set'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Output Set'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOutputSet(OutputSet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Parallel Gateway'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Parallel Gateway'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseParallelGateway(ParallelGateway object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Participant'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Participant'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseParticipant(Participant object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Participant Association'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Participant Association'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseParticipantAssociation(ParticipantAssociation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Participant Multiplicity'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Participant Multiplicity'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseParticipantMultiplicity(ParticipantMultiplicity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Partner Entity'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Partner Entity'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePartnerEntity(PartnerEntity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Partner Role'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Partner Role'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePartnerRole(PartnerRole object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Performer'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Performer'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePerformer(Performer object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Potential Owner'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Potential Owner'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePotentialOwner(PotentialOwner object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Process'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Process'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseProcess(org.omg.bpmn.bpmn2.Process object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Property'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Property'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseProperty(Property object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Receive Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Receive Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseReceiveTask(ReceiveTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Relationship'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Relationship'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRelationship(Relationship object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Rendering'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Rendering'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRendering(Rendering object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Resource'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Resource'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseResource(Resource object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Resource Assignment Expression'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Resource Assignment Expression'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseResourceAssignmentExpression(ResourceAssignmentExpression object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Resource Parameter'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Resource Parameter'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseResourceParameter(ResourceParameter object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Resource Parameter Binding'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Resource Parameter Binding'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseResourceParameterBinding(ResourceParameterBinding object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Resource Role'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Resource Role'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseResourceRole(ResourceRole object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Root Element'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Root Element'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRootElement(RootElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Script Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Script Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseScriptTask(ScriptTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Send Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Send Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSendTask(SendTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Sequence Flow'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Sequence Flow'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSequenceFlow(SequenceFlow object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Service Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Service Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseServiceTask(ServiceTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Signal'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Signal'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSignal(Signal object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Signal Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Signal Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSignalEventDefinition(SignalEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Standard Loop Characteristics'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Standard Loop Characteristics'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseStandardLoopCharacteristics(StandardLoopCharacteristics object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Start Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Start Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseStartEvent(StartEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Sub Choreography'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Sub Choreography'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSubChoreography(SubChoreography object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Sub Conversation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Sub Conversation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSubConversation(SubConversation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Sub Process'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Sub Process'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSubProcess(SubProcess object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTask(Task object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Terminate Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Terminate Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTerminateEventDefinition(TerminateEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Text Annotation'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Text Annotation'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTextAnnotation(TextAnnotation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Throw Event'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Throw Event'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseThrowEvent(ThrowEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Timer Event Definition'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Timer Event Definition'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTimerEventDefinition(TimerEventDefinition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'Transaction'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'Transaction'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTransaction(Transaction object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'User Task'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'User Task'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUserTask(UserTask object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of 'EObject'.
	 * 
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * 
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of 'EObject'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	@Override
	public T defaultCase(EObject object) {
		return null;
	}

} //Bpmn2Switch




© 2015 - 2024 Weber Informatics LLC | Privacy Policy