code: protected T doSwitch(EClass theEClass, EObject theEObject) {
  		if (theEClass.eContainer() == modelPackage) {
  			return doSwitch(theEClass.getClassifierID(), theEObject);
  		}
  		else {
  			List<EClass> eSuperTypes = theEClass.getESuperTypes();
  			return
  				eSuperTypes.isEmpty() ?
  					defaultCase(theEObject) :
  					doSwitch(eSuperTypes.get(0), 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