From: <tho...@us...> - 2010-10-19 17:29:14
|
Revision: 3823 http://bigdata.svn.sourceforge.net/bigdata/?rev=3823&view=rev Author: thompsonbry Date: 2010-10-19 17:29:08 +0000 (Tue, 19 Oct 2010) Log Message: ----------- Added a Constant constructor variant which accept the name of the variable bound to that constant. BOpContext knows how to use this to insert the constant into the binding set in bind(...) [that will be in a separate commit]. Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOp.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOpBase.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/Constant.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOp.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOp.java 2010-10-19 16:24:57 UTC (rev 3822) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOp.java 2010-10-19 17:29:08 UTC (rev 3823) @@ -108,6 +108,18 @@ <T> T getProperty(final String name, final T defaultValue); /** + * Unconditionally sets the property. + * + * @param name + * The name. + * @param value + * The value. + * + * @return A copy of this {@link BOp} on which the property has been set. + */ + BOp setProperty(final String name, final Object value); + + /** * Return the value of the named annotation. * * @param name Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOpBase.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOpBase.java 2010-10-19 16:24:57 UTC (rev 3822) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/BOpBase.java 2010-10-19 17:29:08 UTC (rev 3823) @@ -438,16 +438,6 @@ } - /** - * Unconditionally sets the property. - * - * @param name - * The name. - * @param value - * The value. - * - * @return A copy of this {@link BOp} on which the property has been set. - */ public BOpBase setProperty(final String name, final Object value) { final BOpBase tmp = this.clone(); Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/Constant.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/Constant.java 2010-10-19 16:24:57 UTC (rev 3822) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/Constant.java 2010-10-19 17:29:08 UTC (rev 3823) @@ -37,6 +37,16 @@ private static final long serialVersionUID = -2967861242470442497L; final private E value; + + public interface Annotations extends ImmutableBOp.Annotations { + + /** + * The {@link IVariable} which is bound to that constant value + * (optional). + */ + String VAR = Constant.class.getName() + ".var"; + + } final public boolean isVar() { @@ -72,18 +82,32 @@ this.value = op.value; } - + + public Constant(final IVariable<E> var, final E value) { + + super(NOARGS, NV.asMap(new NV(Annotations.VAR, var))); + + if (var == null) + throw new IllegalArgumentException(); + + if (value == null) + throw new IllegalArgumentException(); + + this.value = value; + + } + public Constant(final E value) { - + super(NOARGS, NOANNS); - + if (value == null) throw new IllegalArgumentException(); - + this.value = value; - + } - + /** * Clone is overridden to reduce heap churn. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |