Example usage for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode getChild

List of usage examples for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode getChild

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode getChild.

Prototype

public QueryNode getChild() 

Source Link

Usage

From source file:com.sindicetech.siren.qparser.keyword.processors.GroupQueryNodeProcessor.java

License:Open Source License

/**
 *///  w w  w.  j a  v a  2s  .com
private QueryNode applyModifier(final QueryNode node, final QueryNode parent) {
    // if the default operator is AND
    if (this.usingAnd) {
        // if the parent is a or operator
        if (parent instanceof OrQueryNode) {
            // remove the modifier
            if (node instanceof ModifierQueryNode) {
                final ModifierQueryNode modNode = (ModifierQueryNode) node;
                if (modNode.getModifier() == Modifier.MOD_REQ) {
                    return modNode.getChild();
                }
            }
            // at this stage, the node does not have modifier, which means it is an SHOULD clause
        }
        // in any other case, add the MOD_REQ modifier as default
        else {
            if (node instanceof ModifierQueryNode) {
                final ModifierQueryNode modNode = (ModifierQueryNode) node;
                if (modNode.getModifier() == Modifier.MOD_NONE) {
                    return new BooleanModifierNode(modNode.getChild(), Modifier.MOD_REQ);
                }
            } else {
                return new BooleanModifierNode(node, Modifier.MOD_REQ);
            }
        }
    }
    // if the default operator is OR
    else {
        // if the parent operator is AND
        if (parent instanceof AndQueryNode) {
            // add the MOD_REQ modifier
            if (node instanceof ModifierQueryNode) {
                final ModifierQueryNode modNode = (ModifierQueryNode) node;
                if (modNode.getModifier() == Modifier.MOD_NONE) {
                    return new BooleanModifierNode(modNode.getChild(), Modifier.MOD_REQ);
                }
            } else {
                return new BooleanModifierNode(node, Modifier.MOD_REQ);
            }
        }
    }

    return node;
}

From source file:org.sindice.siren.qparser.keyword.processors.GroupQueryNodeProcessor.java

License:Apache License

/**
 *///w w w  .  j  a  v a 2s .  c o m
private QueryNode applyModifier(final QueryNode node, final QueryNode parent) {

    if (this.usingAnd) {

        if (parent instanceof OrQueryNode) {

            if (node instanceof ModifierQueryNode) {

                final ModifierQueryNode modNode = (ModifierQueryNode) node;

                if (modNode.getModifier() == Modifier.MOD_REQ) {
                    return modNode.getChild();
                }

            }
        } else {

            if (node instanceof ModifierQueryNode) {

                final ModifierQueryNode modNode = (ModifierQueryNode) node;

                if (modNode.getModifier() == Modifier.MOD_NONE) {
                    return new BooleanModifierNode(modNode.getChild(), Modifier.MOD_REQ);
                }

            } else {
                return new BooleanModifierNode(node, Modifier.MOD_REQ);
            }

        }

    } else {

        if (parent instanceof AndQueryNode) {

            if (node instanceof ModifierQueryNode) {

                final ModifierQueryNode modNode = (ModifierQueryNode) node;

                if (modNode.getModifier() == Modifier.MOD_NONE) {
                    return new BooleanModifierNode(modNode.getChild(), Modifier.MOD_REQ);
                }

            } else {
                return new BooleanModifierNode(node, Modifier.MOD_REQ);
            }

        }
    }

    return node;
}