code: protected int _firstch(int identity)
    {
  
      // Boiler-plate code for each of the _xxx functions, except for the array.
      int info = (identity >= m_size) ? NOTPROCESSED : m_firstch.elementAt(identity);
  
      // Check to see if the information requested has been processed, and,
      // if not, advance the iterator until we the information has been
      // processed.
      while (info == NOTPROCESSED)
      {
        boolean isMore = nextNode();
  
        if (identity >= m_size &&!isMore)
          return NULL;
        else
        {
          info = m_firstch.elementAt(identity);
          if(info == NOTPROCESSED && !isMore)
            return NULL;
        }
      }
  
      return info;
    }
docs: Get the first child for the given node identity.
  
  @param identity The node identity.
  
  @return The first child identity, or DTM.NULL.