Ejemplo n.º 1
0
 private void setReference(
     DelayedReference reference,
     Object singleForeachResult,
     IModelAdapter modelAdapter,
     ModelElementProxy foreachTargetElement,
     IModelInjector injector,
     int position)
     throws ModelElementCreationException, ModelAdapterException {
   // add the parsed part to the object first try to resolve if there is a model element that
   // already
   // exists and can be reused
   reference.setRealValue(injector.createOrResolve(foreachTargetElement, null, null));
   // by default use partition of reference.getModelElement
   if (reference.getModelElement() instanceof EObject
       && reference.getRealValue() instanceof EObject) {
     ((EObject) reference.getModelElement())
         .eResource()
         .getContents()
         .add((EObject) reference.getRealValue());
   }
   modelAdapter.set(
       reference.getModelElement(),
       reference.getPropertyName(),
       reference.getRealValue(),
       position);
 }
Ejemplo n.º 2
0
 private ForEachExecution produceNewForEachContext(
     DelayedReference reference, ForeachProductionResult producedResult) {
   ForEachExecution newContext = TextblocksFactory.eINSTANCE.createForEachExecution();
   newContext.setForeachPedicatePropertyInit(
       (ForeachPredicatePropertyInit) reference.getQueryElement());
   newContext.setSourceModelElement((EObject) reference.getModelElement());
   newContext.setContextElement(
       (EObject) producedResult.getForeachExpressionResultForWhichProduced());
   newContext.setTemplateUsedForProduction(producedResult.getTemplateUsedForProduction());
   newContext.setResultModelElement((EObject) reference.getRealValue());
   return newContext;
 }