[New] Allow to set if type is allowed in QueryParser
This commit is contained in:
parent
07ab2fa971
commit
3f28d9aa9f
|
@ -189,13 +189,13 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
actions();
|
actions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResourceQuery<Resource> parseToResourceQuery(String queryString, boolean withPrefix,
|
public static ResourceQuery<Resource> parseToResourceQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||||
boolean withAny) {
|
boolean allowType) {
|
||||||
return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResourceQuery<Resource> parseToResourceQuery(MapOfSets<String, String> bagParamSet,
|
public static ResourceQuery<Resource> parseToResourceQuery(MapOfSets<String, String> bagParamSet,
|
||||||
boolean withPrefix, String queryString, boolean withAny) {
|
boolean withPrefix, String queryString, boolean withAny, boolean allowType) {
|
||||||
QueryParser parser = new QueryParser(new ResourceQuery<>()) {
|
QueryParser parser = new QueryParser(new ResourceQuery<>()) {
|
||||||
@Override
|
@Override
|
||||||
public MapOfSets<String, String> getBagParamSet() {
|
public MapOfSets<String, String> getBagParamSet() {
|
||||||
|
@ -209,7 +209,7 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean allowType() {
|
public boolean allowType() {
|
||||||
return true;
|
return allowType;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Result result = parser.parse(queryString);
|
Result result = parser.parse(queryString);
|
||||||
|
@ -222,12 +222,13 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static OrderQuery<Order> parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny) {
|
public static OrderQuery<Order> parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||||
return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
boolean allowType) {
|
||||||
|
return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static OrderQuery<Order> parseToOrderQuery(MapOfSets<String, String> bagParamSet, boolean withPrefix,
|
public static OrderQuery<Order> parseToOrderQuery(MapOfSets<String, String> bagParamSet, boolean withPrefix,
|
||||||
String queryString, boolean withAny) {
|
String queryString, boolean withAny, boolean allowType) {
|
||||||
QueryParser parser = new QueryParser(new OrderQuery<>()) {
|
QueryParser parser = new QueryParser(new OrderQuery<>()) {
|
||||||
@Override
|
@Override
|
||||||
public MapOfSets<String, String> getBagParamSet() {
|
public MapOfSets<String, String> getBagParamSet() {
|
||||||
|
@ -241,7 +242,7 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean allowType() {
|
public boolean allowType() {
|
||||||
return true;
|
return allowType;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Result result = parser.parse(queryString);
|
Result result = parser.parse(queryString);
|
||||||
|
@ -254,13 +255,13 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ActivityQuery<Activity> parseToActivityQuery(String queryString, boolean withPrefix,
|
public static ActivityQuery<Activity> parseToActivityQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||||
boolean withAny) {
|
boolean allowType) {
|
||||||
return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ActivityQuery<Activity> parseToActivityQuery(MapOfSets<String, String> bagParamSet,
|
public static ActivityQuery<Activity> parseToActivityQuery(MapOfSets<String, String> bagParamSet,
|
||||||
boolean withPrefix, String queryString, boolean withAny) {
|
boolean withPrefix, String queryString, boolean withAny, boolean allowType) {
|
||||||
QueryParser parser = new QueryParser(new ActivityQuery<>()) {
|
QueryParser parser = new QueryParser(new ActivityQuery<>()) {
|
||||||
@Override
|
@Override
|
||||||
public MapOfSets<String, String> getBagParamSet() {
|
public MapOfSets<String, String> getBagParamSet() {
|
||||||
|
@ -274,7 +275,7 @@ public abstract class QueryParser extends CompositeParser {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean allowType() {
|
public boolean allowType() {
|
||||||
return true;
|
return allowType;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Result result = parser.parse(queryString);
|
Result result = parser.parse(queryString);
|
||||||
|
|
|
@ -388,7 +388,7 @@ public class Inspector {
|
||||||
List<Resource> resources = new ArrayList<>();
|
List<Resource> resources = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true, false);
|
||||||
|
|
||||||
// set navigation to requested type
|
// set navigation to requested type
|
||||||
query.setNavigation(new StrolchTypeNavigation(type));
|
query.setNavigation(new StrolchTypeNavigation(type));
|
||||||
|
@ -438,7 +438,7 @@ public class Inspector {
|
||||||
List<Order> orders = new ArrayList<>();
|
List<Order> orders = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
OrderQuery<Order> query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true);
|
OrderQuery<Order> query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true, false);
|
||||||
query.setNavigation(new StrolchTypeNavigation(type));
|
query.setNavigation(new StrolchTypeNavigation(type));
|
||||||
|
|
||||||
// query the data
|
// query the data
|
||||||
|
@ -472,7 +472,7 @@ public class Inspector {
|
||||||
List<Activity> activities = new ArrayList<>();
|
List<Activity> activities = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
ActivityQuery<Activity> query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true);
|
ActivityQuery<Activity> query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true, false);
|
||||||
query.setNavigation(new StrolchTypeNavigation(type));
|
query.setNavigation(new StrolchTypeNavigation(type));
|
||||||
|
|
||||||
// query the data
|
// query the data
|
||||||
|
@ -944,7 +944,7 @@ public class Inspector {
|
||||||
|
|
||||||
RemoveOrderService svc = new RemoveOrderService();
|
RemoveOrderService svc = new RemoveOrderService();
|
||||||
LocatorArgument arg = svc.getArgumentInstance();
|
LocatorArgument arg = svc.getArgumentInstance();
|
||||||
arg.locator = Resource.locatorFor(type, id);
|
arg.locator = Order.locatorFor(type, id);
|
||||||
arg.realm = realm;
|
arg.realm = realm;
|
||||||
|
|
||||||
ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg);
|
ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg);
|
||||||
|
@ -961,7 +961,7 @@ public class Inspector {
|
||||||
|
|
||||||
RemoveActivityService svc = new RemoveActivityService();
|
RemoveActivityService svc = new RemoveActivityService();
|
||||||
LocatorArgument arg = svc.getArgumentInstance();
|
LocatorArgument arg = svc.getArgumentInstance();
|
||||||
arg.locator = Resource.locatorFor(type, id);
|
arg.locator = Activity.locatorFor(type, id);
|
||||||
arg.realm = realm;
|
arg.realm = realm;
|
||||||
|
|
||||||
ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg);
|
ServiceResult result = RestfulStrolchComponent.getInstance().getServiceHandler().doService(cert, svc, arg);
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class ModelQuery {
|
||||||
List<Resource> resources = new ArrayList<>();
|
List<Resource> resources = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(queryData.getQuery(), true, true, true);
|
||||||
|
|
||||||
// query the data
|
// query the data
|
||||||
long dataSetSize = 0L;
|
long dataSetSize = 0L;
|
||||||
|
@ -115,7 +115,7 @@ public class ModelQuery {
|
||||||
List<Order> orders = new ArrayList<>();
|
List<Order> orders = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
OrderQuery<Order> query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true);
|
OrderQuery<Order> query = QueryParser.parseToOrderQuery(queryData.getQuery(), true, true, true);
|
||||||
|
|
||||||
// query the data
|
// query the data
|
||||||
long dataSetSize = 0L;
|
long dataSetSize = 0L;
|
||||||
|
@ -171,7 +171,7 @@ public class ModelQuery {
|
||||||
List<Activity> activities = new ArrayList<>();
|
List<Activity> activities = new ArrayList<>();
|
||||||
|
|
||||||
// parse the query string
|
// parse the query string
|
||||||
ActivityQuery<Activity> query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true);
|
ActivityQuery<Activity> query = QueryParser.parseToActivityQuery(queryData.getQuery(), true, true, true);
|
||||||
|
|
||||||
// query the data
|
// query the data
|
||||||
long dataSetSize = 0L;
|
long dataSetSize = 0L;
|
||||||
|
|
|
@ -23,56 +23,56 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldIgnoreGibberish() {
|
public void shouldIgnoreGibberish() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("sdf dfg3 !sdf", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("sdf dfg3 !sdf", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmpty1() {
|
public void shouldParseEmpty1() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", false, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", false, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmpty2() {
|
public void shouldParseEmpty2() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmptyId() {
|
public void shouldParseEmptyId() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmptyName() {
|
public void shouldParseEmptyName() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmptyType() {
|
public void shouldParseEmptyType() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseEmptyIdNameType() {
|
public void shouldParseEmptyIdNameType() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id: name: type:", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id: name: type:", true, false, true);
|
||||||
assertFalse(query.hasNavigation());
|
assertFalse(query.hasNavigation());
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseId() {
|
public void shouldParseId() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:asd", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:asd", true, false, true);
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(1, selections.size());
|
assertEquals(1, selections.size());
|
||||||
|
@ -86,7 +86,7 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseIds() {
|
public void shouldParseIds() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:asd id:bbb", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("id:asd id:bbb", true, false, true);
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(1, selections.size());
|
assertEquals(1, selections.size());
|
||||||
|
@ -101,7 +101,7 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseName() {
|
public void shouldParseName() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:asd", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:asd", true, false, true);
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(1, selections.size());
|
assertEquals(1, selections.size());
|
||||||
|
@ -112,7 +112,7 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseNames() {
|
public void shouldParseNames() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:asd name:bbb", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("name:asd name:bbb", true, false, true);
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(2, selections.size());
|
assertEquals(2, selections.size());
|
||||||
|
@ -126,7 +126,7 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseType() {
|
public void shouldParseType() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:asd", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:asd", true, false, true);
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
assertTrue(query.hasNavigation());
|
assertTrue(query.hasNavigation());
|
||||||
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
||||||
|
@ -135,7 +135,7 @@ public class QueryParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldReplaceMultipleType() {
|
public void shouldReplaceMultipleType() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:asd type:fff", true, false);
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("type:asd type:fff", true, false, true);
|
||||||
assertFalse(query.hasSelection());
|
assertFalse(query.hasSelection());
|
||||||
assertTrue(query.hasNavigation());
|
assertTrue(query.hasNavigation());
|
||||||
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
||||||
|
@ -145,7 +145,7 @@ public class QueryParserTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseIdNameType() {
|
public void shouldParseIdNameType() {
|
||||||
ResourceQuery<Resource> query = QueryParser
|
ResourceQuery<Resource> 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();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(2, selections.size());
|
assertEquals(2, selections.size());
|
||||||
|
@ -157,7 +157,7 @@ public class QueryParserTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldParseWithWhitespace() {
|
public void shouldParseWithWhitespace() {
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(" id:foo name:bar type:asd \t ", true,
|
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(" id:foo name:bar type:asd \t ", true,
|
||||||
false);
|
false, true);
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
assertEquals(2, selections.size());
|
assertEquals(2, selections.size());
|
||||||
|
@ -173,7 +173,7 @@ public class QueryParserTest {
|
||||||
maps.addElement("parameters", "date");
|
maps.addElement("parameters", "date");
|
||||||
|
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(maps, true,
|
ResourceQuery<Resource> 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());
|
assertTrue(query.hasNavigation());
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
|
@ -200,7 +200,7 @@ public class QueryParserTest {
|
||||||
maps.addElement("parameters", "date");
|
maps.addElement("parameters", "date");
|
||||||
|
|
||||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(maps, false,
|
ResourceQuery<Resource> 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());
|
assertFalse(query.hasNavigation());
|
||||||
OrSelection or = (OrSelection) query.getSelection();
|
OrSelection or = (OrSelection) query.getSelection();
|
||||||
List<Selection> selections = or.getSelections();
|
List<Selection> selections = or.getSelections();
|
||||||
|
|
Loading…
Reference in New Issue