Search in sources :

Example 11 with ChildAxis

use of org.sirix.axis.ChildAxis in project sirix by sirixdb.

the class XPathParser method parseAbbrevForwardStep.

/**
 * Parses the the rule AbrevForwardStep according to the following production rule:
 * <p>
 * [31] AbbrevForwardStep ::= "@"? NodeTest .
 * </p>
 *
 * @return FilterAxis
 */
private AbstractAxis parseAbbrevForwardStep() {
    AbstractAxis axis;
    boolean isAttribute;
    if (is(TokenType.AT, true) || mToken.getContent().equals("attribute") || mToken.getContent().equals("schema-attribute")) {
        // in case of .../attribute(..), or .../schema-attribute() the
        // default
        // axis
        // is the attribute axis
        axis = new AttributeAxis(getTransaction());
        isAttribute = true;
    } else {
        // default axis is the child axis
        axis = new ChildAxis(getTransaction());
        isAttribute = false;
    }
    final Filter filter = parseNodeTest(isAttribute);
    return new FilterAxis(axis, filter);
}
Also used : ChildAxis(org.sirix.axis.ChildAxis) ItemFilter(org.sirix.axis.filter.ItemFilter) AttributeFilter(org.sirix.axis.filter.AttributeFilter) NameFilter(org.sirix.axis.filter.NameFilter) TypeFilter(org.sirix.axis.filter.TypeFilter) NestedFilter(org.sirix.axis.filter.NestedFilter) DocumentRootNodeFilter(org.sirix.axis.filter.DocumentRootNodeFilter) CommentFilter(org.sirix.axis.filter.CommentFilter) WildcardFilter(org.sirix.axis.filter.WildcardFilter) PIFilter(org.sirix.axis.filter.PIFilter) SchemaElementFilter(org.sirix.service.xml.xpath.filter.SchemaElementFilter) Filter(org.sirix.api.Filter) SchemaAttributeFilter(org.sirix.service.xml.xpath.filter.SchemaAttributeFilter) TextFilter(org.sirix.axis.filter.TextFilter) ElementFilter(org.sirix.axis.filter.ElementFilter) NodeFilter(org.sirix.axis.filter.NodeFilter) AbstractAxis(org.sirix.axis.AbstractAxis) AttributeAxis(org.sirix.axis.AttributeAxis) FilterAxis(org.sirix.axis.filter.FilterAxis)

Aggregations

ChildAxis (org.sirix.axis.ChildAxis)11 DescendantAxis (org.sirix.axis.DescendantAxis)9 FilterAxis (org.sirix.axis.filter.FilterAxis)9 Axis (org.sirix.api.Axis)8 NameFilter (org.sirix.axis.filter.NameFilter)7 NestedAxis (org.sirix.axis.NestedAxis)6 Test (org.junit.Test)5 XPathAxis (org.sirix.service.xml.xpath.XPathAxis)4 XdmNodeReadTrx (org.sirix.api.XdmNodeReadTrx)3 AbstractAxis (org.sirix.axis.AbstractAxis)3 FollowingSiblingAxis (org.sirix.axis.FollowingSiblingAxis)3 ParentAxis (org.sirix.axis.ParentAxis)3 AncestorAxis (org.sirix.axis.AncestorAxis)2 AttributeAxis (org.sirix.axis.AttributeAxis)2 FollowingAxis (org.sirix.axis.FollowingAxis)2 LevelOrderAxis (org.sirix.axis.LevelOrderAxis)2 PostOrderAxis (org.sirix.axis.PostOrderAxis)2 PrecedingAxis (org.sirix.axis.PrecedingAxis)2 PrecedingSiblingAxis (org.sirix.axis.PrecedingSiblingAxis)2 PathKindFilter (org.sirix.axis.filter.PathKindFilter)2