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);
    }
  }
  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);
    }
  }