package org.eclipse.xtend.backend.expr; import java.util.ArrayList; import java.util.List; import org.eclipse.xtend.backend.common.BackendType; import org.eclipse.xtend.backend.common.ExecutionContext; import org.eclipse.xtend.backend.common.ExpressionBase; import org.eclipse.xtend.backend.common.SourcePos; /** * * @author Arno Haase (http://www.haase-consulting.com) */ public final class CreateCachedExpression extends ExpressionBase { private final BackendType _t; private final List _paramExpr; public CreateCachedExpression (BackendType t, List paramExpr, SourcePos sourcePos) { super(sourcePos); _t = t; _paramExpr = paramExpr; } @Override public Object evaluateInternal(ExecutionContext ctx) { final List params = new ArrayList(); for (ExpressionBase e: _paramExpr) params.add (e.evaluate(ctx)); return ctx.getCreationCache().createRaw (_t, params); } }