/**
 */
package ua.ansymo.hintco.util;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.Switch;

import ua.ansymo.hintco.*;

/**
 * <!-- 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 ua.ansymo.hintco.HintcoPackage
 * @generated
 */
public class HintcoSwitch<T> extends Switch<T> {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static HintcoPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public HintcoSwitch() {
		if (modelPackage == null) {
			modelPackage = HintcoPackage.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 HintcoPackage.IDED: {
				IDed iDed = (IDed)theEObject;
				T result = caseIDed(iDed);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.HINT_CONFIGURATION: {
				HintConfiguration hintConfiguration = (HintConfiguration)theEObject;
				T result = caseHintConfiguration(hintConfiguration);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.VARIANT_DIAGRAM: {
				VariantDiagram variantDiagram = (VariantDiagram)theEObject;
				T result = caseVariantDiagram(variantDiagram);
				if (result == null) result = caseIDed(variantDiagram);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.PRECENDENCE_NODE: {
				PrecendenceNode precendenceNode = (PrecendenceNode)theEObject;
				T result = casePrecendenceNode(precendenceNode);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.ROOT_CANDIDATE_SCENARIO: {
				RootCandidateScenario rootCandidateScenario = (RootCandidateScenario)theEObject;
				T result = caseRootCandidateScenario(rootCandidateScenario);
				if (result == null) result = caseAlternative(rootCandidateScenario);
				if (result == null) result = caseScenario(rootCandidateScenario);
				if (result == null) result = caseIDed(rootCandidateScenario);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.SCENARIO: {
				Scenario scenario = (Scenario)theEObject;
				T result = caseScenario(scenario);
				if (result == null) result = caseIDed(scenario);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.HIERARCHICAL_COSIM_UNIT: {
				HierarchicalCosimUnit hierarchicalCosimUnit = (HierarchicalCosimUnit)theEObject;
				T result = caseHierarchicalCosimUnit(hierarchicalCosimUnit);
				if (result == null) result = caseScenario(hierarchicalCosimUnit);
				if (result == null) result = caseUnitInstance(hierarchicalCosimUnit);
				if (result == null) result = caseIDed(hierarchicalCosimUnit);
				if (result == null) result = casePrecendenceNode(hierarchicalCosimUnit);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.COSIM_UNIT_DECLARATION: {
				CosimUnitDeclaration cosimUnitDeclaration = (CosimUnitDeclaration)theEObject;
				T result = caseCosimUnitDeclaration(cosimUnitDeclaration);
				if (result == null) result = caseIDed(cosimUnitDeclaration);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.UNIT_INSTANCE: {
				UnitInstance unitInstance = (UnitInstance)theEObject;
				T result = caseUnitInstance(unitInstance);
				if (result == null) result = caseIDed(unitInstance);
				if (result == null) result = casePrecendenceNode(unitInstance);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.COSIM_UNIT_INSTANCE: {
				CosimUnitInstance cosimUnitInstance = (CosimUnitInstance)theEObject;
				T result = caseCosimUnitInstance(cosimUnitInstance);
				if (result == null) result = caseUnitInstance(cosimUnitInstance);
				if (result == null) result = caseIDed(cosimUnitInstance);
				if (result == null) result = casePrecendenceNode(cosimUnitInstance);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.PORT_INSTANCE: {
				PortInstance portInstance = (PortInstance)theEObject;
				T result = casePortInstance(portInstance);
				if (result == null) result = casePrecendenceNode(portInstance);
				if (result == null) result = caseIDed(portInstance);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.HIERARCHICAL_UNIT_PORT: {
				HierarchicalUnitPort hierarchicalUnitPort = (HierarchicalUnitPort)theEObject;
				T result = caseHierarchicalUnitPort(hierarchicalUnitPort);
				if (result == null) result = caseInputPortInstance(hierarchicalUnitPort);
				if (result == null) result = caseOutputPortInstance(hierarchicalUnitPort);
				if (result == null) result = casePortInstance(hierarchicalUnitPort);
				if (result == null) result = casePrecendenceNode(hierarchicalUnitPort);
				if (result == null) result = caseIDed(hierarchicalUnitPort);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.INPUT_PORT_INSTANCE: {
				InputPortInstance inputPortInstance = (InputPortInstance)theEObject;
				T result = caseInputPortInstance(inputPortInstance);
				if (result == null) result = casePortInstance(inputPortInstance);
				if (result == null) result = casePrecendenceNode(inputPortInstance);
				if (result == null) result = caseIDed(inputPortInstance);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.OUTPUT_PORT_INSTANCE: {
				OutputPortInstance outputPortInstance = (OutputPortInstance)theEObject;
				T result = caseOutputPortInstance(outputPortInstance);
				if (result == null) result = casePortInstance(outputPortInstance);
				if (result == null) result = casePrecendenceNode(outputPortInstance);
				if (result == null) result = caseIDed(outputPortInstance);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.ALTERNATIVE: {
				Alternative alternative = (Alternative)theEObject;
				T result = caseAlternative(alternative);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.ADAPTATION: {
				Adaptation adaptation = (Adaptation)theEObject;
				T result = caseAdaptation(adaptation);
				if (result == null) result = caseAlternative(adaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.PORT_ADAPTATION: {
				PortAdaptation portAdaptation = (PortAdaptation)theEObject;
				T result = casePortAdaptation(portAdaptation);
				if (result == null) result = caseAdaptation(portAdaptation);
				if (result == null) result = caseAlternative(portAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.DECOMPOSITION_PORT_ADAPTATION: {
				DecompositionPortAdaptation decompositionPortAdaptation = (DecompositionPortAdaptation)theEObject;
				T result = caseDecompositionPortAdaptation(decompositionPortAdaptation);
				if (result == null) result = casePortAdaptation(decompositionPortAdaptation);
				if (result == null) result = caseAdaptation(decompositionPortAdaptation);
				if (result == null) result = caseAlternative(decompositionPortAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.UNIT_ADAPTATION: {
				UnitAdaptation unitAdaptation = (UnitAdaptation)theEObject;
				T result = caseUnitAdaptation(unitAdaptation);
				if (result == null) result = caseAdaptation(unitAdaptation);
				if (result == null) result = caseAlternative(unitAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.DECOMPOSITION_UNIT_ADAPTATION: {
				DecompositionUnitAdaptation decompositionUnitAdaptation = (DecompositionUnitAdaptation)theEObject;
				T result = caseDecompositionUnitAdaptation(decompositionUnitAdaptation);
				if (result == null) result = caseUnitAdaptation(decompositionUnitAdaptation);
				if (result == null) result = caseAdaptation(decompositionUnitAdaptation);
				if (result == null) result = caseAlternative(decompositionUnitAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.XOR_UNIT_ADAPTATION: {
				XorUnitAdaptation xorUnitAdaptation = (XorUnitAdaptation)theEObject;
				T result = caseXorUnitAdaptation(xorUnitAdaptation);
				if (result == null) result = caseDecompositionUnitAdaptation(xorUnitAdaptation);
				if (result == null) result = caseUnitAdaptation(xorUnitAdaptation);
				if (result == null) result = caseAdaptation(xorUnitAdaptation);
				if (result == null) result = caseAlternative(xorUnitAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.XOR_PORT_ADAPTATION: {
				XorPortAdaptation xorPortAdaptation = (XorPortAdaptation)theEObject;
				T result = caseXorPortAdaptation(xorPortAdaptation);
				if (result == null) result = caseDecompositionPortAdaptation(xorPortAdaptation);
				if (result == null) result = casePortAdaptation(xorPortAdaptation);
				if (result == null) result = caseAdaptation(xorPortAdaptation);
				if (result == null) result = caseAlternative(xorPortAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.APPROXIMATION_ADAPTATION: {
				ApproximationAdaptation approximationAdaptation = (ApproximationAdaptation)theEObject;
				T result = caseApproximationAdaptation(approximationAdaptation);
				if (result == null) result = casePortAdaptation(approximationAdaptation);
				if (result == null) result = caseAdaptation(approximationAdaptation);
				if (result == null) result = caseAlternative(approximationAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.MULTI_RATE_ADAPTATION: {
				MultiRateAdaptation multiRateAdaptation = (MultiRateAdaptation)theEObject;
				T result = caseMultiRateAdaptation(multiRateAdaptation);
				if (result == null) result = caseUnitAdaptation(multiRateAdaptation);
				if (result == null) result = caseAdaptation(multiRateAdaptation);
				if (result == null) result = caseAlternative(multiRateAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.POWER_BOND_ADAPTATION: {
				PowerBondAdaptation powerBondAdaptation = (PowerBondAdaptation)theEObject;
				T result = casePowerBondAdaptation(powerBondAdaptation);
				if (result == null) result = caseUnitAdaptation(powerBondAdaptation);
				if (result == null) result = caseAdaptation(powerBondAdaptation);
				if (result == null) result = caseAlternative(powerBondAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.EXTRAPOLATION_ADAPTATION: {
				ExtrapolationAdaptation extrapolationAdaptation = (ExtrapolationAdaptation)theEObject;
				T result = caseExtrapolationAdaptation(extrapolationAdaptation);
				if (result == null) result = caseApproximationAdaptation(extrapolationAdaptation);
				if (result == null) result = casePortAdaptation(extrapolationAdaptation);
				if (result == null) result = caseAdaptation(extrapolationAdaptation);
				if (result == null) result = caseAlternative(extrapolationAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.ROLLBACK_INTERPOLATION_ADAPTATION: {
				RollbackInterpolationAdaptation rollbackInterpolationAdaptation = (RollbackInterpolationAdaptation)theEObject;
				T result = caseRollbackInterpolationAdaptation(rollbackInterpolationAdaptation);
				if (result == null) result = caseExtrapolationAdaptation(rollbackInterpolationAdaptation);
				if (result == null) result = caseApproximationAdaptation(rollbackInterpolationAdaptation);
				if (result == null) result = casePortAdaptation(rollbackInterpolationAdaptation);
				if (result == null) result = caseAdaptation(rollbackInterpolationAdaptation);
				if (result == null) result = caseAlternative(rollbackInterpolationAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case HintcoPackage.INTERPOLATION_ADAPTATION: {
				InterpolationAdaptation interpolationAdaptation = (InterpolationAdaptation)theEObject;
				T result = caseInterpolationAdaptation(interpolationAdaptation);
				if (result == null) result = caseApproximationAdaptation(interpolationAdaptation);
				if (result == null) result = casePortAdaptation(interpolationAdaptation);
				if (result == null) result = caseAdaptation(interpolationAdaptation);
				if (result == null) result = caseAlternative(interpolationAdaptation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>IDed</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>IDed</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseIDed(IDed object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Hint Configuration</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>Hint Configuration</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseHintConfiguration(HintConfiguration object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Variant Diagram</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>Variant Diagram</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseVariantDiagram(VariantDiagram object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Precendence Node</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>Precendence Node</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePrecendenceNode(PrecendenceNode object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Root Candidate Scenario</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>Root Candidate Scenario</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRootCandidateScenario(RootCandidateScenario object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Scenario</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>Scenario</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseScenario(Scenario object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Hierarchical Cosim Unit</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>Hierarchical Cosim Unit</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseHierarchicalCosimUnit(HierarchicalCosimUnit object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Cosim Unit Declaration</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>Cosim Unit Declaration</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCosimUnitDeclaration(CosimUnitDeclaration object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Unit Instance</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>Unit Instance</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUnitInstance(UnitInstance object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Cosim Unit Instance</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>Cosim Unit Instance</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCosimUnitInstance(CosimUnitInstance object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Port Instance</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 Instance</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePortInstance(PortInstance object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Hierarchical Unit 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>Hierarchical Unit Port</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseHierarchicalUnitPort(HierarchicalUnitPort object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Input Port Instance</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>Input Port Instance</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInputPortInstance(InputPortInstance object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Output Port Instance</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>Output Port Instance</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOutputPortInstance(OutputPortInstance object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Alternative</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>Alternative</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAlternative(Alternative object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Adaptation</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>Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAdaptation(Adaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Port Adaptation</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 Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePortAdaptation(PortAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Decomposition Port Adaptation</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>Decomposition Port Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDecompositionPortAdaptation(DecompositionPortAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Unit Adaptation</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>Unit Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUnitAdaptation(UnitAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Decomposition Unit Adaptation</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>Decomposition Unit Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDecompositionUnitAdaptation(DecompositionUnitAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Xor Unit Adaptation</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>Xor Unit Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseXorUnitAdaptation(XorUnitAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Xor Port Adaptation</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>Xor Port Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseXorPortAdaptation(XorPortAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Approximation Adaptation</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>Approximation Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseApproximationAdaptation(ApproximationAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Multi Rate Adaptation</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>Multi Rate Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMultiRateAdaptation(MultiRateAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Power Bond Adaptation</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>Power Bond Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePowerBondAdaptation(PowerBondAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Extrapolation Adaptation</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>Extrapolation Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseExtrapolationAdaptation(ExtrapolationAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Rollback Interpolation Adaptation</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>Rollback Interpolation Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRollbackInterpolationAdaptation(RollbackInterpolationAdaptation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Interpolation Adaptation</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>Interpolation Adaptation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseInterpolationAdaptation(InterpolationAdaptation 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;
	}

} //HintcoSwitch
