private void collectAllEPackages(EPackage startEPackage, Set<EPackage> allEPackages) {
   if (allEPackages.contains(startEPackage)) {
     return;
   }
   allEPackages.add(startEPackage);
   for (EClassifier eClassifier : startEPackage.getEClassifiers()) {
     if (eClassifier instanceof EClass) {
       for (EClass superType : ((EClass) eClassifier).getESuperTypes()) {
         if (!superType.eIsProxy()) {
           collectAllEPackages(superType.getEPackage(), allEPackages);
         }
       }
     }
   }
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 public EClass getDomainMetaElement() {
   if (domainMetaElement != null && domainMetaElement.eIsProxy()) {
     InternalEObject oldDomainMetaElement = (InternalEObject) domainMetaElement;
     domainMetaElement = (EClass) eResolveProxy(oldDomainMetaElement);
     if (domainMetaElement != oldDomainMetaElement) {
       if (eNotificationRequired())
         eNotify(
             new ENotificationImpl(
                 this,
                 Notification.RESOLVE,
                 GMFMapPackage.MAPPING_ENTRY__DOMAIN_META_ELEMENT,
                 oldDomainMetaElement,
                 domainMetaElement));
     }
   }
   return domainMetaElement;
 }