src/share/classes/javax/sql/rowset/Predicate.java

Print this page

        

*** 54,101 **** * <p> * A sample implementation would look something like this: * <pre>{@code * public class Range implements Predicate { * ! * private Object lo[]; ! * private Object hi[]; ! * private int idx[]; * ! * public Range(Object[] lo, Object[] hi, int[] idx) { * this.lo = lo; * this.hi = hi; * this.idx = idx; * } * * public boolean evaluate(RowSet rs) { - * CachedRowSet crs = (CachedRowSet)rs; - * boolean bool1,bool2; * * // Check the present row determine if it lies * // within the filtering criteria. * * for (int i = 0; i < idx.length; i++) { ! * ! * if ((rs.getObject(idx[i]) >= lo[i]) && ! * (rs.getObject(idx[i]) >= hi[i]) { ! * bool1 = true; // within filter constraints ! * } else { ! * bool2 = true; // outside of filter constraints ! * } * } * ! * if (bool2) { * return false; - * } else { - * return true; * } * } * } * }</pre> * <P> * The example above implements a simple range predicate. Note, that ! * implementations should but are not required to provider <code>String</code> * and integer index based constructors to provide for JDBC RowSet Implementation * applications that use both column identification conventions. * * @author Jonathan Bruce, Amit Handa * --- 54,100 ---- * <p> * A sample implementation would look something like this: * <pre>{@code * public class Range implements Predicate { * ! * private int[] lo; ! * private int[] hi; ! * private int[] idx; * ! * public Range(int[] lo, int[] hi, int[] idx) { * this.lo = lo; * this.hi = hi; * this.idx = idx; * } * * public boolean evaluate(RowSet rs) { * * // Check the present row determine if it lies * // within the filtering criteria. * * for (int i = 0; i < idx.length; i++) { ! * int value; ! * try { ! * value = (Integer) rs.getObject(idx[i]); ! * } catch (SQLException ex) { ! * Logger.getLogger(Range.class.getName()).log(Level.SEVERE, null, ex); ! * return false; * } * ! * if (value < lo[i] && value > hi[i]) { ! * // outside of filter constraints * return false; * } * } + * // Within filter constraints + * return true; + * } * } * }</pre> * <P> * The example above implements a simple range predicate. Note, that ! * implementations should but are not required to provide <code>String</code> * and integer index based constructors to provide for JDBC RowSet Implementation * applications that use both column identification conventions. * * @author Jonathan Bruce, Amit Handa *