code: /**
   */
  package co.edu.uniandes.accordant_fv.util;
  
  import co.edu.uniandes.accordant_fv.*;
  
  import org.eclipse.emf.ecore.EObject;
  import org.eclipse.emf.ecore.EPackage;
  
  import org.eclipse.emf.ecore.util.Switch;
  
  /**
   * <!-- 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 co.edu.uniandes.accordant_fv.Accordant_fvPackage
   * @generated
   */
  public class Accordant_fvSwitch<T> extends Switch<T> {
  	/**
  	 * The cached model package
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	protected static Accordant_fvPackage modelPackage;
  
  	/**
  	 * Creates an instance of the switch.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Accordant_fvSwitch() {
  		if (modelPackage == null) {
  			modelPackage = Accordant_fvPackage.eINSTANCE;
  		}
  	}
  
  	/**
  	 * Checks whether this is a switch for the given package.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @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 <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
  	 */
  	@Override
  	protected T doSwitch(int classifierID, EObject theEObject) {
  		switch (classifierID) {
  			case Accordant_fvPackage.FUNCTIONAL_VIEW: {
  				FunctionalView functionalView = (FunctionalView)theEObject;
  				T result = caseFunctionalView(functionalView);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.CONNECTOR: {
  				Connector connector = (Connector)theEObject;
  				T result = caseConnector(connector);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.COMPONENT: {
  				Component component = (Component)theEObject;
  				T result = caseComponent(component);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.TRANSFORMER: {
  				Transformer transformer = (Transformer)theEObject;
  				T result = caseTransformer(transformer);
  				if (result == null) result = caseAnalyticsComponent(transformer);
  				if (result == null) result = caseComponent(transformer);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.ESTIMATOR: {
  				Estimator estimator = (Estimator)theEObject;
  				T result = caseEstimator(estimator);
  				if (result == null) result = caseAnalyticsComponent(estimator);
  				if (result == null) result = caseComponent(estimator);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.STREAM: {
  				Stream stream = (Stream)theEObject;
  				T result = caseStream(stream);
  				if (result == null) result = caseConnector(stream);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.ADAPTOR: {
  				Adaptor adaptor = (Adaptor)theEObject;
  				T result = caseAdaptor(adaptor);
  				if (result == null) result = caseConnector(adaptor);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.DISTRIBUTOR: {
  				Distributor distributor = (Distributor)theEObject;
  				T result = caseDistributor(distributor);
  				if (result == null) result = caseConnector(distributor);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.INGESTOR: {
  				Ingestor ingestor = (Ingestor)theEObject;
  				T result = caseIngestor(ingestor);
  				if (result == null) result = caseComponent(ingestor);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.ANALYTICS_COMPONENT: {
  				AnalyticsComponent analyticsComponent = (AnalyticsComponent)theEObject;
  				T result = caseAnalyticsComponent(analyticsComponent);
  				if (result == null) result = caseComponent(analyticsComponent);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.EVENT: {
  				Event event = (Event)theEObject;
  				T result = caseEvent(event);
  				if (result == null) result = caseConnector(event);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.SINK: {
  				Sink sink = (Sink)theEObject;
  				T result = caseSink(sink);
  				if (result == null) result = caseComponent(sink);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.PORT: {
  				Port port = (Port)theEObject;
  				T result = casePort(port);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.ARBITRATOR: {
  				Arbitrator arbitrator = (Arbitrator)theEObject;
  				T result = caseArbitrator(arbitrator);
  				if (result == null) result = caseConnector(arbitrator);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.ROLE: {
  				Role role = (Role)theEObject;
  				T result = caseRole(role);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.PROCEDURE_CALL: {
  				ProcedureCall procedureCall = (ProcedureCall)theEObject;
  				T result = caseProcedureCall(procedureCall);
  				if (result == null) result = caseConnector(procedureCall);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case Accordant_fvPackage.FIELD: {
  				Field field = (Field)theEObject;
  				T result = caseField(field);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			default: return defaultCase(theEObject);
  		}
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Functional View</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>Functional View</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseFunctionalView(FunctionalView object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Connector</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>Connector</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseConnector(Connector object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Component</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>Component</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseComponent(Component object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Transformer</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>Transformer</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseTransformer(Transformer object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Estimator</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>Estimator</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseEstimator(Estimator object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Stream</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>Stream</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseStream(Stream object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Adaptor</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>Adaptor</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseAdaptor(Adaptor object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Distributor</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>Distributor</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseDistributor(Distributor object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Ingestor</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>Ingestor</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseIngestor(Ingestor object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Analytics Component</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>Analytics Component</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseAnalyticsComponent(AnalyticsComponent object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Event</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>Event</em>'.
  	 * @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 '<em>Sink</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>Sink</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseSink(Sink 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>Arbitrator</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>Arbitrator</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseArbitrator(Arbitrator object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Role</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>Role</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseRole(Role object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Procedure Call</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>Procedure Call</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseProcedureCall(ProcedureCall object) {
  		return null;
  	}
  
  	/**
  	 * Returns the result of interpreting the object as an instance of '<em>Field</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>Field</em>'.
  	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
  	 * @generated
  	 */
  	public T caseField(Field 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
  	 */
  	@Override
  	public T defaultCase(EObject object) {
  		return null;
  	}
  
  } //Accordant_fvSwitch
  