if (length > 0)
{
if (m_xstrf != null)
return m_xstrf.newstr(m_chars, offset, length);
else
return new XMLStringDefault(m_chars.getString(offset, length));
}
else
return EMPTY_XML_STR;
}
else
return EMPTY_XML_STR;
}
else if (DTM.TEXT_NODE == type || DTM.CDATA_SECTION_NODE == type)
{
int dataIndex = m_dataOrQName.elementAt(identity);
if (dataIndex >= 0)
{
if (m_xstrf != null)
return m_xstrf.newstr(m_chars, dataIndex >>> TEXT_LENGTH_BITS,
dataIndex & TEXT_LENGTH_MAX);
else
return new XMLStringDefault(m_chars.getString(dataIndex >>> TEXT_LENGTH_BITS,
dataIndex & TEXT_LENGTH_MAX));
}
else
{
if (m_xstrf != null)
return m_xstrf.newstr(m_chars, m_data.elementAt(-dataIndex),
m_data.elementAt(-dataIndex+1));
else
return new XMLStringDefault(m_chars.getString(m_data.elementAt(-dataIndex),
m_data.elementAt(-dataIndex+1)));
}
}
else
{
int dataIndex = m_dataOrQName.elementAt(identity);
if (dataIndex < 0)
{
dataIndex = -dataIndex;
dataIndex = m_data.elementAt(dataIndex + 1);
}
if (m_xstrf != null)
return m_xstrf.newstr((String)m_values.elementAt(dataIndex));
else
return new XMLStringDefault((String)m_values.elementAt(dataIndex));
}
}