code: private void removeAttribute(int list, TreeHtmlAttributeInfo attr, RemoveInfo removes)
      {
          assert(attr != null);
  
          // get the correct array list
          ArrayList al = _lists[list];
          assert(al != null);
  
          // remove the attributes from the array list -- this should never fail
          boolean removed = al.remove(attr);
          assert(removed) : "Unable to remove attribute:" + attr.getAttribute() + "=" + attr.getValue();
  
          // if there was a list of removed attributes we need to possibly add one back
          // We do this by walking the removes list and when we find an attribute with the
          // same name and supporting the same list type, we add it to the list.
          if (removes != null) {
  
              // walk the remove list looking for an attribute with the same name
              int cnt = removes.removes.size();
              for (int i = 0; i < cnt; i++) {
                  TreeHtmlAttributeInfo a = (TreeHtmlAttributeInfo) removes.removes.get(i);
                  if (attr.getAttribute().equals(a.getAttribute())) {
  
                      // based upon the type we are removing, if the matching attribute supports the type
                      // then we add it back.
                      switch (list) {
                          case TreeHtmlAttributeInfo.HTML_LOCATION_DIV:
                              if (a.isOnDiv() && !al.contains(a))
                                  al.add(a);
                              break;
                          case TreeHtmlAttributeInfo.HTML_LOCATION_ICON:
                              if (a.isOnIcon() && !al.contains(a))
                                  al.add(a);
                              break;
                          case TreeHtmlAttributeInfo.HTML_LOCATION_SELECTION_LINK:
                              if (a.isOnSelectionLink() && !al.contains(a))
                                  al.add(a);
                              break;
                      }
                  }
              }
          }
      }
docs: This method will add an attribute to the list of inheritted attributes.
  @param list
  @param attr
  @param removes