/**
  * DOCUMENT ME!
  *
  * @return DOCUMENT ME!
  */
 public boolean hasNext() {
   if (treeNodeIterator != null) {
     return treeNodeIterator.hasNext();
   } else {
     return false;
   }
 }
 /**
  * DOCUMENT ME!
  *
  * @return DOCUMENT ME!
  * @throws NoSuchElementException DOCUMENT ME!
  */
 public AttributeIterator next() throws NoSuchElementException {
   if (this.hasNext()) {
     attributeIterator.init(treeNodeIterator.next());
     return attributeIterator;
   } else {
     throw new NoSuchElementException();
   }
 }
  /**
   * DOCUMENT ME!
   *
   * @param treeNodeIterator DOCUMENT ME!
   * @return DOCUMENT ME!
   */
  public boolean init(TreeNodeIterator treeNodeIterator) {
    this.treeNodeIterator = treeNodeIterator;

    if ((treeNodeIterator != null) && treeNodeIterator.hasNext()) {
      return true;
    } else {
      treeNodeIterator = null;
      return false;
    }
  }