public boolean matches(List var1, String var2) {
    if (var1 == null) {
      return false;
    } else {
      Iterator var3 = var1.iterator();

      while (var3.hasNext()) {
        InvTweaksItemTreeItem var4 = (InvTweaksItemTreeItem) var3.next();

        if (var4.getName().equals(var2)) {
          return true;
        }
      }

      InvTweaksItemTreeCategory var6 = this.getCategory(var2);

      if (var6 != null) {
        Iterator var7 = var1.iterator();

        while (var7.hasNext()) {
          InvTweaksItemTreeItem var5 = (InvTweaksItemTreeItem) var7.next();

          if (var6.contains(var5)) {
            return true;
          }
        }
      }

      return var2.equals(this.rootCategory);
    }
  }
  private void log(InvTweaksItemTreeCategory var1, int var2) {
    String var3 = "";

    for (int var4 = 0; var4 < var2; ++var4) {
      var3 = var3 + "  ";
    }

    log.info(var3 + var1.getName());
    Iterator var8 = var1.getSubCategories().iterator();

    while (var8.hasNext()) {
      InvTweaksItemTreeCategory var5 = (InvTweaksItemTreeCategory) var8.next();
      this.log(var5, var2 + 1);
    }

    var8 = var1.getItems().iterator();

    while (var8.hasNext()) {
      List var9 = (List) var8.next();
      Iterator var6 = var9.iterator();

      while (var6.hasNext()) {
        InvTweaksItemTreeItem var7 = (InvTweaksItemTreeItem) var6.next();
        log.info(var3 + "  " + var7 + " " + var7.getId() + " " + var7.getDamage());
      }
    }
  }
  public void addItem(String var1, InvTweaksItemTreeItem var2) throws NullPointerException {
    ((InvTweaksItemTreeCategory) this.categories.get(var1.toLowerCase())).addItem(var2);
    Vector var3;

    if (this.itemsByName.containsKey(var2.getName())) {
      ((Vector) this.itemsByName.get(var2.getName())).add(var2);
    } else {
      var3 = new Vector();
      var3.add(var2);
      this.itemsByName.put(var2.getName(), var3);
    }

    if (this.itemsById.containsKey(Integer.valueOf(var2.getId()))) {
      ((Vector) this.itemsById.get(Integer.valueOf(var2.getId()))).add(var2);
    } else {
      var3 = new Vector();
      var3.add(var2);
      this.itemsById.put(Integer.valueOf(var2.getId()), var3);
    }
  }
  public List getItems(int var1, int var2) {
    List var3 = (List) this.itemsById.get(Integer.valueOf(var1));
    ArrayList var4 = new ArrayList();

    if (var3 != null) {
      var4.addAll(var3);
    }

    InvTweaksItemTreeItem var6;

    if (var3 != null && !var3.isEmpty()) {
      Iterator var5 = var3.iterator();

      while (var5.hasNext()) {
        var6 = (InvTweaksItemTreeItem) var5.next();

        if (var6.getDamage() != -1 && var6.getDamage() != var2) {
          var4.remove(var6);
        }
      }
    }

    if (var4.isEmpty()) {
      InvTweaksItemTreeItem var7 =
          new InvTweaksItemTreeItem(
              String.format("%d-%d", new Object[] {Integer.valueOf(var1), Integer.valueOf(var2)}),
              var1,
              var2,
              5000 + var1 * 16 + var2);
      var6 = new InvTweaksItemTreeItem(Integer.toString(var1), var1, -1, 5000 + var1 * 16);
      this.addItem(this.getRootCategory().getName(), var7);
      this.addItem(this.getRootCategory().getName(), var6);
      var4.add(var7);
      var4.add(var6);
    }

    return var4;
  }