use of org.sirix.exception.SirixException in project sirix by sirixdb.
the class DBNode method setAttribute.
private DBNode setAttribute(XdmNodeWriteTrx wtx, Node<?> attribute) throws DocumentException {
if (wtx.isElement()) {
final String value = attribute.getValue().asStr().stringValue();
final QNm name = attribute.getName();
try {
wtx.insertAttribute(name, value);
} catch (final SirixException e) {
throw new DocumentException(e);
}
return new DBNode(mRtx, mCollection);
}
throw new DocumentException("No element node selected!");
}
use of org.sirix.exception.SirixException in project sirix by sirixdb.
the class DBNode method insertBefore.
private DBNode insertBefore(XdmNodeWriteTrx wtx, Node<?> node) throws DocumentException {
try {
final SubtreeBuilder builder = new SubtreeBuilder(mCollection, wtx, Insert.ASLEFTSIBLING, Collections.<SubtreeListener<? super AbstractTemporalNode<DBNode>>>emptyList());
node.parse(builder);
wtx.moveTo(builder.getStartNodeKey());
} catch (final SirixException e) {
throw new DocumentException(e);
}
return new DBNode(wtx, mCollection);
}
use of org.sirix.exception.SirixException in project sirix by sirixdb.
the class DBNode method replaceWith.
private DBNode replaceWith(XdmNodeWriteTrx wtx, Node<?> node) throws DocumentException {
if (node instanceof DBNode) {
final DBNode other = (DBNode) node;
try {
final XdmNodeReadTrx rtx = other.getTrx();
rtx.moveTo(other.getNodeKey());
wtx.replaceNode(rtx);
} catch (final SirixException e) {
throw new DocumentException(e.getCause());
}
return new DBNode(wtx, mCollection);
} else {
final SubtreeBuilder builder = createBuilder(wtx);
node.parse(builder);
try {
return replace(builder.getStartNodeKey(), wtx);
} catch (final SirixException e) {
throw new DocumentException(e.getCause());
}
}
}
use of org.sirix.exception.SirixException in project sirix by sirixdb.
the class DBNode method prepend.
private DBNode prepend(XdmNodeWriteTrx wtx, SubtreeParser parser) throws DocumentException {
try {
parser.parse(new SubtreeBuilder(mCollection, wtx, Insert.ASFIRSTCHILD, Collections.<SubtreeListener<? super AbstractTemporalNode<DBNode>>>emptyList()));
moveRtx();
wtx.moveToFirstChild();
} catch (final SirixException e) {
throw new DocumentException(e);
}
return new DBNode(wtx, mCollection);
}
use of org.sirix.exception.SirixException in project sirix by sirixdb.
the class DBNode method createBuilder.
private SubtreeBuilder createBuilder(final XdmNodeWriteTrx wtx) throws DocumentException {
SubtreeBuilder builder = null;
try {
if (wtx.hasLeftSibling()) {
wtx.moveToLeftSibling();
builder = new SubtreeBuilder(mCollection, wtx, Insert.ASRIGHTSIBLING, Collections.<SubtreeListener<? super AbstractTemporalNode<DBNode>>>emptyList());
} else {
wtx.moveToParent();
builder = new SubtreeBuilder(mCollection, wtx, Insert.ASFIRSTCHILD, Collections.<SubtreeListener<? super AbstractTemporalNode<DBNode>>>emptyList());
}
} catch (final SirixException e) {
throw new DocumentException(e);
}
return builder;
}
Aggregations