NodeWrapper implements SiblingCountingNode { @Override public final CharSequence getStringValueCS() { String value = ""; try { final NodeReadTrx rtx = createRtxAndMove(); switch (mNodeKind) { case DOCUMENT: case ELEMENT: value = expandString(); break; case ATTRIBUTE: value = emptyIfNull(rtx.getValue()); break; case TEXT: value = rtx.getValue(); break; case COMMENT: case PROCESSING_INSTRUCTION: value = emptyIfNull(rtx.getValue()); break; default: value = ""; } rtx.close(); } catch (final SirixException exc) { LOGGER.error(exc.toString()); } return value; } NodeWrapper(final DocumentWrapper docWrapper, final long nodeKeyToStart); @Override Value atomize(); @Override int compareOrder(final NodeInfo node); void copy(final Receiver out, final int copyOption,
			final int locationId); @Override void generateId(final FastStringBuffer buf); @Override String getAttributeValue(final int fingerprint); @Override String getBaseURI(); @Override int getColumnNumber(); @Override Configuration getConfiguration(); @Override int[] getDeclaredNamespaces(final int[] buffer); @Override String getDisplayName(); @Override long getDocumentNumber(); @Override DocumentInfo getDocumentRoot(); @Override int getFingerprint(); @Override int getLineNumber(); @Override String getLocalPart(); @Override int getNameCode(); @Override NamePool getNamePool(); @Override int getNodeKind(); @Override NodeInfo getParent(); @Override String getPrefix(); @Override NodeInfo getRoot(); @Override final String getStringValue(); @Override final CharSequence getStringValueCS(); @Override String getSystemId(); int getTypeAnnotation(); @Override String getURI(); @Override boolean hasChildNodes(); @Override boolean isId(); @Override boolean isIdref(); @Override boolean isNilled(); @Override boolean isSameNodeInfo(final NodeInfo pOther); @Override AxisIterator iterateAxis(final byte axisNumber); @Override AxisIterator iterateAxis(final byte axisNumber, final NodeTest nodeTest); @Override void setSystemId(final String systemId); @Override SequenceIterator getTypedValue(); @Override int getSiblingPosition(); long getKey();  }
@Test public void testGetStringValueCS() { assertEquals("oops1foooops2baroops3", node.getStringValueCS()); AxisIterator iterator = node.iterateAxis(Axis.DESCENDANT); node = (NodeWrapper) iterator.next(); assertEquals("oops1foooops2baroops3", node.getStringValueCS()); iterator = node.iterateAxis(Axis.NAMESPACE); NamespaceNodeImpl namespace = (NamespaceNodeImpl) iterator.next(); while (!"ns".equals(namespace.getStringValueCS()) && namespace != null) { namespace = (NamespaceNodeImpl) iterator.next(); } if (namespace == null) { fail("namespace is null!"); } else { assertEquals("ns", namespace.getStringValueCS()); } final NodeWrapper attrib = (NodeWrapper) node.iterateAxis(Axis.ATTRIBUTE) .next(); assertEquals("j", attrib.getStringValueCS()); final NodeWrapper text = (NodeWrapper) node.iterateAxis(Axis.CHILD).next(); assertEquals("oops1", text.getStringValueCS()); }