docs: public void matchSet(Hashtable elements, int combine_op,
                           int compare_op) throws DBException
      {
  
          // Delete the old search criteria
          criteria = new Criteria();
  
          // If compare_op is not a binary operator, throw an exception
          if ((compare_op & BINARY_OPER_MASK) == 0)
          {
              throw new DBException();
          }
  
          if (combine_op == AND)
          {
              // combine all value pairs by an AND
  
              // 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);
  
                  switch (compare_op)
                  {
  
                      case LIKE:
                          {
                              criteria.addLike(elementName, elementValue);
  
                              break;
                          }
  
                      case EQUAL:
                          {
                              criteria.addEqualTo(elementName, elementValue);
  
                              break;
                          }
  
                      case NOT_EQUAL:
                          {
                              criteria.addNotEqualTo(elementName, elementValue);
  
                              break;
                          }
  
                      case LESS_THAN:
                          {
                              criteria.addLessThan(elementName, elementValue);
  
                              break;
                          }
  
                      case GREATER_THAN:
                          {
                              criteria.addGreaterThan(elementName, elementValue);
  
                              break;
                          }
  
                      case GREATER_EQUAL:
                          {
                              criteria.addGreaterOrEqualThan(elementName, elementValue);
  
                              break;
                          }
  
                      case LESS_EQUAL:
                          {
                              criteria.addLessOrEqualThan(elementName, elementValue);
  
                              break;
                          }
  
                      default:
                          {
                              throw new DBException("Unsupported binary operation in OJBSearchFilter!");
                          }
                  }						   // end of switch
              }							   // end of for
          }
          else if (combine_op == OR)
          {
              // combine all value pairs by an OR
              // 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);
  
                  switch (compare_op)
                  {
  
                      case LIKE:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addLike(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case EQUAL:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addEqualTo(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case NOT_EQUAL:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addNotEqualTo(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case LESS_THAN:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addLessThan(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case GREATER_THAN:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addGreaterThan(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case GREATER_EQUAL:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addGreaterOrEqualThan(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      case LESS_EQUAL:
                          {
                              Criteria tempCrit = new Criteria();
  
                              tempCrit.addLessOrEqualThan(elementName, elementValue);
                              criteria.addOrCriteria(tempCrit);
  
                              break;
                          }
  
                      default:
                          {
                              throw new DBException("Unsupported binary operation in OJBSearchFilter!");
                          }
                  }					   // end of switch
              }						   // end of for
  
          }
          else
          {
  
              // combine_op is not a logical operator, throw an exception
              throw new DBException();
          }
      }