[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();
|
||||
}
|
||||
|
||||
public static ResourceQuery<Resource> parseToResourceQuery(String queryString, boolean withPrefix,
|
||||
boolean withAny) {
|
||||
return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
||||
public static ResourceQuery<Resource> parseToResourceQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||
boolean allowType) {
|
||||
return parseToResourceQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||
}
|
||||
|
||||
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<>()) {
|
||||
@Override
|
||||
public MapOfSets<String, String> 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<Order> parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny) {
|
||||
return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
||||
public static OrderQuery<Order> parseToOrderQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||
boolean allowType) {
|
||||
return parseToOrderQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||
}
|
||||
|
||||
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<>()) {
|
||||
@Override
|
||||
public MapOfSets<String, String> 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<Activity> parseToActivityQuery(String queryString, boolean withPrefix,
|
||||
boolean withAny) {
|
||||
return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny);
|
||||
public static ActivityQuery<Activity> parseToActivityQuery(String queryString, boolean withPrefix, boolean withAny,
|
||||
boolean allowType) {
|
||||
return parseToActivityQuery(new MapOfSets<>(), withPrefix, queryString, withAny, allowType);
|
||||
}
|
||||
|
||||
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<>()) {
|
||||
@Override
|
||||
public MapOfSets<String, String> getBagParamSet() {
|
||||
|
@ -274,7 +275,7 @@ public abstract class QueryParser extends CompositeParser {
|
|||
|
||||
@Override
|
||||
public boolean allowType() {
|
||||
return true;
|
||||
return allowType;
|
||||
}
|
||||
};
|
||||
Result result = parser.parse(queryString);
|
||||
|
|
|
@ -388,7 +388,7 @@ public class Inspector {
|
|||
List<Resource> resources = new ArrayList<>();
|
||||
|
||||
// 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
|
||||
query.setNavigation(new StrolchTypeNavigation(type));
|
||||
|
@ -438,7 +438,7 @@ public class Inspector {
|
|||
List<Order> orders = new ArrayList<>();
|
||||
|
||||
// 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 the data
|
||||
|
@ -472,7 +472,7 @@ public class Inspector {
|
|||
List<Activity> activities = new ArrayList<>();
|
||||
|
||||
// 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 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);
|
||||
|
|
|
@ -60,7 +60,7 @@ public class ModelQuery {
|
|||
List<Resource> resources = new ArrayList<>();
|
||||
|
||||
// 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
|
||||
long dataSetSize = 0L;
|
||||
|
@ -115,7 +115,7 @@ public class ModelQuery {
|
|||
List<Order> orders = new ArrayList<>();
|
||||
|
||||
// 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
|
||||
long dataSetSize = 0L;
|
||||
|
@ -171,7 +171,7 @@ public class ModelQuery {
|
|||
List<Activity> activities = new ArrayList<>();
|
||||
|
||||
// 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
|
||||
long dataSetSize = 0L;
|
||||
|
|
|
@ -23,56 +23,56 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldParseEmpty1() {
|
||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", false, false);
|
||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", false, false, true);
|
||||
assertFalse(query.hasNavigation());
|
||||
assertFalse(query.hasSelection());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void shouldParseEmpty2() {
|
||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", true, false);
|
||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery("", true, false, true);
|
||||
assertFalse(query.hasNavigation());
|
||||
assertFalse(query.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
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.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
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.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
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.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
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.hasSelection());
|
||||
}
|
||||
|
||||
@Test
|
||||
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();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(1, selections.size());
|
||||
|
@ -86,7 +86,7 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(1, selections.size());
|
||||
|
@ -101,7 +101,7 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(1, selections.size());
|
||||
|
@ -112,7 +112,7 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(2, selections.size());
|
||||
|
@ -126,7 +126,7 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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());
|
||||
assertTrue(query.hasNavigation());
|
||||
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
||||
|
@ -135,7 +135,7 @@ public class QueryParserTest {
|
|||
|
||||
@Test
|
||||
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());
|
||||
assertTrue(query.hasNavigation());
|
||||
StrolchTypeNavigation navigation = (StrolchTypeNavigation) query.getNavigation();
|
||||
|
@ -145,7 +145,7 @@ public class QueryParserTest {
|
|||
@Test
|
||||
public void shouldParseIdNameType() {
|
||||
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();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(2, selections.size());
|
||||
|
@ -157,7 +157,7 @@ public class QueryParserTest {
|
|||
@Test
|
||||
public void shouldParseWithWhitespace() {
|
||||
ResourceQuery<Resource> query = QueryParser.parseToResourceQuery(" id:foo name:bar type:asd \t ", true,
|
||||
false);
|
||||
false, true);
|
||||
OrSelection or = (OrSelection) query.getSelection();
|
||||
List<Selection> selections = or.getSelections();
|
||||
assertEquals(2, selections.size());
|
||||
|
@ -173,7 +173,7 @@ public class QueryParserTest {
|
|||
maps.addElement("parameters", "date");
|
||||
|
||||
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());
|
||||
OrSelection or = (OrSelection) query.getSelection();
|
||||
List<Selection> selections = or.getSelections();
|
||||
|
@ -200,7 +200,7 @@ public class QueryParserTest {
|
|||
maps.addElement("parameters", "date");
|
||||
|
||||
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());
|
||||
OrSelection or = (OrSelection) query.getSelection();
|
||||
List<Selection> selections = or.getSelections();
|
||||
|
|
Loading…
Reference in New Issue