/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.sap.emf.ocl.oclwithhiddenopposites.utilities.util;

import com.sap.emf.ocl.oclwithhiddenopposites.utilities.*;

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;

import org.eclipse.ocl.utilities.Visitor;

/**
 * <!-- 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.sap.emf.ocl.oclwithhiddenopposites.utilities.UtilitiesPackage
 * @generated
 */
public class UtilitiesAdapterFactory extends AdapterFactoryImpl {
	/**
         * The cached model package.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @generated
         */
	protected static UtilitiesPackage modelPackage;

	/**
         * Creates an instance of the adapter factory.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @generated
         */
	public UtilitiesAdapterFactory() {
                if (modelPackage == null) {
                        modelPackage = UtilitiesPackage.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 UtilitiesSwitch<Adapter> modelSwitch =
		new UtilitiesSwitch<Adapter>() {
                        @Override
                        public <T> Adapter caseVisitorWithHiddenOpposite(VisitorWithHiddenOpposite<T> object) {
                                return createVisitorWithHiddenOppositeAdapter();
                        }
                        @Override
                        public <T, C, O, P, EL, PM, S, COA, SSA, CT> Adapter caseVisitor(Visitor<T, C, O, P, EL, PM, S, COA, SSA, CT> object) {
                                return createVisitorAdapter();
                        }
                        @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.sap.emf.ocl.oclwithhiddenopposites.utilities.VisitorWithHiddenOpposite <em>Visitor With Hidden Opposite</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.sap.emf.ocl.oclwithhiddenopposites.utilities.VisitorWithHiddenOpposite
         * @generated
         */
	public Adapter createVisitorWithHiddenOppositeAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.eclipse.ocl.utilities.Visitor <em>Visitor</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 org.eclipse.ocl.utilities.Visitor
         * @generated
         */
	public Adapter createVisitorAdapter() {
                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;
        }

} //UtilitiesAdapterFactory
