Exemplo n.º 1
0
  /**
   * DOCUMENT ME!
   *
   * @param callstack DOCUMENT ME!
   * @param interpreter DOCUMENT ME!
   * @param parameterNode DOCUMENT ME!
   * @return DOCUMENT ME!
   * @throws EvalError DOCUMENT ME!
   */
  public Object filter(CallStack callstack, Interpreter interpreter, Node parameterNode)
      throws EvalError {
    int col = getColumn();

    if (parameterNode instanceof BSHArguments) {
      Object[] keys = ((BSHArguments) parameterNode).getArguments(callstack, interpreter);

      for (int i = 0; i < keys.length; i++) {
        keys[i] = Primitive.unwrap(keys[i]);
      }

      Key key = null;

      if ((keys.length == 1) && (keys[0] == Dataset.ANY)) {
        key = Dataset.ANY;
      } else {
        key = new Key(keys);
      }

      Object value2 = new FilteredIndexField(this.indexView, key, col);
      interpreter.getRoot().setValue2(value2);

      return value2;
    }

    return null;
  }