code: public void matchSet(String[] ElementNames, String[] ElementValues, int op) throws DBException
      {
          // Delete the old search filter
          m_filter = null;
          // If this is not a logical operator, throw an exception
          if ((op & LOGICAL_OPER_MASK) == 0)
          {
              throw new DBException();
              // Create a vector that will hold the leaf nodes for all elements in the hashtable
          }
          Vector leafVector = new Vector();
          // For each of the elements in the array, create a leaf node for the match
          int numnames = ElementNames.length;
          for (int i = 0; i < numnames; i++)
          {
              // Create a leaf node for this list and store it as the filter
              SearchBaseLeaf leafnode = new SearchBaseLeaf(ElementNames[i], IN, ElementValues[i]);
              // Add this leaf node to the vector
              leafVector.addElement(leafnode);
          }
          // Now return a node that holds this set of leaf nodes
          m_filter = new SearchBaseNode(op, leafVector);
      }
docs: Change the search filter to one that specifies a set of elements and their values
  that must match, and the operator to use to combine the elements.
  Each element name is compared for an equal match to the value, and all
  comparisons are combined by the specified logical operator (OR or AND).
  The old search filter is deleted.
  
  @param ElementNames is an array of names of elements to be tested
  @param ElementValues is an array of values for the corresponding element
  @param op is the logical operator to be used to combine the comparisons
  @exception DBException