docs: public void matchSet(Hashtable elements, int combine_op, int compare_op) throws DBException
      {
          // Delete the old search filter
          m_filter = null;
          // If combine_op is not a logical operator, throw an exception
          if ((combine_op & LOGICAL_OPER_MASK) == 0)
          {
              throw new DBException();
              // If compare_op is not a binary operator, throw an exception
          }
          if ((compare_op & BINARY_OPER_MASK) == 0)
          {
              throw new DBException();
              // Create a vector that will hold the comparison nodes for all elements in the hashtable
          }
          Vector compareVector = new Vector();
          // For each of the elements in the hashtable, create a comparison node for the match
          for (Enumeration e = elements.keys(); e.hasMoreElements();)
          {
              // Get the element name from the enumerator
              // and its value
              String elementName = (String) e.nextElement();
              String elementValue = (String) elements.get(elementName);
              // Create a comparison node for this list and store it as the filter
              SearchBaseLeafComparison comparenode = new SearchBaseLeafComparison(elementName,
                      compare_op, elementValue);
              // Add this leaf node to the vector
              compareVector.addElement(comparenode);
          }
          // Now return a node that holds this set of leaf nodes
          m_filter = new SearchBaseNode(combine_op, compareVector);
      }