/** * <copyright> * </copyright> * * $Id$ */ package org.yakindu.base.types.util; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.util.Switch; import org.yakindu.base.base.NamedElement; import org.yakindu.base.types.AnnotatableElement; import org.yakindu.base.types.Annotation; import org.yakindu.base.types.AnnotationType; import org.yakindu.base.types.ArrayTypeSpecifier; import org.yakindu.base.types.ComplexType; import org.yakindu.base.types.Declaration; import org.yakindu.base.types.Domain; import org.yakindu.base.types.EnumerationType; import org.yakindu.base.types.Enumerator; import org.yakindu.base.types.Event; import org.yakindu.base.types.GenericElement; import org.yakindu.base.types.Operation; import org.yakindu.base.types.PackageMember; import org.yakindu.base.types.Parameter; import org.yakindu.base.types.PrimitiveType; import org.yakindu.base.types.Property; import org.yakindu.base.types.RangeConstraint; import org.yakindu.base.types.Type; import org.yakindu.base.types.TypeAlias; import org.yakindu.base.types.TypeConstraint; import org.yakindu.base.types.TypeParameter; import org.yakindu.base.types.TypeSpecifier; import org.yakindu.base.types.TypedElement; import org.yakindu.base.types.TypesPackage; /** * <!-- 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.yakindu.base.types.TypesPackage * @generated */ public class TypesSwitch<T> extends Switch<T> { /** * The cached model package * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected static TypesPackage modelPackage; /** * Creates an instance of the switch. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @generated */ public TypesSwitch() { if (modelPackage == null) { modelPackage = TypesPackage.eINSTANCE; } } /** * Checks whether this is a switch for the given package. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @parameter 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 TypesPackage.PACKAGE: { org.yakindu.base.types.Package package_ = (org.yakindu.base.types.Package)theEObject; T result = casePackage(package_); if (result == null) result = caseNamedElement(package_); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPE: { Type type = (Type)theEObject; T result = caseType(type); if (result == null) result = casePackageMember(type); if (result == null) result = caseNamedElement(type); if (result == null) result = caseAnnotatableElement(type); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.DECLARATION: { Declaration declaration = (Declaration)theEObject; T result = caseDeclaration(declaration); if (result == null) result = caseTypedElement(declaration); if (result == null) result = casePackageMember(declaration); if (result == null) result = caseNamedElement(declaration); if (result == null) result = caseAnnotatableElement(declaration); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.OPERATION: { Operation operation = (Operation)theEObject; T result = caseOperation(operation); if (result == null) result = caseDeclaration(operation); if (result == null) result = caseGenericElement(operation); if (result == null) result = caseTypedElement(operation); if (result == null) result = casePackageMember(operation); if (result == null) result = caseNamedElement(operation); if (result == null) result = caseAnnotatableElement(operation); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.PROPERTY: { Property property = (Property)theEObject; T result = caseProperty(property); if (result == null) result = caseDeclaration(property); if (result == null) result = caseTypedElement(property); if (result == null) result = casePackageMember(property); if (result == null) result = caseNamedElement(property); if (result == null) result = caseAnnotatableElement(property); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.PARAMETER: { Parameter parameter = (Parameter)theEObject; T result = caseParameter(parameter); if (result == null) result = caseTypedElement(parameter); if (result == null) result = caseNamedElement(parameter); if (result == null) result = caseAnnotatableElement(parameter); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPED_ELEMENT: { TypedElement typedElement = (TypedElement)theEObject; T result = caseTypedElement(typedElement); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPE_SPECIFIER: { TypeSpecifier typeSpecifier = (TypeSpecifier)theEObject; T result = caseTypeSpecifier(typeSpecifier); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.EVENT: { Event event = (Event)theEObject; T result = caseEvent(event); if (result == null) result = caseDeclaration(event); if (result == null) result = caseTypedElement(event); if (result == null) result = casePackageMember(event); if (result == null) result = caseNamedElement(event); if (result == null) result = caseAnnotatableElement(event); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ENUMERATION_TYPE: { EnumerationType enumerationType = (EnumerationType)theEObject; T result = caseEnumerationType(enumerationType); if (result == null) result = casePrimitiveType(enumerationType); if (result == null) result = caseType(enumerationType); if (result == null) result = casePackageMember(enumerationType); if (result == null) result = caseNamedElement(enumerationType); if (result == null) result = caseAnnotatableElement(enumerationType); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.PRIMITIVE_TYPE: { PrimitiveType primitiveType = (PrimitiveType)theEObject; T result = casePrimitiveType(primitiveType); if (result == null) result = caseType(primitiveType); if (result == null) result = casePackageMember(primitiveType); if (result == null) result = caseNamedElement(primitiveType); if (result == null) result = caseAnnotatableElement(primitiveType); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.COMPLEX_TYPE: { ComplexType complexType = (ComplexType)theEObject; T result = caseComplexType(complexType); if (result == null) result = caseType(complexType); if (result == null) result = caseGenericElement(complexType); if (result == null) result = casePackageMember(complexType); if (result == null) result = caseNamedElement(complexType); if (result == null) result = caseAnnotatableElement(complexType); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ENUMERATOR: { Enumerator enumerator = (Enumerator)theEObject; T result = caseEnumerator(enumerator); if (result == null) result = caseDeclaration(enumerator); if (result == null) result = caseTypedElement(enumerator); if (result == null) result = casePackageMember(enumerator); if (result == null) result = caseNamedElement(enumerator); if (result == null) result = caseAnnotatableElement(enumerator); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPE_CONSTRAINT: { TypeConstraint typeConstraint = (TypeConstraint)theEObject; T result = caseTypeConstraint(typeConstraint); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPE_PARAMETER: { TypeParameter typeParameter = (TypeParameter)theEObject; T result = caseTypeParameter(typeParameter); if (result == null) result = caseType(typeParameter); if (result == null) result = casePackageMember(typeParameter); if (result == null) result = caseNamedElement(typeParameter); if (result == null) result = caseAnnotatableElement(typeParameter); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.GENERIC_ELEMENT: { GenericElement genericElement = (GenericElement)theEObject; T result = caseGenericElement(genericElement); if (result == null) result = caseNamedElement(genericElement); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.PACKAGE_MEMBER: { PackageMember packageMember = (PackageMember)theEObject; T result = casePackageMember(packageMember); if (result == null) result = caseNamedElement(packageMember); if (result == null) result = caseAnnotatableElement(packageMember); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.RANGE_CONSTRAINT: { RangeConstraint rangeConstraint = (RangeConstraint)theEObject; T result = caseRangeConstraint(rangeConstraint); if (result == null) result = caseTypeConstraint(rangeConstraint); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.DOMAIN: { Domain domain = (Domain)theEObject; T result = caseDomain(domain); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.TYPE_ALIAS: { TypeAlias typeAlias = (TypeAlias)theEObject; T result = caseTypeAlias(typeAlias); if (result == null) result = caseTypedElement(typeAlias); if (result == null) result = caseType(typeAlias); if (result == null) result = casePackageMember(typeAlias); if (result == null) result = caseNamedElement(typeAlias); if (result == null) result = caseAnnotatableElement(typeAlias); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ANNOTATION: { Annotation annotation = (Annotation)theEObject; T result = caseAnnotation(annotation); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ANNOTATABLE_ELEMENT: { AnnotatableElement annotatableElement = (AnnotatableElement)theEObject; T result = caseAnnotatableElement(annotatableElement); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ARRAY_TYPE_SPECIFIER: { ArrayTypeSpecifier arrayTypeSpecifier = (ArrayTypeSpecifier)theEObject; T result = caseArrayTypeSpecifier(arrayTypeSpecifier); if (result == null) result = caseTypeSpecifier(arrayTypeSpecifier); if (result == null) result = defaultCase(theEObject); return result; } case TypesPackage.ANNOTATION_TYPE: { AnnotationType annotationType = (AnnotationType)theEObject; T result = caseAnnotationType(annotationType); if (result == null) result = caseType(annotationType); if (result == null) result = casePackageMember(annotationType); if (result == null) result = caseNamedElement(annotationType); if (result == null) result = caseAnnotatableElement(annotationType); if (result == null) result = defaultCase(theEObject); return result; } default: return defaultCase(theEObject); } } /** * Returns the result of interpreting the object as an instance of '<em>Package</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>Package</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T casePackage(org.yakindu.base.types.Package object) { return null; } /** * Returns the result of interpreting the object as an instance of ' * <em>Type</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>Type</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseType(Type object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>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>Declaration</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseDeclaration(Declaration object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Operation</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>Operation</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseOperation(Operation object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Property</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>Property</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseProperty(Property object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Parameter</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>Parameter</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseParameter(Parameter object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Typed Element</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>Typed Element</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseTypedElement(TypedElement object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Type Specifier</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>Type Specifier</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseTypeSpecifier(TypeSpecifier object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Named Element</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>Named Element</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseNamedElement(NamedElement 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>Enumeration Type</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>Enumeration Type</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseEnumerationType(EnumerationType object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Primitive Type</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>Primitive Type</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T casePrimitiveType(PrimitiveType object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Complex Type</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>Complex Type</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseComplexType(ComplexType object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Enumerator</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>Enumerator</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseEnumerator(Enumerator object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Type Constraint</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>Type Constraint</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseTypeConstraint(TypeConstraint object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Type Parameter</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>Type Parameter</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseTypeParameter(TypeParameter object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Generic Element</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>Generic Element</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseGenericElement(GenericElement object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Package Member</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>Package Member</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T casePackageMember(PackageMember object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Range Constraint</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>Range Constraint</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseRangeConstraint(RangeConstraint object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Domain</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>Domain</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseDomain(Domain object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Type Alias</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>Type Alias</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseTypeAlias(TypeAlias object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Annotation</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>Annotation</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseAnnotation(Annotation object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Annotatable Element</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>Annotatable Element</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseAnnotatableElement(AnnotatableElement object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Array Type Specifier</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>Array Type Specifier</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseArrayTypeSpecifier(ArrayTypeSpecifier object) { return null; } /** * Returns the result of interpreting the object as an instance of '<em>Annotation Type</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>Annotation Type</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ public T caseAnnotationType(AnnotationType 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; } } // TypesSwitch