/**
 * generated by Xtext 2.12.0
 */
package com.minres.rdl.rdl.util;

import com.minres.rdl.rdl.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see com.minres.rdl.rdl.RdlPackage
 * @generated
 */
public class RdlAdapterFactory extends AdapterFactoryImpl
{
  /**
   * The cached model package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected static RdlPackage modelPackage;

  /**
   * Creates an instance of the adapter factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RdlAdapterFactory()
  {
    if (modelPackage == null)
    {
      modelPackage = RdlPackage.eINSTANCE;
    }
  }

  /**
   * Returns whether this factory is applicable for the type of the object.
   * <!-- begin-user-doc -->
   * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
   * <!-- end-user-doc -->
   * @return whether this factory is applicable for the type of the object.
   * @generated
   */
  @Override
  public boolean isFactoryForType(Object object)
  {
    if (object == modelPackage)
    {
      return true;
    }
    if (object instanceof EObject)
    {
      return ((EObject)object).eClass().getEPackage() == modelPackage;
    }
    return false;
  }

  /**
   * The switch that delegates to the <code>createXXX</code> methods.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RdlSwitch<Adapter> modelSwitch =
    new RdlSwitch<Adapter>()
    {
      @Override
      public Adapter caseRoot(Root object)
      {
        return createRootAdapter();
      }
      @Override
      public Adapter caseInclude(Include object)
      {
        return createIncludeAdapter();
      }
      @Override
      public Adapter casePropertyDefinition(PropertyDefinition object)
      {
        return createPropertyDefinitionAdapter();
      }
      @Override
      public Adapter casePropertyDefault(PropertyDefault object)
      {
        return createPropertyDefaultAdapter();
      }
      @Override
      public Adapter casePropertyUsage(PropertyUsage object)
      {
        return createPropertyUsageAdapter();
      }
      @Override
      public Adapter caseComponentDefinition(ComponentDefinition object)
      {
        return createComponentDefinitionAdapter();
      }
      @Override
      public Adapter caseNamedInstantiation(NamedInstantiation object)
      {
        return createNamedInstantiationAdapter();
      }
      @Override
      public Adapter caseImmediateInstantiation(ImmediateInstantiation object)
      {
        return createImmediateInstantiationAdapter();
      }
      @Override
      public Adapter caseComponentInstance(ComponentInstance object)
      {
        return createComponentInstanceAdapter();
      }
      @Override
      public Adapter caseRange(Range object)
      {
        return createRangeAdapter();
      }
      @Override
      public Adapter casePropertyAssignment(PropertyAssignment object)
      {
        return createPropertyAssignmentAdapter();
      }
      @Override
      public Adapter caseDefaultProperyAssignment(DefaultProperyAssignment object)
      {
        return createDefaultProperyAssignmentAdapter();
      }
      @Override
      public Adapter caseExplicitPropertyAssignment(ExplicitPropertyAssignment object)
      {
        return createExplicitPropertyAssignmentAdapter();
      }
      @Override
      public Adapter casePostPropertyAssignment(PostPropertyAssignment object)
      {
        return createPostPropertyAssignmentAdapter();
      }
      @Override
      public Adapter caseInstancePropertyRef(InstancePropertyRef object)
      {
        return createInstancePropertyRefAdapter();
      }
      @Override
      public Adapter caseEntity(Entity object)
      {
        return createEntityAdapter();
      }
      @Override
      public Adapter caseInstanceRef(InstanceRef object)
      {
        return createInstanceRefAdapter();
      }
      @Override
      public Adapter casePropertyAssignmentRhs(PropertyAssignmentRhs object)
      {
        return createPropertyAssignmentRhsAdapter();
      }
      @Override
      public Adapter caseConcat(Concat object)
      {
        return createConcatAdapter();
      }
      @Override
      public Adapter caseConcatElem(ConcatElem object)
      {
        return createConcatElemAdapter();
      }
      @Override
      public Adapter caseRValue(RValue object)
      {
        return createRValueAdapter();
      }
      @Override
      public Adapter caseEnumDefinition(EnumDefinition object)
      {
        return createEnumDefinitionAdapter();
      }
      @Override
      public Adapter caseEnumBody(EnumBody object)
      {
        return createEnumBodyAdapter();
      }
      @Override
      public Adapter caseEnumEntry(EnumEntry object)
      {
        return createEnumEntryAdapter();
      }
      @Override
      public Adapter caseEnumProperty(EnumProperty object)
      {
        return createEnumPropertyAdapter();
      }
      @Override
      public Adapter defaultCase(EObject object)
      {
        return createEObjectAdapter();
      }
    };

  /**
   * Creates an adapter for the <code>target</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param target the object to adapt.
   * @return the adapter for the <code>target</code>.
   * @generated
   */
  @Override
  public Adapter createAdapter(Notifier target)
  {
    return modelSwitch.doSwitch((EObject)target);
  }


  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.Root <em>Root</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.Root
   * @generated
   */
  public Adapter createRootAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.Include <em>Include</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.Include
   * @generated
   */
  public Adapter createIncludeAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PropertyDefinition <em>Property Definition</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PropertyDefinition
   * @generated
   */
  public Adapter createPropertyDefinitionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PropertyDefault <em>Property Default</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PropertyDefault
   * @generated
   */
  public Adapter createPropertyDefaultAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PropertyUsage <em>Property Usage</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PropertyUsage
   * @generated
   */
  public Adapter createPropertyUsageAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.ComponentDefinition <em>Component Definition</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.ComponentDefinition
   * @generated
   */
  public Adapter createComponentDefinitionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.NamedInstantiation <em>Named Instantiation</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.NamedInstantiation
   * @generated
   */
  public Adapter createNamedInstantiationAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.ImmediateInstantiation <em>Immediate Instantiation</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.ImmediateInstantiation
   * @generated
   */
  public Adapter createImmediateInstantiationAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.ComponentInstance <em>Component Instance</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.ComponentInstance
   * @generated
   */
  public Adapter createComponentInstanceAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.Range <em>Range</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.Range
   * @generated
   */
  public Adapter createRangeAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PropertyAssignment <em>Property Assignment</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PropertyAssignment
   * @generated
   */
  public Adapter createPropertyAssignmentAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.DefaultProperyAssignment <em>Default Propery Assignment</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.DefaultProperyAssignment
   * @generated
   */
  public Adapter createDefaultProperyAssignmentAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.ExplicitPropertyAssignment <em>Explicit Property Assignment</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.ExplicitPropertyAssignment
   * @generated
   */
  public Adapter createExplicitPropertyAssignmentAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PostPropertyAssignment <em>Post Property Assignment</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PostPropertyAssignment
   * @generated
   */
  public Adapter createPostPropertyAssignmentAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.InstancePropertyRef <em>Instance Property Ref</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.InstancePropertyRef
   * @generated
   */
  public Adapter createInstancePropertyRefAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.Entity <em>Entity</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.Entity
   * @generated
   */
  public Adapter createEntityAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.InstanceRef <em>Instance Ref</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.InstanceRef
   * @generated
   */
  public Adapter createInstanceRefAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.PropertyAssignmentRhs <em>Property Assignment Rhs</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.PropertyAssignmentRhs
   * @generated
   */
  public Adapter createPropertyAssignmentRhsAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.Concat <em>Concat</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.Concat
   * @generated
   */
  public Adapter createConcatAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.ConcatElem <em>Concat Elem</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.ConcatElem
   * @generated
   */
  public Adapter createConcatElemAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.RValue <em>RValue</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.RValue
   * @generated
   */
  public Adapter createRValueAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.EnumDefinition <em>Enum Definition</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.EnumDefinition
   * @generated
   */
  public Adapter createEnumDefinitionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.EnumBody <em>Enum Body</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.EnumBody
   * @generated
   */
  public Adapter createEnumBodyAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.EnumEntry <em>Enum Entry</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.EnumEntry
   * @generated
   */
  public Adapter createEnumEntryAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link com.minres.rdl.rdl.EnumProperty <em>Enum Property</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see com.minres.rdl.rdl.EnumProperty
   * @generated
   */
  public Adapter createEnumPropertyAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for the default case.
   * <!-- begin-user-doc -->
   * This default implementation returns null.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @generated
   */
  public Adapter createEObjectAdapter()
  {
    return null;
  }

} //RdlAdapterFactory
