Search in sources :

Example 26 with Axis

use of org.sirix.api.Axis in project sirix by sirixdb.

the class Function method ebv.

public static boolean ebv(final Axis axis) throws SirixXPathException {
    final FuncDef ebv = FuncDef.BOOLEAN;
    final List<Axis> param = new ArrayList<Axis>();
    param.add(axis);
    final AbstractAxis bAxis = new FNBoolean(axis.getTrx(), param, ebv.getMin(), ebv.getMax(), axis.getTrx().keyForName(ebv.getReturnType()));
    if (bAxis.hasNext()) {
        bAxis.next();
        final boolean result = Boolean.parseBoolean(bAxis.getTrx().getValue());
        if (!bAxis.hasNext()) {
            bAxis.reset(axis.getTrx().getNodeKey());
            return result;
        }
    }
    // TODO!!
    throw new IllegalStateException("This should not happen!");
}
Also used : FNBoolean(org.sirix.service.xml.xpath.functions.sequences.FNBoolean) ArrayList(java.util.ArrayList) AbstractAxis(org.sirix.service.xml.xpath.AbstractAxis) Axis(org.sirix.api.Axis) AbstractAxis(org.sirix.service.xml.xpath.AbstractAxis)

Example 27 with Axis

use of org.sirix.api.Axis in project sirix by sirixdb.

the class SequenceAxis method reset.

/**
 * {@inheritDoc}
 */
@Override
public void reset(final long mNodeKey) {
    super.reset(mNodeKey);
    if (mSeq != null) {
        for (Axis ax : mSeq) {
            ax.reset(mNodeKey);
        }
    }
    mCurrent = null;
    mNum = 0;
}
Also used : Axis(org.sirix.api.Axis) AbstractAxis(org.sirix.service.xml.xpath.AbstractAxis)

Example 28 with Axis

use of org.sirix.api.Axis in project sirix by sirixdb.

the class SomeExpr method evaluate.

@Override
public void evaluate() {
    boolean satisfiesCond = false;
    for (final Axis axis : mVars) {
        while (axis.hasNext()) {
            mKey = axis.next();
            mSatisfy.reset(mKey);
            if (mSatisfy.hasNext()) {
                mKey = mSatisfy.next();
                // condition is satisfied for this item -> expression is
                // true
                satisfiesCond = true;
                break;
            }
        }
    }
    final int itemKey = getTrx().getItemList().addItem(new AtomicValue(TypedValue.getBytes(Boolean.toString(satisfiesCond)), getTrx().keyForName("xs:boolean")));
    mKey = itemKey;
}
Also used : AtomicValue(org.sirix.service.xml.xpath.AtomicValue) Axis(org.sirix.api.Axis)

Example 29 with Axis

use of org.sirix.api.Axis in project sirix by sirixdb.

the class ConcurrentAxisTest method testPartConcurrentDescAxis2.

/**
 * Test concurrent.
 *
 * @throws SirixXPathException
 */
// @Bench
@Test
public void testPartConcurrentDescAxis2() throws Exception {
    /* query: //regions/africa//location */
    final int resultNumber = 55;
    final XdmNodeReadTrx firstConcurrRtx = holder.getResourceManager().beginNodeReadTrx();
    final Axis axis = new NestedAxis(new NestedAxis(new FilterAxis(new DescendantAxis(firstConcurrRtx, IncludeSelf.YES), new NameFilter(firstConcurrRtx, "regions")), new FilterAxis(new ChildAxis(firstConcurrRtx), new NameFilter(firstConcurrRtx, "africa"))), new ConcurrentAxis(firstConcurrRtx, new FilterAxis(new DescendantAxis(holder.getReader(), IncludeSelf.YES), new NameFilter(holder.getReader(), "location"))));
    for (int i = 0; i < resultNumber; i++) {
        assertEquals(true, axis.hasNext());
        axis.next();
    }
    assertEquals(axis.hasNext(), false);
}
Also used : ChildAxis(org.sirix.axis.ChildAxis) NameFilter(org.sirix.axis.filter.NameFilter) XdmNodeReadTrx(org.sirix.api.XdmNodeReadTrx) NestedAxis(org.sirix.axis.NestedAxis) DescendantAxis(org.sirix.axis.DescendantAxis) Axis(org.sirix.api.Axis) NestedAxis(org.sirix.axis.NestedAxis) ChildAxis(org.sirix.axis.ChildAxis) FilterAxis(org.sirix.axis.filter.FilterAxis) DescendantAxis(org.sirix.axis.DescendantAxis) XPathAxis(org.sirix.service.xml.xpath.XPathAxis) FilterAxis(org.sirix.axis.filter.FilterAxis) Test(org.junit.Test)

Example 30 with Axis

use of org.sirix.api.Axis in project sirix by sirixdb.

the class ConcurrentAxisTest method testSeriellOld.

/**
 * Test seriell.
 */
// @Ignore
// @SkipBench
// @Bench
@Test
public void testSeriellOld() throws Exception {
    // final String query = "//people/person[@id=\"person3\"]/name";
    // final String query = "count(//location[text() = \"United States\"])";
    final String query = "//regions/africa//location";
    // final String result = "<name>Limor Simone</name>";
    final int resultNumber = 55;
    final Axis axis = new XPathAxis(holder.getReader(), query);
    for (int i = 0; i < resultNumber; i++) {
        assertEquals(true, axis.hasNext());
        axis.next();
    }
    assertEquals(false, axis.hasNext());
}
Also used : XPathAxis(org.sirix.service.xml.xpath.XPathAxis) Axis(org.sirix.api.Axis) NestedAxis(org.sirix.axis.NestedAxis) ChildAxis(org.sirix.axis.ChildAxis) FilterAxis(org.sirix.axis.filter.FilterAxis) DescendantAxis(org.sirix.axis.DescendantAxis) XPathAxis(org.sirix.service.xml.xpath.XPathAxis) Test(org.junit.Test)

Aggregations

Axis (org.sirix.api.Axis)73 DescendantAxis (org.sirix.axis.DescendantAxis)39 FilterAxis (org.sirix.axis.filter.FilterAxis)38 ChildAxis (org.sirix.axis.ChildAxis)23 UnionAxis (org.sirix.service.xml.xpath.expr.UnionAxis)19 DupFilterAxis (org.sirix.service.xml.xpath.filter.DupFilterAxis)19 ForAxis (org.sirix.axis.ForAxis)17 PredicateFilterAxis (org.sirix.axis.filter.PredicateFilterAxis)17 ExceptAxis (org.sirix.service.xml.xpath.expr.ExceptAxis)17 IfAxis (org.sirix.service.xml.xpath.expr.IfAxis)17 IntersectAxis (org.sirix.service.xml.xpath.expr.IntersectAxis)17 RangeAxis (org.sirix.service.xml.xpath.expr.RangeAxis)17 SequenceAxis (org.sirix.service.xml.xpath.expr.SequenceAxis)17 VariableAxis (org.sirix.service.xml.xpath.expr.VariableAxis)17 AddOpAxis (org.sirix.service.xml.xpath.operators.AddOpAxis)17 DivOpAxis (org.sirix.service.xml.xpath.operators.DivOpAxis)17 IDivOpAxis (org.sirix.service.xml.xpath.operators.IDivOpAxis)17 ModOpAxis (org.sirix.service.xml.xpath.operators.ModOpAxis)17 MulOpAxis (org.sirix.service.xml.xpath.operators.MulOpAxis)17 SubOpAxis (org.sirix.service.xml.xpath.operators.SubOpAxis)17