{
        EReference eReference = (EReference)theEObject;
        T result = caseEReference(eReference);
        if (result == null) result = caseEStructuralFeature(eReference);
        if (result == null) result = caseETypedElement(eReference);
        if (result == null) result = caseENamedElement(eReference);
        if (result == null) result = caseEModelElement(eReference);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }