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