/** * If the <tt>reference</tt>'s {@link DelayedReference#getModelElement() model element} is a * proxy, resolve it first. */ private void resolveModelElementProxy(DelayedReference reference, IModelAdapter modelAdapter) throws ModelAdapterException, ModelElementCreationException { if (reference.getModelElement() instanceof ModelElementProxy) { ModelElementProxy proxy = (ModelElementProxy) reference.getModelElement(); if (proxy.getRealObject() == null) { Object result; result = modelAdapter.createOrResolveElement( proxy.getType(), proxy.getAttributeMap(), null, null, false, true); if (result instanceof EObject) { reference.setModelElement(result); } } else { reference.setModelElement(proxy.getRealObject()); } } }