{
        EEnum eEnum = (EEnum)theEObject;
        T result = caseEEnum(eEnum);
        if (result == null) result = caseEDataType(eEnum);
        if (result == null) result = caseEClassifier(eEnum);
        if (result == null) result = caseENamedElement(eEnum);
        if (result == null) result = caseEModelElement(eEnum);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }