blob: 44609217670dd1ee6e209cfee9a3a362d19659c1 [file] [log] [blame]
/*
* Copyright (c) 2005 Borland Software Corporation
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Dmitri Stadnik (Borland) - initial API and implementation
*/
package org.eclipse.gmf.examples.taipan.util;
import java.util.List;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.examples.taipan.*;
/**
* <!-- begin-user-doc -->
* The <b>Switch</b> for the model's inheritance hierarchy.
* It supports the call {@link #doSwitch(EObject) doSwitch(object)}
* to invoke the <code>caseXXX</code> 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.
* <!-- end-user-doc -->
* @see org.eclipse.gmf.examples.taipan.TaiPanPackage
* @generated
*/
public class TaiPanSwitch<T> {
/**
* The cached model package
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static TaiPanPackage modelPackage;
/**
* Creates an instance of the switch.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TaiPanSwitch() {
if (modelPackage == null) {
modelPackage = TaiPanPackage.eINSTANCE;
}
}
/**
* Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
public T doSwitch(EObject theEObject) {
return doSwitch(theEObject.eClass(), theEObject);
}
/**
* Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
protected T doSwitch(EClass theEClass, EObject theEObject) {
if (theEClass.eContainer() == modelPackage) {
return doSwitch(theEClass.getClassifierID(), theEObject);
} else {
List<EClass> eSuperTypes = theEClass.getESuperTypes();
return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
}
}
/**
* Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
protected T doSwitch(int classifierID, EObject theEObject) {
switch (classifierID) {
case TaiPanPackage.AQUATORY: {
Aquatory aquatory = (Aquatory) theEObject;
T result = caseAquatory(aquatory);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.DESTINATION: {
Destination destination = (Destination) theEObject;
T result = caseDestination(destination);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.PORT: {
Port port = (Port) theEObject;
T result = casePort(port);
if (result == null)
result = caseDestination(port);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.BUILDING: {
Building building = (Building) theEObject;
T result = caseBuilding(building);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.ROUTE: {
Route route = (Route) theEObject;
T result = caseRoute(route);
if (result == null)
result = caseDestination(route);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.SHIP: {
Ship ship = (Ship) theEObject;
T result = caseShip(ship);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.ITEM: {
Item item = (Item) theEObject;
T result = caseItem(item);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.LARGE_ITEM: {
LargeItem largeItem = (LargeItem) theEObject;
T result = caseLargeItem(largeItem);
if (result == null)
result = caseItem(largeItem);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.SMALL_ITEMS: {
SmallItems smallItems = (SmallItems) theEObject;
T result = caseSmallItems(smallItems);
if (result == null)
result = caseItem(smallItems);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.EMPTY_BOX: {
EmptyBox emptyBox = (EmptyBox) theEObject;
T result = caseEmptyBox(emptyBox);
if (result == null)
result = caseItem(emptyBox);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.WARSHIP: {
Warship warship = (Warship) theEObject;
T result = caseWarship(warship);
if (result == null)
result = caseShip(warship);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.ORDER: {
Order order = (Order) theEObject;
T result = caseOrder(order);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.ESCORT_SHIPS_ORDER: {
EscortShipsOrder escortShipsOrder = (EscortShipsOrder) theEObject;
T result = caseEscortShipsOrder(escortShipsOrder);
if (result == null)
result = caseOrder(escortShipsOrder);
if (result == null)
result = defaultCase(theEObject);
return result;
}
case TaiPanPackage.BESIEGE_PORT_ORDER: {
BesiegePortOrder besiegePortOrder = (BesiegePortOrder) theEObject;
T result = caseBesiegePortOrder(besiegePortOrder);
if (result == null)
result = caseOrder(besiegePortOrder);
if (result == null)
result = defaultCase(theEObject);
return result;
}
default:
return defaultCase(theEObject);
}
}
/**
* Returns the result of interpreting the object as an instance of '<em>Aquatory</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Aquatory</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseAquatory(Aquatory object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Destination</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Destination</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseDestination(Destination object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Port</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Port</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T casePort(Port object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Ship</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Ship</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseShip(Ship object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Item</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Item</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseItem(Item object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Large Item</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Large Item</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseLargeItem(LargeItem object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Small Items</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Small Items</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseSmallItems(SmallItems object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Empty Box</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Empty Box</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseEmptyBox(EmptyBox object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Warship</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Warship</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseWarship(Warship object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Order</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Order</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseOrder(Order object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Escort Ships Order</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Escort Ships Order</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseEscortShipsOrder(EscortShipsOrder object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Besiege Port Order</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Besiege Port Order</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseBesiegePortOrder(BesiegePortOrder object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Route</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Route</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseRoute(Route object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Building</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Building</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseBuilding(Building object) {
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch, but this is the last case anyway.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>EObject</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject)
* @generated
*/
public T defaultCase(EObject object) {
return null;
}
} //TaiPanSwitch