value=intToString(gotslot[2]);
if((gotslot[0] & TEXT_DTM_POOL) != 0) {  value=(String)(localStringPool.elementAt(gotslot[2])); } else if(gotslot[3]>0) {      int chunk=gotslot[2],stop=gotslot[3]; StringBuffer sb=new StringBuffer(intToString(charChunks[chunk++])); while(chunk<stop) sb.append(intToString(charChunks[chunk++])); value=sb.toString();       localStringPool.addElement(value); int localStringNumber=localStringPool.size();        gotslot[0] |= TEXT_DTM_POOL; gotslot[2] = localStringNumber-1;  nodes.writeSlot(position,gotslot[0],gotslot[1],gotslot[2],gotslot[3]); } else {  value=intToString(gotslot[2]); }
  public final String getNodeValue(int position)  {    nodes.readSlot(position, gotslot);    int nodetype=gotslot[0] & 0xFF;    String value=null;        switch(nodetype)    {    case Node.TEXT_NODE:    case Node.CDATA_SECTION_NODE: // We handle as flagged Text...      value=intToString(gotslot[2]);      break;    case Node.PROCESSING_INSTRUCTION_NODE:    case Node.COMMENT_NODE:      value=intToString(gotslot[2]);      break;    case Node.ATTRIBUTE_NODE: // Value is in kid(s)    case Node.ELEMENT_NODE:    case Node.ENTITY_REFERENCE_NODE:    default:      break;    }    return value; // DO SOMETHING FOR SAX?  }