throw new FormattedRuntimeException("Invalid search terms: ''{0}''", searchTerms); char c = s.charAt(i); search(s.substring(0, i).trim(), s.substring(c == '=' ? i+1 : i).trim());
sort(Arrays.asList(StringUtils.split(sortArgs))); return this;
/** * Specifies the list of columns to view. * * <p> * The columns argument is a simple comma-delimited list of column names. * * <p> * For example: * <p class='bcode w800'> * builder.view(<js>"column1, column2"</js>); * </p> * * <p> * Whitespace is trimmed from column names. * * <p> * Empty view columns imply view all columns. * * @param columns * The columns being viewed. * Can be <jk>null</jk>. * @return This object (for method chaining). */ public Builder view(String columns) { if (columns != null) return view(Arrays.asList(StringUtils.split(columns))); return this; }
sa = SearchArgs.builder().search("f=2011").build(); results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); sa = SearchArgs.builder().search("f=2011.01").build(); results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); sa = SearchArgs.builder().search("f=2011.01.01").build(); results = q.filter(sa); assertEquals("[{f:'2011/01/01 00:00:00'}]", s.serialize(results)); sa = SearchArgs.builder().search("f=2011.01.01.12").build(); 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)); sa = SearchArgs.builder().search("f>2000").build();
return new SearchArgs.Builder() .search(getString("s")) .view(getString("v")) .sort(getString("o")) .position(getInt("p")) .limit(getInt("l")) .ignoreCase(getBoolean("i")) .build();
return new SearchArgs.Builder() .search(getString("s")) .view(getString("v")) .sort(getString("o")) .position(getInt("p")) .limit(getInt("l")) .ignoreCase(getBoolean("i")) .build();
return new SearchArgs.Builder() .search(getString("s")) .view(getString("v")) .sort(getString("o")) .position(getInt("p")) .limit(getInt("l")) .ignoreCase(getBoolean("i")) .build();
sa = SearchArgs.builder().sort("f2").view("f1, f2").build(); results = q.filter(sa); assertEquals("[{f1:2,f2:'bar'},{f1:3,f2:'baz'},{f1:1,f2:'foo'}]", s.serialize(results)); sa = SearchArgs.builder().sort("f2-").view("f1,f2").build(); results = q.filter(sa); assertEquals("[{f1:1,f2:'foo'},{f1:3,f2:'baz'},{f1:2,f2:'bar'}]", s.serialize(results)); sa = SearchArgs.builder().sort("f3").view("f1,f3").build(); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); sa = SearchArgs.builder().sort("f3,f1+").view("f1,f3").build(); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); sa = SearchArgs.builder().sort("f3,f1-").view("f1,f3").build(); results = q.filter(sa); assertEquals("[{f1:2,f3:false},{f1:3,f3:true},{f1:1,f3:true}]", s.serialize(results)); sa = SearchArgs.builder().sort("f1").view("f1").limit(1).position(0).build(); results = q.filter(sa); assertEquals("[{f1:1}]", s.serialize(results)); sa = SearchArgs.builder().sort("f1").view("f1").limit(3).position(0).build(); results = q.filter(sa); assertEquals("[{f1:1},{f1:2},{f1:3}]", s.serialize(results)); sa = SearchArgs.builder().sort("f1").view("f1").limit(1).position(2).build();
throw new FormattedRuntimeException("Invalid search terms: ''{0}''", searchTerms); char c = s.charAt(i); search(s.substring(0, i).trim(), s.substring(c == '=' ? i+1 : i).trim());
sort(Arrays.asList(StringUtils.split(sortArgs))); return this;
throw new FormattedRuntimeException("Invalid search terms: ''{0}''", searchTerms); char c = s.charAt(i); search(s.substring(0, i).trim(), s.substring(c == '=' ? i+1 : i).trim());
@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); }
/** * Specifies the list of columns to view. * * <p> * The columns argument is a simple comma-delimited list of column names. * * <p> * For example: * <p class='bcode w800'> * builder.view(<js>"column1, column2"</js>); * </p> * * <p> * Whitespace is trimmed from column names. * * <p> * Empty view columns imply view all columns. * * @param columns * The columns being viewed. * Can be <jk>null</jk>. * @return This object (for method chaining). */ public Builder view(String columns) { if (columns != null) return view(Arrays.asList(StringUtils.split(columns))); return this; }
/** * Specifies the list of columns to view. * * <p> * The columns argument is a simple comma-delimited list of column names. * * <p> * For example: * <p class='bcode w800'> * builder.view(<js>"column1, column2"</js>); * </p> * * <p> * Whitespace is trimmed from column names. * * <p> * Empty view columns imply view all columns. * * @param columns * The columns being viewed. * Can be <jk>null</jk>. * @return This object (for method chaining). */ public Builder view(String columns) { if (columns != null) return view(Arrays.asList(StringUtils.split(columns))); return this; }
sort(Arrays.asList(StringUtils.split(sortArgs))); return this;
@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); }
/** * Creates a new builder for {@link SearchArgs} * * @return A new builder for {@link SearchArgs} */ public static Builder builder() { return new Builder(); }
/** * Creates a new builder for {@link SearchArgs} * * @return A new builder for {@link SearchArgs} */ public static Builder builder() { return new Builder(); }
/** * Creates a new builder for {@link SearchArgs} * * @return A new builder for {@link SearchArgs} */ public static Builder builder() { return new Builder(); }