@Override /* RestConverter */ public Object convert(RestRequest req, Object o) { if (o == null) return null; SearchArgs searchArgs = req.getQuery().getSearchArgs(); if (searchArgs == null) return o; return new PojoQuery(o, req.getBeanSession()).filter(searchArgs); } }
@Override /* RestConverter */ public Object convert(RestRequest req, Object o) { if (o == null) return null; SearchArgs searchArgs = req.getQuery().getSearchArgs(); if (searchArgs == null) return o; return new PojoQuery(o, req.getBeanSession()).filter(searchArgs); } }
@Override /* RestConverter */ public Object convert(RestRequest req, Object o) { if (o == null) return null; SearchArgs searchArgs = req.getQuery().getSearchArgs(); if (searchArgs == null) return o; return new PojoQuery(o, req.getBeanSession()).filter(searchArgs); } }
@Test public void testFilterCollectionIntSearchOneLevel() throws Exception { BeanSession session = BeanContext.DEFAULT.createSession(); SearchArgs sa; List results; List<C> in = new AList<C>() .append(new C(1)) .append(new C(2)) .append(new C(3)) ; PojoQuery q = new PojoQuery(in, session); sa = SearchArgs.builder().search("f=1").build(); results = q.filter(sa); assertObjectEquals("[{f:1}]", results); sa = SearchArgs.builder().search("f>1").build(); results = q.filter(sa); assertObjectEquals("[{f:2},{f:3}]", results); sa = SearchArgs.builder().search("f>=2").build(); results = q.filter(sa); assertObjectEquals("[{f:2},{f:3}]", results); sa = SearchArgs.builder().search("f<=2").build(); results = q.filter(sa); assertObjectEquals("[{f:1},{f:2}]", results); sa = SearchArgs.builder().search("f<2").build(); results = q.filter(sa); assertObjectEquals("[{f:1}]", results); sa = SearchArgs.builder().search("f=1 3").build(); results = q.filter(sa); assertObjectEquals("[{f:1},{f:3}]", results); }
@Test public void testFilterCollectionStringSearchOneLevel() throws Exception { SearchArgs sa; List results; List<A> in = new AList<A>() .append(new A("foo")) .append(new A("bar")) .append(new A("baz")) ; PojoQuery q = new PojoQuery(in, BeanContext.DEFAULT.createSession()); sa = SearchArgs.builder().search("f=foo").build(); results = q.filter(sa); assertObjectEquals("[{f:'foo'}]", results); sa = SearchArgs.builder().search("f=fo*").build(); results = q.filter(sa); assertObjectEquals("[{f:'foo'}]", results); sa = SearchArgs.builder().search("f=*ar").build(); results = q.filter(sa); assertObjectEquals("[{f:'bar'}]", results); sa = SearchArgs.builder().search("f=foo bar").build(); results = q.filter(sa); assertObjectEquals("[{f:'foo'},{f:'bar'}]", results); }
@Test public void testFilterCollectionViewOneLevel() throws Exception { BeanSession session = BeanContext.DEFAULT.createSession(); SearchArgs sa; List results; List<E> in = new AList<E>() .append(new E("foo", 1, true)) .append(new E("bar", 2, false)) .append(new E("baz", 3, true)) ; PojoQuery q = new PojoQuery(in, session); sa = SearchArgs.builder().view("f1").build(); results = q.filter(sa); assertObjectEquals("[{f1:'foo'},{f1:'bar'},{f1:'baz'}]", results); sa = SearchArgs.builder().view("f2").build(); results = q.filter(sa); assertObjectEquals("[{f2:1},{f2:2},{f2:3}]", results); sa = SearchArgs.builder().view("f3").build(); results = q.filter(sa); assertObjectEquals("[{f3:true},{f3:false},{f3:true}]", results); sa = SearchArgs.builder().view("f3,f2,f1").build(); results = q.filter(sa); assertObjectEquals("[{f3:true,f2:1,f1:'foo'},{f3:false,f2:2,f1:'bar'},{f3:true,f2:3,f1:'baz'}]", results); }
results = q.filter(sa); assertEquals("[{f1:2,f2:'bar'},{f1:3,f2:'baz'},{f1:1,f2:'foo'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:1,f2:'foo'},{f1:3,f2:'baz'},{f1:2,f2:'bar'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:3,f3:true},{f1:1,f3:true}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:1}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:1},{f1:2},{f1:3}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:3}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f1:3}]", s.serialize(results));
results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f:'2011/01/01 12:00:00'},{f:'2011/01/01 12:59:59'}]", s.serialize(results)); q = new PojoQuery(in, session); sa = SearchArgs.builder().search("f=2011.01.01.12.30").build(); results = q.filter(sa); assertEquals("[{f:'2011/01/01 12:30:00'},{f:'2011/01/01 12:30:59'}]", s.serialize(results)); q = new PojoQuery(in, session); sa = SearchArgs.builder().search("f=2011.01.01.12.30.30").build(); results = q.filter(sa); assertEquals("[{f:'2011/01/01 12:30:30'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f:'2001/01/01 00:00:00'}]", s.serialize(results)); results = q.filter(sa); assertEquals("[{f:'2001/01/01 00:00:00'}]", s.serialize(results)); results = q.filter(sa);