{
        EClass eClass = (EClass)theEObject;
        T result = caseEClass(eClass);
        if (result == null) result = caseEClassifier(eClass);
        if (result == null) result = caseENamedElement(eClass);
        if (result == null) result = caseEModelElement(eClass);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }