/** * Get the value of an attribute from an object or tuple. * @param left The left input tuple. * @param right The right input object. * @param prefix The prefix input object (last value from previous extractor in a chain). * @param state The working memory. */ public Object getValue(final Tuple left, final Object right, final Object prefix, final IOAVState state) { // Fetch the parameter values. Object[] paramvalues = new Object[extractors.length]; for(int i=0; i<paramvalues.length; i++) { //paramvalues[i] = extractors[i].getValue(left, right, prefix, state); final IValueExtractor ex = extractors[i]; paramvalues[i] = new ILazyValue() { public Object getValue() { return ex.getValue(left, right, prefix, state); } }; } // Invoke the function and return the value. Object ret = function.invoke(paramvalues, state); // System.out.println("Funcall result: "+this+" "+ret); return ret; }
/** * Get the value of an attribute from an object or tuple. * @param left The left input tuple. * @param right The right input object. * @param prefix The prefix input object (last value from previous extractor in a chain). * @param state The working memory. */ public Object getValue(final Tuple left, final Object right, final Object prefix, final IOAVState state) { // Fetch the parameter values. Object[] paramvalues = new Object[extractors.length]; for(int i=0; i<paramvalues.length; i++) { //paramvalues[i] = extractors[i].getValue(left, right, prefix, state); final IValueExtractor ex = extractors[i]; paramvalues[i] = new ILazyValue() { public Object getValue() { return ex.getValue(left, right, prefix, state); } }; } // Invoke the function and return the value. Object ret = function.invoke(paramvalues, state); // System.out.println("Funcall result: "+this+" "+ret); return ret; }