@Override
 public Object getValue(Query qr, int row, Object defaultValue) {
   if (col == null) {
     col = qr.getColumn(getColumn(), null);
     if (col == null) return defaultValue;
   }
   return col.get(row, defaultValue);
 }
 // MUST hanle null correctly
 @Override
 public Object getValue(Query qr, int row) throws PageException {
   if (col == null) col = qr.getColumn(getColumn());
   return QueryUtil.getValue(col, row);
 }