X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2Fsearch%2FBasicSearch.java;h=7aae8cca07721df4cc8a40b819e75eab2d743995;hb=5d7ebadd9fe583fd9d3b2e4ca6e99079b99aac5a;hp=2e4f249d4ce5dbe35206f621e250368c003ce184;hpb=4d2484e2adfe2d6aac84ee616f9620f77db91b4a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/search/BasicSearch.java b/org.argeo.api.acr/src/org/argeo/api/acr/search/BasicSearch.java index 2e4f249d4..7aae8cca0 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/search/BasicSearch.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/search/BasicSearch.java @@ -34,10 +34,20 @@ public class BasicSearch { return this; } + /** + * Convenience method, to search below this absolute path, with depth + * {@link Depth#INFINITTY}. + */ + public BasicSearch from(String path) { + return from(URI.create(path), Depth.INFINITTY); + } + + /** Search below this URI, with depth {@link Depth#INFINITTY}. */ public BasicSearch from(URI uri) { return from(uri, Depth.INFINITTY); } + /** Search below this URI, with this {@link Depth}. */ public BasicSearch from(URI uri, Depth depth) { Objects.requireNonNull(uri); Objects.requireNonNull(depth); @@ -47,11 +57,11 @@ public class BasicSearch { } public BasicSearch where(Consumer and) { - if (where != null) - throw new IllegalStateException("A where clause is already set"); - AndFilter subFilter = new AndFilter(); - and.accept(subFilter); - where = subFilter; +// if (where != null) +// throw new IllegalStateException("A where clause is already set"); +// AndFilter subFilter = new AndFilter(); + and.accept((AndFilter) getWhere()); +// where = subFilter; return this; } @@ -64,6 +74,8 @@ public class BasicSearch { } public ContentFilter getWhere() { + if (where == null) + where = new AndFilter(); return where; }