docs: 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);
  		}
  	}