<BooleanQueryNode> <ModifierQueryNode modifier="MOD_REQ"> <t1/> </ModifierQueryNode> <ModifierQueryNode modifier="MOD_NOT"> <t2/> </ModifierQueryNode> <t3/> </BooleanQueryNode>
public override IQueryNode CloneTree() { ModifierQueryNode clone = (ModifierQueryNode)base.CloneTree(); clone.modifier = this.modifier; return(clone); }
// QueryNode Query(CharSequence field) : // { // List clauses = new ArrayList(); // List modifiers = new ArrayList(); // QueryNode q, firstQuery=null; // ModifierQueryNode.Modifier mods; // int conj; // } // { // mods=Modifiers() q=Clause(field) // { // if (mods == ModifierQueryNode.Modifier.MOD_NONE) firstQuery=q; // // // do not create modifier nodes with MOD_NONE // if (mods != ModifierQueryNode.Modifier.MOD_NONE) { // q = new ModifierQueryNode(q, mods); // } // clauses.add(q); // } // ( // conj=Conjunction() mods=Modifiers() q=Clause(field) // { // // do not create modifier nodes with MOD_NONE // if (mods != ModifierQueryNode.Modifier.MOD_NONE) { // q = new ModifierQueryNode(q, mods); // } // clauses.add(q); // //TODO: figure out what to do with AND and ORs // } // )* // { // if (clauses.size() == 1 && firstQuery != null) // return firstQuery; // else { // return new BooleanQueryNode(clauses); // } // } // } public IQueryNode ModClause(string field) { IQueryNode q; Modifier mods; mods = Modifiers(); q = Clause(field); if (mods != Modifier.MOD_NONE) { q = new ModifierQueryNode(q, mods); } { if (true) return q; } throw new Exception("Missing return statement in function"); }