diff --git a/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java b/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java index 76afa3f7c..9db2bc0e8 100644 --- a/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java +++ b/li.strolch.rest/src/main/java/li/strolch/model/query/parser/QueryParser.java @@ -189,13 +189,13 @@ public abstract class QueryParser extends CompositeParser { actions(); } - public static ResourceQuery parseToResourceQuery(String queryString, boolean withPrefix, - boolean withAny) { - return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny); + public static ResourceQuery parseToResourceQuery(String queryString, boolean withPrefix, boolean withAny, + boolean allowType) { + return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType); } public static ResourceQuery parseToResourceQuery(MapOfSets bagParamSet, - boolean withPrefix, String queryString, boolean withAny) { + boolean withPrefix, String queryString, boolean withAny, boolean allowType) { QueryParser parser = new QueryParser(new ResourceQuery<>()) { @Override public MapOfSets getBagParamSet() { @@ -209,7 +209,7 @@ public abstract class QueryParser extends CompositeParser { @Override public boolean allowType() { - return true; + return allowType; } }; Result result = parser.parse(queryString); @@ -222,12 +222,13 @@ public abstract class QueryParser extends CompositeParser { return query; } - public static OrderQuery parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny) { - return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny); + public static OrderQuery parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny, + boolean allowType) { + return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType); } public static OrderQuery parseToOrderQuery(MapOfSets bagParamSet, boolean withPrefix, - String queryString, boolean withAny) { + String queryString, boolean withAny, boolean allowType) { QueryParser parser = new QueryParser(new OrderQuery<>()) { @Override public MapOfSets getBagParamSet() { @@ -241,7 +242,7 @@ public abstract class QueryParser extends CompositeParser { @Override public boolean allowType() { - return true; + return allowType; } }; Result result = parser.parse(queryString); @@ -254,13 +255,13 @@ public abstract class QueryParser extends CompositeParser { return query; } - public static ActivityQuery parseToActivityQuery(String queryString, boolean withPrefix, - boolean withAny) { - return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny); + public static ActivityQuery parseToActivityQuery(String queryString, boolean withPrefix, boolean withAny, + boolean allowType) { + return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType); } public static ActivityQuery parseToActivityQuery(MapOfSets bagParamSet, - boolean withPrefix, String queryString, boolean withAny) { + boolean withPrefix, String queryString, boolean withAny, boolean allowType) { QueryParser parser = new QueryParser(new ActivityQuery<>()) { @Override public MapOfSets getBagParamSet() { @@ -274,7 +275,7 @@ public abstract class QueryParser extends CompositeParser { @Override public boolean allowType() { - return true; + return allowType; } }; Result result = parser.parse(queryString); diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/Inspector.java b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/Inspector.java index 0c7cc6f44..f19d4ed04 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/Inspector.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/Inspector.java @@ -388,7 +388,7 @@ public class Inspector { List resources = new ArrayList<>(); // parse the query string - ResourceQuery query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true); + ResourceQuery query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true, false); // set navigation to requested type query.setNavigation(new StrolchTypeNavigation(type)); @@ -438,7 +438,7 @@ public class Inspector { List orders = new ArrayList<>(); // parse the query string - OrderQuery query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true); + OrderQuery query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true, false); query.setNavigation(new StrolchTypeNavigation(type)); // query the data @@ -472,7 +472,7 @@ public class Inspector { List activities = new ArrayList<>(); // parse the query string - ActivityQuery query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true); + ActivityQuery query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true, false); query.setNavigation(new StrolchTypeNavigation(type)); // query the data @@ -944,7 +944,7 @@ public class Inspector { RemoveOrderService svc = new RemoveOrderService(); LocatorArgument arg = svc.getArgumentInstance(); - arg.locator = Resource.locatorFor(type, id); + arg.locator = Order.locatorFor(type, id); arg.realm = realm; ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg); @@ -961,7 +961,7 @@ public class Inspector { RemoveActivityService svc = new RemoveActivityService(); LocatorArgument arg = svc.getArgumentInstance(); - arg.locator = Resource.locatorFor(type, id); + arg.locator = Activity.locatorFor(type, id); arg.realm = realm; ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg); diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/ModelQuery.java b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/ModelQuery.java index ed592bc43..d3bc30774 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/ModelQuery.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/ModelQuery.java @@ -60,7 +60,7 @@ public class ModelQuery { List resources = new ArrayList<>(); // parse the query string - ResourceQuery query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true); + ResourceQuery query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true, true); // query the data long dataSetSize = 0L; @@ -115,7 +115,7 @@ public class ModelQuery { List orders = new ArrayList<>(); // parse the query string - OrderQuery query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true); + OrderQuery query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true, true); // query the data long dataSetSize = 0L; @@ -171,7 +171,7 @@ public class ModelQuery { List activities = new ArrayList<>(); // parse the query string - ActivityQuery query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true); + ActivityQuery query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true, true); // query the data long dataSetSize = 0L; diff --git a/li.strolch.rest/src/test/java/li/strolch/model/query/parser/QueryParserTest.java b/li.strolch.rest/src/test/java/li/strolch/model/query/parser/QueryParserTest.java index 9cb94f8ad..aa1afdd76 100644 --- a/li.strolch.rest/src/test/java/li/strolch/model/query/parser/QueryParserTest.java +++ b/li.strolch.rest/src/test/java/li/strolch/model/query/parser/QueryParserTest.java @@ -23,56 +23,56 @@ public class QueryParserTest { @Test public void shouldIgnoreGibberish() { - ResourceQuery query = QueryParser.parseToResourceQuery("sdf dfg3 !sdf", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("sdf dfg3 !sdf", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseEmpty1() { - ResourceQuery query = QueryParser.parseToResourceQuery("", false, false); + ResourceQuery query = QueryParser.parseToResourceQuery("", false, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } - + @Test public void shouldParseEmpty2() { - ResourceQuery query = QueryParser.parseToResourceQuery("", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseEmptyId() { - ResourceQuery query = QueryParser.parseToResourceQuery("id:", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("id:", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseEmptyName() { - ResourceQuery query = QueryParser.parseToResourceQuery("name:", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("name:", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseEmptyType() { - ResourceQuery query = QueryParser.parseToResourceQuery("type:", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("type:", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseEmptyIdNameType() { - ResourceQuery query = QueryParser.parseToResourceQuery("id: name: type:", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("id: name: type:", true, false, true); assertFalse(query.hasNavigation()); assertFalse(query.hasSelection()); } @Test public void shouldParseId() { - ResourceQuery query = QueryParser.parseToResourceQuery("id:asd", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("id:asd", true, false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(1, selections.size()); @@ -86,7 +86,7 @@ public class QueryParserTest { @Test public void shouldParseIds() { - ResourceQuery query = QueryParser.parseToResourceQuery("id:asd id:bbb", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("id:asd id:bbb", true, false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(1, selections.size()); @@ -101,7 +101,7 @@ public class QueryParserTest { @Test public void shouldParseName() { - ResourceQuery query = QueryParser.parseToResourceQuery("name:asd", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("name:asd", true, false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(1, selections.size()); @@ -112,7 +112,7 @@ public class QueryParserTest { @Test public void shouldParseNames() { - ResourceQuery query = QueryParser.parseToResourceQuery("name:asd name:bbb", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("name:asd name:bbb", true, false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(2, selections.size()); @@ -126,7 +126,7 @@ public class QueryParserTest { @Test public void shouldParseType() { - ResourceQuery query = QueryParser.parseToResourceQuery("type:asd", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("type:asd", true, false, true); assertFalse(query.hasSelection()); assertTrue(query.hasNavigation()); StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation(); @@ -135,7 +135,7 @@ public class QueryParserTest { @Test public void shouldReplaceMultipleType() { - ResourceQuery query = QueryParser.parseToResourceQuery("type:asd type:fff", true, false); + ResourceQuery query = QueryParser.parseToResourceQuery("type:asd type:fff", true, false, true); assertFalse(query.hasSelection()); assertTrue(query.hasNavigation()); StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation(); @@ -145,7 +145,7 @@ public class QueryParserTest { @Test public void shouldParseIdNameType() { ResourceQuery query = QueryParser - .parseToResourceQuery("id:foo name:bar type:asd date:1970-01-01T01:00:00.000+01:00", true, false); + .parseToResourceQuery("id:foo name:bar type:asd date:1970-01-01T01:00:00.000+01:00", true, false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(2, selections.size()); @@ -157,7 +157,7 @@ public class QueryParserTest { @Test public void shouldParseWithWhitespace() { ResourceQuery query = QueryParser.parseToResourceQuery(" id:foo name:bar type:asd \t ", true, - false); + false, true); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); assertEquals(2, selections.size()); @@ -173,7 +173,7 @@ public class QueryParserTest { maps.addElement("parameters", "date"); ResourceQuery query = QueryParser.parseToResourceQuery(maps, true, - "type:asd id:asd email:bla@dsfdfg.ch date:1970-01-01T01:00:00.000+01:00", false); + "type:asd id:asd email:bla@dsfdfg.ch date:1970-01-01T01:00:00.000+01:00", false, true); assertTrue(query.hasNavigation()); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections(); @@ -200,7 +200,7 @@ public class QueryParserTest { maps.addElement("parameters", "date"); ResourceQuery query = QueryParser.parseToResourceQuery(maps, false, - "asd bla@dsfdfg.ch 1970-01-01T01:00:00.000+01:00", false); + "asd bla@dsfdfg.ch 1970-01-01T01:00:00.000+01:00", false, true); assertFalse(query.hasNavigation()); OrSelection or = (OrSelection) query.getSelection(); List selections = or.getSelections();