code: public Rec setNodeIndex(int iNodeIndex, Rec record)
      {
          record = super.setNodeIndex(iNodeIndex, record);
          
          if (record == null)
              return null;
          
          if (RESET_INDEX == iNodeIndex)
          {
              m_recTargetFieldList = record;
              if (this.getNodeType() == MessageRecordDesc.NON_UNIQUE_NODE)
                  record = this.createSubNodeRecord(record);
          }
          else if (END_OF_NODES == iNodeIndex)
          {
              if (!this.isCurrentNodeRecord(record))
              {
                  record = this.updateRecord(record, true);
                  this.freeSubNodeRecord(record);
              }
              m_recTargetFieldList = null;
          }
          else
          {
              if (!this.isCurrentNodeRecord(record))
              {
                  record = this.updateRecord(record, false);
                  record = this.readCurrentRecord(record);
              }
          }
          return record;
      }
docs: Position to this node in the tree.
  @param iNodeIndex The node to position to.
  @param record The record I am moving data to. If this is null, don't position/setup the data.
  @return An error code.