private void handleMultipleResults() {
    org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EObject> list = null;
    Object temp = container.eGet(reference);
    if (temp instanceof org.eclipse.emf.common.util.EList<?>) {
      list = org.emftext.sdk.concretesyntax.resource.cs.util.CsCastUtil.cast(temp);
    }

    boolean first = true;
    for (org.emftext.sdk.concretesyntax.resource.cs.ICsReferenceMapping<ReferenceType> mapping :
        result.getMappings()) {
      if (first) {
        first = false;
      } else if (list != null) {
        addResultToList(mapping, proxy, list);
      } else {
        new org.emftext.sdk.concretesyntax.resource.cs.util.CsRuntimeUtil()
            .logError(
                container.eClass().getName()
                    + "."
                    + reference.getName()
                    + " has multiplicity 1 but was resolved to multiple elements",
                null);
      }
    }
  }
  protected <
          ContainerType extends org.eclipse.emf.ecore.EObject,
          ReferenceType extends org.eclipse.emf.ecore.EObject>
      void registerContextDependentProxy(
          final ASPM.resource.ASPM.mopp.ASPMContextDependentURIFragmentFactory<
                  ContainerType, ReferenceType>
              factory,
          final ContainerType container,
          final org.eclipse.emf.ecore.EReference reference,
          final String id,
          final org.eclipse.emf.ecore.EObject proxy) {
    final int position;
    if (reference.isMany()) {
      position = ((java.util.List<?>) container.eGet(reference)).size();
    } else {
      position = -1;
    }

    postParseCommands.add(
        new ASPM.resource.ASPM.IASPMCommand<ASPM.resource.ASPM.IASPMTextResource>() {
          public boolean execute(ASPM.resource.ASPM.IASPMTextResource resource) {
            if (resource == null) {
              // the resource can be null if the parser is used for code completion
              return true;
            }
            resource.registerContextDependentProxy(
                factory, container, reference, id, proxy, position);
            return true;
          }
        });
  }