public void insert(MutableTreeNode mutableTreeNode, int param) {
   if (mutableTreeNode != null) {
     ChildTags.add(param, mutableTreeNode);
     mutableTreeNode.setParent(this);
     ChildrenCount++;
     fireTagAdded(new XMLPath());
   }
 }
 /**
  * Adds NewChild as a child tag, and sets it's parent to be this tag.
  *
  * @param NewChild The new tag to add.
  * @return The old parent of NewChild.
  */
 public XMLTag addTag(XMLTag NewChild) {
   if (NewChild != null) {
     ChildTags.add(NewChild);
     NewChild.setParent(this);
     ChildrenCount++;
     fireTagAdded(new XMLPath());
   }
   return NewChild;
 }
 /**
  * Adds NewChild as a child, but doesn't alter NewChild's parent status.
  *
  * <p>This means that the child tag will turn up in a search of this tags children, but this tag
  * will not be locatable from the child.
  *
  * @param NewChild The tag to share.
  * @return The real parent of NewChild.
  */
 public XMLTag shareTag(XMLTag NewChild) {
   if (NewChild != null) {
     ChildTags.add(NewChild);
     NewChild.addXMLTagListener(this);
     ChildrenCount++;
     fireTagAdded(new XMLPath());
   }
   return NewChild.getParentTag();
 }
 /**
  * Adds all of NewChildren to this tag, and sets their parent tags to be this one.
  *
  * @param NewChildren The new tags to add.
  */
 public void addTags(XMLTag[] NewChildren) {
   if (NewChildren != null && NewChildren.length > 0) {
     for (int i = 0; i < NewChildren.length; i++) {
       ChildTags.add(NewChildren[i]);
       NewChildren[i].setParent(this);
       ChildrenCount++;
     }
     fireTagAdded(new XMLPath());
   }
 }
 public void tagAdded(XMLTagEvent e) {
   fireTagAdded(e.getPath());
 }