/* | |
* 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 |