Search in sources :

Example 41 with QNm

use of org.brackit.xquery.atomic.QNm in project sirix by sirixdb.

the class DocumentCreater method createWithoutAttributes.

/**
 * Create simple test document containing all supported node kinds except the attributes.
 *
 * @param paramWtx {@link XdmNodeWriteTrx} to write to
 * @throws SirixException if anything went wrong
 */
public static void createWithoutAttributes(final XdmNodeWriteTrx wtx) throws SirixException {
    assertNotNull(wtx);
    wtx.moveToDocumentRoot();
    wtx.insertElementAsFirstChild(new QNm("ns", "p", "a"));
    wtx.insertTextAsFirstChild("oops1");
    wtx.insertElementAsRightSibling(new QNm("b"));
    wtx.insertTextAsFirstChild("foo");
    wtx.insertElementAsRightSibling(new QNm("c"));
    wtx.moveToParent();
    wtx.insertTextAsRightSibling("oops2");
    wtx.insertElementAsRightSibling(new QNm("b"));
    wtx.insertElementAsFirstChild(new QNm("c"));
    wtx.insertTextAsRightSibling("bar");
    wtx.moveToParent();
    wtx.insertTextAsRightSibling("oops3");
    wtx.moveToDocumentRoot();
}
Also used : QNm(org.brackit.xquery.atomic.QNm)

Example 42 with QNm

use of org.brackit.xquery.atomic.QNm in project sirix by sirixdb.

the class OverallTest method testJustEverything.

@Test
public void testJustEverything() throws SirixException {
    holder.getWriter().insertElementAsFirstChild(new QNm(getString()));
    holder.getWriter().insertElementAsFirstChild(new QNm(getString()));
    for (int i = 0; i < ELEMENTS; i++) {
        if (ran.nextBoolean()) {
            switch(holder.getWriter().getKind()) {
                case ELEMENT:
                    holder.getWriter().setName(new QNm(getString()));
                    break;
                case ATTRIBUTE:
                    holder.getWriter().setName(new QNm(getString()));
                    holder.getWriter().setValue(getString());
                    break;
                case NAMESPACE:
                    holder.getWriter().setName(new QNm(getString()));
                    break;
                case PROCESSING_INSTRUCTION:
                case TEXT:
                case COMMENT:
                    holder.getWriter().setValue(getString());
                    break;
                default:
            }
        } else {
            if (holder.getWriter().getKind() == Kind.ELEMENT) {
                if (holder.getWriter().getParentKey() == Fixed.DOCUMENT_NODE_KEY.getStandardProperty()) {
                    assertTrue(holder.getWriter().moveToFirstChild().hasMoved());
                    assertTrue(holder.getWriter().moveToFirstChild().hasMoved());
                }
                if (ran.nextBoolean()) {
                    holder.getWriter().insertElementAsFirstChild(new QNm(getString()));
                } else {
                    holder.getWriter().insertElementAsRightSibling(new QNm(getString()));
                }
                if (ran.nextBoolean()) {
                    holder.getWriter().insertAttribute(new QNm(getString()), getString());
                    holder.getWriter().moveToParent();
                }
                if (ran.nextBoolean()) {
                    holder.getWriter().insertNamespace(new QNm(getString(), getString()));
                    holder.getWriter().moveToParent();
                }
            }
            if (ran.nextInt(100) < REMOVEPERCENTAGE) {
                holder.getWriter().remove();
            }
            if (ran.nextInt(100) < COMMITPERCENTAGE) {
                holder.getWriter().commit();
            }
            do {
                final int newKey = ran.nextInt(i + 1) + 1;
                if (newKey == Fixed.DOCUMENT_NODE_KEY.getStandardProperty()) {
                    holder.getWriter().moveToFirstChild();
                    holder.getWriter().moveToFirstChild();
                } else {
                    holder.getWriter().moveTo(newKey);
                    if (holder.getWriter().getParentKey() == Fixed.DOCUMENT_NODE_KEY.getStandardProperty()) {
                        holder.getWriter().moveToFirstChild();
                    }
                }
            } while (holder.getWriter() == null);
            if (holder.getWriter().getKind() != Kind.ELEMENT) {
                holder.getWriter().moveToParent();
            }
        }
    }
    final long key = holder.getWriter().getNodeKey();
    holder.getWriter().remove();
    holder.getWriter().insertElementAsFirstChild(new QNm(getString()));
    holder.getWriter().moveTo(key);
    holder.getWriter().commit();
    holder.getWriter().close();
}
Also used : QNm(org.brackit.xquery.atomic.QNm) Test(org.junit.Test)

Example 43 with QNm

use of org.brackit.xquery.atomic.QNm in project sirix by sirixdb.

the class PathSummaryTest method testSetQNmFourthHelper.

private void testSetQNmFourthHelper(final PathSummaryReader pSummary) throws SirixException {
    final Axis axis = new DescendantAxis(pSummary);
    PathSummaryReader summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ELEMENT, summary.getPathKind());
    assertEquals(1L, summary.getNodeKey());
    assertEquals(7L, summary.getFirstChildKey());
    assertEquals(-1L, summary.getLeftSiblingKey());
    assertEquals(-1L, summary.getRightSiblingKey());
    assertEquals(new QNm("ns", "p", "a"), axis.getTrx().getName());
    assertEquals(1, summary.getLevel());
    assertEquals(4, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ELEMENT, summary.getPathKind());
    assertEquals(7L, summary.getNodeKey());
    assertEquals(8L, summary.getFirstChildKey());
    assertEquals(-1L, summary.getLeftSiblingKey());
    assertEquals(4L, summary.getRightSiblingKey());
    assertEquals(new QNm("d"), axis.getTrx().getName());
    assertEquals(2, summary.getLevel());
    assertEquals(1, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ELEMENT, summary.getPathKind());
    assertEquals(8L, summary.getNodeKey());
    assertEquals(-1L, summary.getFirstChildKey());
    assertEquals(-1L, summary.getLeftSiblingKey());
    assertEquals(-1L, summary.getRightSiblingKey());
    assertEquals(new QNm("c"), axis.getTrx().getName());
    assertEquals(3, summary.getLevel());
    assertEquals(0, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ELEMENT, summary.getPathKind());
    assertEquals(4L, summary.getNodeKey());
    assertEquals(7L, summary.getLeftSiblingKey());
    assertEquals(3L, summary.getRightSiblingKey());
    assertEquals(6L, summary.getFirstChildKey());
    assertEquals(new QNm("b"), axis.getTrx().getName());
    assertEquals(2, summary.getLevel());
    assertEquals(2, summary.getChildCount());
    assertEquals(2, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ATTRIBUTE, summary.getPathKind());
    assertEquals(6L, summary.getNodeKey());
    assertEquals(-1L, summary.getLeftSiblingKey());
    assertEquals(5L, summary.getRightSiblingKey());
    assertEquals(-1L, summary.getFirstChildKey());
    assertEquals(new QNm("ns", "", "x"), axis.getTrx().getName());
    assertEquals(3, summary.getLevel());
    assertEquals(0, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ELEMENT, summary.getPathKind());
    assertEquals(5L, summary.getNodeKey());
    assertEquals(6L, summary.getLeftSiblingKey());
    assertEquals(-1L, summary.getRightSiblingKey());
    assertEquals(-1L, summary.getFirstChildKey());
    assertEquals(new QNm("c"), axis.getTrx().getName());
    assertEquals(3, summary.getLevel());
    assertEquals(0, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.ATTRIBUTE, summary.getPathKind());
    assertEquals(3L, summary.getNodeKey());
    assertEquals(4L, summary.getLeftSiblingKey());
    assertEquals(2L, summary.getRightSiblingKey());
    assertEquals(-1L, summary.getFirstChildKey());
    assertEquals(new QNm("i"), axis.getTrx().getName());
    assertEquals(2, summary.getLevel());
    assertEquals(0, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary != null);
    assertEquals(Kind.NAMESPACE, summary.getPathKind());
    assertEquals(2L, summary.getNodeKey());
    assertEquals(3L, summary.getLeftSiblingKey());
    assertEquals(-1L, summary.getRightSiblingKey());
    assertEquals(-1L, summary.getFirstChildKey());
    assertEquals(new QNm("ns", "p", ""), axis.getTrx().getName());
    assertEquals(2, summary.getLevel());
    assertEquals(0, summary.getChildCount());
    assertEquals(1, summary.getReferences());
    summary = next(axis);
    assertTrue(summary == null);
}
Also used : QNm(org.brackit.xquery.atomic.QNm) PathSummaryReader(org.sirix.index.path.summary.PathSummaryReader) DescendantAxis(org.sirix.axis.DescendantAxis) Axis(org.sirix.api.Axis) DescendantAxis(org.sirix.axis.DescendantAxis)

Example 44 with QNm

use of org.brackit.xquery.atomic.QNm in project sirix by sirixdb.

the class PathSummaryTest method testSetQNmFirst.

/**
 * Test setQNm on test document (does not find a corresponding path summary after rename).
 *
 * @throws SirixException if Sirix fails
 */
@Test
public void testSetQNmFirst() throws SirixException {
    wtx.moveTo(9);
    wtx.setName(new QNm("foo"));
    PathSummaryReader pathSummary = wtx.getPathSummary();
    pathSummary.moveToDocumentRoot();
    testSetQNmFirstHelper(pathSummary);
    wtx.commit();
    wtx.close();
    pathSummary = holder.getResourceManager().openPathSummary();
    testSetQNmFirstHelper(pathSummary);
    pathSummary.close();
}
Also used : QNm(org.brackit.xquery.atomic.QNm) PathSummaryReader(org.sirix.index.path.summary.PathSummaryReader) Test(org.junit.Test)

Example 45 with QNm

use of org.brackit.xquery.atomic.QNm in project sirix by sirixdb.

the class PathSummaryTest method testSecondMoveToFirstChild.

@Test
public void testSecondMoveToFirstChild() throws SirixException {
    wtx.moveTo(9);
    wtx.insertElementAsFirstChild(new QNm("foo"));
    wtx.insertElementAsFirstChild(new QNm("bar"));
    PathSummaryReader pathSummary = wtx.getPathSummary();
    pathSummary.moveToDocumentRoot();
    wtx.moveTo(5);
    wtx.moveSubtreeToRightSibling(9);
    pathSummary = wtx.getPathSummary();
    pathSummary.moveToDocumentRoot();
    wtx.commit();
    wtx.close();
    final XdmNodeReadTrx rtx = holder.getResourceManager().beginNodeReadTrx();
    rtx.close();
}
Also used : QNm(org.brackit.xquery.atomic.QNm) XdmNodeReadTrx(org.sirix.api.XdmNodeReadTrx) PathSummaryReader(org.sirix.index.path.summary.PathSummaryReader) Test(org.junit.Test)

Aggregations

QNm (org.brackit.xquery.atomic.QNm)89 XdmNodeReadTrx (org.sirix.api.XdmNodeReadTrx)20 Test (org.junit.Test)18 QueryException (org.brackit.xquery.QueryException)15 XdmNodeWriteTrx (org.sirix.api.XdmNodeWriteTrx)15 DBNode (org.sirix.xquery.node.DBNode)12 QName (javax.xml.namespace.QName)11 PathSummaryReader (org.sirix.index.path.summary.PathSummaryReader)11 IndexController (org.sirix.access.IndexController)10 IndexDef (org.sirix.index.IndexDef)10 Item (org.brackit.xquery.xdm.Item)7 Axis (org.sirix.api.Axis)7 DescendantAxis (org.sirix.axis.DescendantAxis)7 SirixException (org.sirix.exception.SirixException)7 Attribute (javax.xml.stream.events.Attribute)5 Namespace (javax.xml.stream.events.Namespace)5 DocumentException (org.brackit.xquery.xdm.DocumentException)5 SirixIOException (org.sirix.exception.SirixIOException)5 Ignore (org.junit.Ignore)4 SirixUsageException (org.sirix.exception.SirixUsageException)4