private static boolean augmentConjunction ( ConjunctionImpl target , Selector toAdd ) { if ( toAdd instanceof Operator ) { Operator oper = ( Operator ) toAdd ; if ( oper . getOp ( ) == Selector . AND ) return augmentConjunction ( target , oper . getOperands ( ) [ 0 ] ) && augmentConjunction ( target , oper . getOperands ( ) [ 1 ] ) ; } // toAdd is not an AND node, so we process and combine it in the appropriate way if ( toAdd . getNumIds ( ) == 0 ) { // Should not be added to Conjunction, but it could render the Conjuction false if // it is false Boolean theEval = ( Boolean ) Matching . getEvaluator ( ) . eval ( toAdd ) ; if ( theEval == null ) return false ; else return theEval . booleanValue ( ) ; // was ((BooleanValue) Matching.getEvaluator().eval(toAdd)).booleanValue() } else if ( Matching . isSimple ( toAdd ) ) { if ( toAdd . isExtended ( ) ) return target . and ( new ExtendedSimpleTestImpl ( toAdd ) ) ; else return target . and ( new SimpleTestImpl ( toAdd ) ) ; } else { target . and ( toAdd ) ; return true ; } }
or false if the Conjunction will always be false .