Example usage for org.apache.lucene.queryparser.flexible.standard.nodes BooleanModifierNode BooleanModifierNode

List of usage examples for org.apache.lucene.queryparser.flexible.standard.nodes BooleanModifierNode BooleanModifierNode

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.flexible.standard.nodes BooleanModifierNode BooleanModifierNode.

Prototype

public BooleanModifierNode(QueryNode node, Modifier mod) 

Source Link

Usage

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

License:Open Source License

/**
 *///from w  w w.java2  s. c  o  m
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

/**
 *//*www  .jav a 2  s .  c  om*/
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;
}