void addText(FormatJavadocText text) {
   if (this.nodes != null) {
     FormatJavadocText[] textHierarchy = getTextHierarchy(text, text.depth);
     if (textHierarchy != null) {
       FormatJavadocText lastText = textHierarchy[text.depth];
       if (lastText != null) {
         lastText.appendText(text);
         for (int i = text.depth - 1; i >= 0; i--) {
           textHierarchy[i].sourceEnd = text.sourceEnd;
         }
         this.sourceEnd = text.sourceEnd;
         return;
       }
       if (text.depth > 0) {
         FormatJavadocText parentText = textHierarchy[text.depth - 1];
         if (parentText != null) {
           parentText.appendText(text);
           for (int i = text.depth - 2; i >= 0; i--) {
             textHierarchy[i].sourceEnd = text.sourceEnd;
           }
           this.sourceEnd = text.sourceEnd;
           return;
         }
       }
     }
   }
   if (text.isHtmlTag()) {
     switch (text.getHtmlTagID()) {
       case JAVADOC_CODE_TAGS_ID:
         text.linesBefore = this.nodesPtr == -1 ? 0 : 2;
         break;
       case JAVADOC_SEPARATOR_TAGS_ID:
         text.linesBefore = 1;
         break;
         //	    	case JAVADOC_BREAK_TAGS_ID:
         //				if (this.nodesPtr >= 0) text.linesBefore = 1;
     }
   }
   addNode(text);
   if (isImmutable()) {
     text.immutable = true;
   }
 }