{
        EDataType eDataType = (EDataType)theEObject;
        T result = caseEDataType(eDataType);
        if (result == null) result = caseEClassifier(eDataType);
        if (result == null) result = caseENamedElement(eDataType);
        if (result == null) result = caseEModelElement(eDataType);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }