code: private Boolean compareListValues( // was BooleanValue
        Object firstVal,
        Object secondVal,
        boolean lessThan,
        boolean permissive,
        boolean overallTrue) // If true we are searching for at least one TRUE result, else at least one FALSE.
      {
        if (tc.isAnyTracingEnabled() && tc.isEntryEnabled())
          tc.entry(cclass, 
                   "compareListValues", 
                   new Object[] { firstVal, 
                                  secondVal, 
                                  new Boolean(lessThan), 
                                  new Boolean(permissive), 
                                  new Boolean(overallTrue) });
        
        Boolean finalReturn = null;
        // Drive the compare() method
        Boolean compReturn = compare(firstVal, secondVal, lessThan, permissive);
        if(compReturn != null)
        {
          if(overallTrue)
          {
            if (compReturn.equals(Boolean.TRUE))
            {
              // We've found a pair that meet the criteria
              finalReturn = Boolean.TRUE;
            }
          }
          else
          {
            if (compReturn.equals(Boolean.FALSE))
            {
              // We've found a pair that meet the criteria
              finalReturn = Boolean.TRUE;
            }
          }
        }            
  
        if (tc.isAnyTracingEnabled() && tc.isEntryEnabled())
          tc.exit(cclass, "compareListValues", finalReturn);       
        return finalReturn;
      }
docs: Evaluate a comparison between 2 values at least one of which will be from a list.
  If we can determine that there is a matching pair then we return TRUE.
  
  @param firstVal
  @param secondVal
  @param lessThan
  @param permissive
  @param overallTrue
  @return