/*
* (c) Copyright 2010-2011 AgileBirds
*
* This file is part of OpenFlexo.
*
* OpenFlexo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenFlexo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>.
*
*/
package cb.xmi;
import ru.novosoft.uml.MBase;
import ru.novosoft.uml.MExtension;
import ru.novosoft.uml.behavior.activity_graphs.MActionState;
import ru.novosoft.uml.behavior.activity_graphs.MActivityGraph;
import ru.novosoft.uml.behavior.activity_graphs.MCallState;
import ru.novosoft.uml.behavior.activity_graphs.MClassifierInState;
import ru.novosoft.uml.behavior.activity_graphs.MObjectFlowState;
import ru.novosoft.uml.behavior.activity_graphs.MPartition;
import ru.novosoft.uml.behavior.activity_graphs.MSubactivityState;
import ru.novosoft.uml.behavior.collaborations.MAssociationEndRole;
import ru.novosoft.uml.behavior.collaborations.MAssociationRole;
import ru.novosoft.uml.behavior.collaborations.MClassifierRole;
import ru.novosoft.uml.behavior.collaborations.MCollaboration;
import ru.novosoft.uml.behavior.collaborations.MInteraction;
import ru.novosoft.uml.behavior.collaborations.MMessage;
import ru.novosoft.uml.behavior.common_behavior.MAction;
import ru.novosoft.uml.behavior.common_behavior.MActionSequence;
import ru.novosoft.uml.behavior.common_behavior.MArgument;
import ru.novosoft.uml.behavior.common_behavior.MAttributeLink;
import ru.novosoft.uml.behavior.common_behavior.MCallAction;
import ru.novosoft.uml.behavior.common_behavior.MComponentInstance;
import ru.novosoft.uml.behavior.common_behavior.MCreateAction;
import ru.novosoft.uml.behavior.common_behavior.MDataValue;
import ru.novosoft.uml.behavior.common_behavior.MDestroyAction;
import ru.novosoft.uml.behavior.common_behavior.MException;
import ru.novosoft.uml.behavior.common_behavior.MInstance;
import ru.novosoft.uml.behavior.common_behavior.MLink;
import ru.novosoft.uml.behavior.common_behavior.MLinkEnd;
import ru.novosoft.uml.behavior.common_behavior.MLinkObject;
import ru.novosoft.uml.behavior.common_behavior.MNodeInstance;
import ru.novosoft.uml.behavior.common_behavior.MObject;
import ru.novosoft.uml.behavior.common_behavior.MReception;
import ru.novosoft.uml.behavior.common_behavior.MReturnAction;
import ru.novosoft.uml.behavior.common_behavior.MSendAction;
import ru.novosoft.uml.behavior.common_behavior.MSignal;
import ru.novosoft.uml.behavior.common_behavior.MStimulus;
import ru.novosoft.uml.behavior.common_behavior.MTerminateAction;
import ru.novosoft.uml.behavior.common_behavior.MUninterpretedAction;
import ru.novosoft.uml.behavior.state_machines.MCallEvent;
import ru.novosoft.uml.behavior.state_machines.MChangeEvent;
import ru.novosoft.uml.behavior.state_machines.MCompositeState;
import ru.novosoft.uml.behavior.state_machines.MFinalState;
import ru.novosoft.uml.behavior.state_machines.MGuard;
import ru.novosoft.uml.behavior.state_machines.MPseudostate;
import ru.novosoft.uml.behavior.state_machines.MSignalEvent;
import ru.novosoft.uml.behavior.state_machines.MSimpleState;
import ru.novosoft.uml.behavior.state_machines.MState;
import ru.novosoft.uml.behavior.state_machines.MStateMachine;
import ru.novosoft.uml.behavior.state_machines.MStubState;
import ru.novosoft.uml.behavior.state_machines.MSubmachineState;
import ru.novosoft.uml.behavior.state_machines.MSynchState;
import ru.novosoft.uml.behavior.state_machines.MTimeEvent;
import ru.novosoft.uml.behavior.state_machines.MTransition;
import ru.novosoft.uml.behavior.use_cases.MActor;
import ru.novosoft.uml.behavior.use_cases.MExtend;
import ru.novosoft.uml.behavior.use_cases.MExtensionPoint;
import ru.novosoft.uml.behavior.use_cases.MInclude;
import ru.novosoft.uml.behavior.use_cases.MUseCase;
import ru.novosoft.uml.behavior.use_cases.MUseCaseInstance;
import ru.novosoft.uml.foundation.core.MAbstraction;
import ru.novosoft.uml.foundation.core.MAssociation;
import ru.novosoft.uml.foundation.core.MAssociationClass;
import ru.novosoft.uml.foundation.core.MAssociationEnd;
import ru.novosoft.uml.foundation.core.MAttribute;
import ru.novosoft.uml.foundation.core.MBinding;
import ru.novosoft.uml.foundation.core.MClass;
import ru.novosoft.uml.foundation.core.MClassifier;
import ru.novosoft.uml.foundation.core.MComment;
import ru.novosoft.uml.foundation.core.MComponent;
import ru.novosoft.uml.foundation.core.MConstraint;
import ru.novosoft.uml.foundation.core.MDataType;
import ru.novosoft.uml.foundation.core.MDependency;
import ru.novosoft.uml.foundation.core.MElementResidence;
import ru.novosoft.uml.foundation.core.MFlow;
import ru.novosoft.uml.foundation.core.MGeneralization;
import ru.novosoft.uml.foundation.core.MInterface;
import ru.novosoft.uml.foundation.core.MMethod;
import ru.novosoft.uml.foundation.core.MNamespace;
import ru.novosoft.uml.foundation.core.MNode;
import ru.novosoft.uml.foundation.core.MOperation;
import ru.novosoft.uml.foundation.core.MParameter;
import ru.novosoft.uml.foundation.core.MPermission;
import ru.novosoft.uml.foundation.core.MRelationship;
import ru.novosoft.uml.foundation.core.MTemplateParameter;
import ru.novosoft.uml.foundation.core.MUsage;
import ru.novosoft.uml.foundation.extension_mechanisms.MStereotype;
import ru.novosoft.uml.foundation.extension_mechanisms.MTaggedValue;
import ru.novosoft.uml.model_management.MElementImport;
import ru.novosoft.uml.model_management.MModel;
import ru.novosoft.uml.model_management.MPackage;
import ru.novosoft.uml.model_management.MSubsystem;
class Dispatcher {
private RoseGenerator gen;
Dispatcher(RoseGenerator gen) {
this.gen = gen;
}
void accept(MBase obj) {
if (obj instanceof MExtension) {
gen.visit((MExtension) obj);
} else if (obj instanceof MActionState) {
gen.visit((MActionState) obj);
} else if (obj instanceof MActivityGraph) {
gen.visit((MActivityGraph) obj);
} else if (obj instanceof MCallState) {
gen.visit((MCallState) obj);
} else if (obj instanceof MClassifierInState) {
gen.visit((MClassifierInState) obj);
} else if (obj instanceof MObjectFlowState) {
gen.visit((MObjectFlowState) obj);
} else if (obj instanceof MPartition) {
gen.visit((MPartition) obj);
} else if (obj instanceof MSubactivityState) {
gen.visit((MSubactivityState) obj);
} else if (obj instanceof MAssociationEndRole) {
gen.visit((MAssociationEndRole) obj);
} else if (obj instanceof MAssociationRole) {
gen.visit((MAssociationRole) obj);
} else if (obj instanceof MClassifierRole) {
gen.visit((MClassifierRole) obj);
} else if (obj instanceof MCollaboration) {
gen.visit((MCollaboration) obj);
} else if (obj instanceof MInteraction) {
gen.visit((MInteraction) obj);
} else if (obj instanceof MMessage) {
gen.visit((MMessage) obj);
} else if (obj instanceof MAction) {
gen.visit((MAction) obj);
} else if (obj instanceof MActionSequence) {
gen.visit((MActionSequence) obj);
} else if (obj instanceof MArgument) {
gen.visit((MArgument) obj);
} else if (obj instanceof MAttributeLink) {
gen.visit((MAttributeLink) obj);
} else if (obj instanceof MCallAction) {
gen.visit((MCallAction) obj);
} else if (obj instanceof MComponentInstance) {
gen.visit((MComponentInstance) obj);
} else if (obj instanceof MCreateAction) {
gen.visit((MCreateAction) obj);
} else if (obj instanceof MDataValue) {
gen.visit((MDataValue) obj);
} else if (obj instanceof MDestroyAction) {
gen.visit((MDestroyAction) obj);
} else if (obj instanceof MException) {
gen.visit((MException) obj);
} else if (obj instanceof MInstance) {
gen.visit((MInstance) obj);
} else if (obj instanceof MLinkEnd) {
gen.visit((MLinkEnd) obj);
} else if (obj instanceof MLink) {
gen.visit((MLink) obj);
} else if (obj instanceof MLinkObject) {
gen.visit((MLinkObject) obj);
} else if (obj instanceof MNodeInstance) {
gen.visit((MNodeInstance) obj);
} else if (obj instanceof MObject) {
gen.visit((MObject) obj);
} else if (obj instanceof MReception) {
gen.visit((MReception) obj);
} else if (obj instanceof MReturnAction) {
gen.visit((MReturnAction) obj);
} else if (obj instanceof MSendAction) {
gen.visit((MSendAction) obj);
} else if (obj instanceof MSignal) {
gen.visit((MSignal) obj);
} else if (obj instanceof MStimulus) {
gen.visit((MStimulus) obj);
} else if (obj instanceof MTerminateAction) {
gen.visit((MTerminateAction) obj);
} else if (obj instanceof MUninterpretedAction) {
gen.visit((MUninterpretedAction) obj);
} else if (obj instanceof MChangeEvent) {
gen.visit((MChangeEvent) obj);
} else if (obj instanceof MCallEvent) {
gen.visit((MCallEvent) obj);
} else if (obj instanceof MCompositeState) {
gen.visit((MCompositeState) obj);
} else if (obj instanceof MFinalState) {
gen.visit((MFinalState) obj);
} else if (obj instanceof MGuard) {
gen.visit((MGuard) obj);
} else if (obj instanceof MPseudostate) {
gen.visit((MPseudostate) obj);
} else if (obj instanceof MSignalEvent) {
gen.visit((MSignalEvent) obj);
} else if (obj instanceof MSimpleState) {
gen.visit((MSimpleState) obj);
} else if (obj instanceof MState) {
gen.visit((MState) obj);
} else if (obj instanceof MStateMachine) {
gen.visit((MStateMachine) obj);
} else if (obj instanceof MStubState) {
gen.visit((MStubState) obj);
} else if (obj instanceof MSubmachineState) {
gen.visit((MSubmachineState) obj);
} else if (obj instanceof MSynchState) {
gen.visit((MSynchState) obj);
} else if (obj instanceof MTimeEvent) {
gen.visit((MTimeEvent) obj);
} else if (obj instanceof MTransition) {
gen.visit((MTransition) obj);
} else if (obj instanceof MActor) {
gen.visit((MActor) obj);
} else if (obj instanceof MExtend) {
gen.visit((MExtend) obj);
} else if (obj instanceof MExtensionPoint) {
gen.visit((MExtensionPoint) obj);
} else if (obj instanceof MInclude) {
gen.visit((MInclude) obj);
} else if (obj instanceof MUseCase) {
gen.visit((MUseCase) obj);
} else if (obj instanceof MUseCaseInstance) {
gen.visit((MUseCaseInstance) obj);
} else if (obj instanceof MAbstraction) {
gen.visit((MAbstraction) obj);
} else if (obj instanceof MAssociationClass) {
gen.visit((MAssociationClass) obj);
} else if (obj instanceof MAssociationEnd) {
gen.visit((MAssociationEnd) obj);
} else if (obj instanceof MAssociation) {
gen.visit((MAssociation) obj);
} else if (obj instanceof MAttribute) {
gen.visit((MAttribute) obj);
} else if (obj instanceof MBinding) {
gen.visit((MBinding) obj);
} else if (obj instanceof MClass) {
gen.visit((MClass) obj);
} else if (obj instanceof MClassifier) {
gen.visit((MClassifier) obj);
} else if (obj instanceof MComment) {
gen.visit((MComment) obj);
} else if (obj instanceof MComponent) {
gen.visit((MComponent) obj);
} else if (obj instanceof MConstraint) {
gen.visit((MConstraint) obj);
} else if (obj instanceof MDataType) {
gen.visit((MDataType) obj);
} else if (obj instanceof MDependency) {
gen.visit((MDependency) obj);
} else if (obj instanceof MElementResidence) {
gen.visit((MElementResidence) obj);
} else if (obj instanceof MFlow) {
gen.visit((MFlow) obj);
} else if (obj instanceof MGeneralization) {
gen.visit((MGeneralization) obj);
} else if (obj instanceof MInterface) {
gen.visit((MInterface) obj);
} else if (obj instanceof MMethod) {
gen.visit((MMethod) obj);
} else if (obj instanceof MNamespace) {
gen.visit((MNamespace) obj);
} else if (obj instanceof MNode) {
gen.visit((MNode) obj);
} else if (obj instanceof MOperation) {
gen.visit((MOperation) obj);
} else if (obj instanceof MParameter) {
gen.visit((MParameter) obj);
} else if (obj instanceof MPermission) {
gen.visit((MPermission) obj);
} else if (obj instanceof MRelationship) {
gen.visit((MRelationship) obj);
} else if (obj instanceof MTemplateParameter) {
gen.visit((MTemplateParameter) obj);
} else if (obj instanceof MUsage) {
gen.visit((MUsage) obj);
} else if (obj instanceof MElementImport) {
gen.visit((MElementImport) obj);
} else if (obj instanceof MModel) {
gen.visit((MModel) obj);
} else if (obj instanceof MPackage) {
gen.visit((MPackage) obj);
} else if (obj instanceof MSubsystem) {
gen.visit((MSubsystem) obj);
} else if (obj instanceof MTaggedValue) {
gen.visit((MTaggedValue) obj);
} else if (obj instanceof MStereotype) {
gen.visit((MStereotype) obj);
}
}
}