diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/Function.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/Function.java | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/Function.java b/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/Function.java deleted file mode 100644 index d704681f2..000000000 --- a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/Function.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Cloudsmith Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Cloudsmith Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.p2.ql.expression; - -import java.util.Iterator; -import org.eclipse.equinox.internal.p2.metadata.expression.*; -import org.eclipse.equinox.p2.metadata.expression.IEvaluationContext; -import org.eclipse.equinox.p2.ql.IQLExpression; - -/** - * An expression that represents a function such as filter(<expr>) or version(<expr>) - */ -public abstract class Function extends NAry implements IQLExpression { - - private Object instance; - - protected Function(Expression[] operands) { - super(operands); - } - - boolean assertSingleArgumentClass(Object v) { - return true; - } - - Object createInstance(Object arg) { - throw new UnsupportedOperationException(); - } - - final Object createInstance(String arg) { - throw new UnsupportedOperationException(); - } - - public Object evaluate(IEvaluationContext context) { - if (instance != null) - return instance; - - Expression operand = operands[0]; - Object arg = operand.evaluate(context); - if (assertSingleArgumentClass(arg)) { - Object result = createInstance(arg); - if (operand instanceof Literal || operand instanceof Parameter) - // operand won't change over time so we can cache this instance. - instance = result; - return result; - } - String what = arg == null ? "null" : ("a " + arg.getClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$ - throw new IllegalArgumentException("Cannot create a " + getOperator() + " from " + what); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public Iterator<?> evaluateAsIterator(IEvaluationContext context) { - Object value = evaluate(context); - if (!(value instanceof Iterator<?>)) - value = RepeatableIterator.create(value); - return (Iterator<?>) value; - } - - public int getExpressionType() { - return TYPE_FUNCTION; - } - - public int getPriority() { - return PRIORITY_FUNCTION; - } - - public void toString(StringBuffer bld, Variable rootVariable) { - bld.append(getOperator()); - bld.append('('); - elementsToString(bld, rootVariable, operands); - bld.append(')'); - } -} |