public static void main(String[] args) {
    TestUser user = null;
    try {
      user = new TestUser(2899, 5213);
      user.getLogger().setEnabled(false);

      DrugDescriptionMatcher matcher = new DrugDescriptionMatcher(user);

      ArrayList descriptions = getTestDescriptions(user);
      Iterator iter = descriptions.iterator();
      while (iter.hasNext()) {
        String desc = (String) iter.next();

        // ArrayList drugs = matcher.match("Amoxicillin 250 mg cap",1);
        ArrayList drugs = matcher.match(desc);

        if (Lists.isEmpty(drugs)) {
          System.out.println(desc + ":\n--> No drugs found.");
        } else {
          System.out.println(desc + ":\n--> Found " + drugs.size() + " drugs:");

          Iterator drugIter = drugs.iterator();
          while (drugIter.hasNext()) {
            Drug drug = (Drug) drugIter.next();
            System.out.println(
                "--> ID " + drug.getID() + ": " + drug.getName() + " " + drug.getFormula());
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      user.finish();
    }
  }
  private int matches(Drug drug, String field, String text) {
    String val = drug.getString(field);
    // Debug.println("matching drug " + field
    // + " '" + val + "' against '" + text + "'");

    if (Str.isEmpty(val)) {
      // Debug.println("returning 0");
      return 0;
    }

    val = Str.removeNonAlphanumeric(val);
    text = Str.removeNonAlphanumeric(text).toLowerCase();

    ArrayList aliases = getAliases(val);
    Iterator iter = aliases.iterator();
    while (iter.hasNext()) {
      String alias = (String) iter.next();

      if (Str.isNumber(alias)) {
        if (containsDiscrete(text, alias)) return 1;
      } else {
        int pos = Str.indexOfIgnoreCase(text, alias);
        if (pos != -1) {
          // Debug.println("returning 1");
          return 1;
        }
      }
    }

    // match failed.
    if (field.equals(ROUTE)) {
      // Debug.println("route mismatch, returning 0");
      return 0;
    }

    // Debug.println("returning -100");
    return -100;
  }