@Override public void assignValue(QualifiedName qualifiedName, Object value) { if (values == null || !values.containsKey(qualifiedName)) parent.assignValue(qualifiedName, value); else values.put(qualifiedName, value); }
@Override public void assignValue(QualifiedName qualifiedName, Object value) { try { super.assignValue(qualifiedName, value); } catch (IllegalStateException e) { if (globalContext != null) { globalContext.assignValue(qualifiedName, value); } else { throw e; } } }
/** * @param assignment unused in this context but required for dispatching * @param indicator unused in this context but required for dispatching */ protected Object _assignValueTo(XVariableDeclaration variable, XAbstractFeatureCall assignment, Object value, IEvaluationContext context, CancelIndicator indicator) { if (variable.getType() != null) { JvmTypeReference type = variable.getType(); Object coerced = coerceArgumentType(value, type); context.assignValue(QualifiedName.create(variable.getName()), coerced); } else { context.assignValue(QualifiedName.create(variable.getName()), value); } return value; }
@Override public Object _assignValueTo(final JvmField jvmField, final XAbstractFeatureCall assignment, final Object value, final IEvaluationContext context, final CancelIndicator indicator) { Object _xblockexpression = null; { final EObject sourceElement = IterableExtensions.<EObject>head(this._iJvmModelAssociations.getSourceElements(jvmField)); Object _xifexpression = null; boolean _notEquals = (!Objects.equal(sourceElement, null)); if (_notEquals) { Object _xblockexpression_1 = null; { context.assignValue(QualifiedName.create(jvmField.getSimpleName()), value); _xblockexpression_1 = value; } _xifexpression = _xblockexpression_1; } else { _xifexpression = super._assignValueTo(jvmField, assignment, value, context, indicator); } _xblockexpression = _xifexpression; } return _xblockexpression; }
protected Object _doEvaluate(XForLoopExpression forLoop, IEvaluationContext context, CancelIndicator indicator) { Object iterableOrIterator = internalEvaluate(forLoop.getForExpression(), context, indicator); if (iterableOrIterator == null) return throwNullPointerException(forLoop.getForExpression(), "iterable evaluated to 'null'"); Iterator<?> iter = null; if (iterableOrIterator instanceof Iterable<?>) { iter = ((Iterable<?>) iterableOrIterator).iterator(); } else if (iterableOrIterator.getClass().isArray()) { iter = ((Iterable<?>) Conversions.doWrapArray(iterableOrIterator)).iterator(); } else { return throwClassCastException(forLoop.getForExpression(), iterableOrIterator, java.lang.Iterable.class); } IEvaluationContext forkedContext = context.fork(); QualifiedName paramName = QualifiedName.create(forLoop.getDeclaredParam().getName()); forkedContext.newValue(paramName, null); while (iter.hasNext()) { Object next = iter.next(); forkedContext.assignValue(paramName, next); internalEvaluate(forLoop.getEachExpression(), forkedContext, indicator); } return null; }