code: public boolean evaluate(List<Object> objects, String sql) throws SQLException {
  		synchronized (this) {
  			String actualSql = sql == null ? this.sql : sql;
  			PreparedStatement actualStmnt = null;
  			try {
  				actualStmnt = sql == null ? this.stmnt : prepareStatement(sql);
  
  				this.objects = objects;
  				actualStmnt.execute();
  				ResultSet rs = actualStmnt.getResultSet();
  				if (!rs.next()) {
  					throw new IllegalArgumentException("Expected at least one returned row. SQL evaluated: " + actualSql);
  				}
  				boolean result = true;
  				do {
  					result &= rs.getBoolean(1);
  				} while (rs.next());
  				return result;
  			} finally {
  				if (sql != null && actualStmnt != null) {
  					actualStmnt.close();
  				}
  			}
  		}
  	}
docs: Evaluate an ad-hoc predicate on the list of provided objects.
  Note {@link #evaluate(Object[])} is preferable as it only does validation of the expression once.
  @throws SQLException