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; } }); }