code: @Override
  	protected T doSwitch(int classifierID, EObject theEObject)
  	{
  		switch (classifierID)
  		{
  			case XAnnotationsPackage.XANNOTATION:
  			{
  				XAnnotation xAnnotation = (XAnnotation)theEObject;
  				T result = caseXAnnotation(xAnnotation);
  				if (result == null) result = caseXExpression(xAnnotation);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case XAnnotationsPackage.XANNOTATION_ELEMENT_VALUE_PAIR:
  			{
  				XAnnotationElementValuePair xAnnotationElementValuePair = (XAnnotationElementValuePair)theEObject;
  				T result = caseXAnnotationElementValuePair(xAnnotationElementValuePair);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			default: return defaultCase(theEObject);
  		}
  	}
docs: 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