resource service tests
diff --git a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
index 4744e07..a559415 100644
--- a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
@@ -6,6 +6,7 @@
import de.ids_mannheim.korap.query.serialize.CollectionQueryProcessor;
import edu.emory.mathcs.backport.java.util.Arrays;
+import java.io.IOError;
import java.util.Map;
/**
@@ -48,9 +49,14 @@
* @param value
* @return
*/
- public KoralCollectionQueryBuilder fieldValue (String field, String op,
+ public KoralCollectionQueryBuilder with (String field, String op,
String value) {
- this.builder.append(field + op + value);
+ //String end = this.builder.substring(this.builder.length() - 4,
+ // this.builder.length() - 1);
+ //if (this.builder.length() != 0
+ // && (!end.contains("&") | !end.contains("|")))
+ // throw new RuntimeException("no join operator given!");
+ this.with(field + op + value);
return this;
}
@@ -92,10 +98,7 @@
}
- public Object rebaseCollection (JsonNode node) {
- if (node != null)
- return mergeWith(node);
-
+ public Object rebaseCollection () {
if (this.builder.length() == 0 && this.base == null)
return null;
@@ -110,15 +113,8 @@
if (this.base != null) {
// check that collection non empty
JsonNode tmp = this.base.deepCopy();
- if (request != null) {
- JsonNode tobase = request.at("/collection");
- request = tmp;
- JsonNode result = JsonBuilder.buildDocGroup(
- this.mergeOperator != null ? this.mergeOperator
- .toLowerCase() : "and", request
- .at("/collection"), tobase);
- ((ObjectNode) request).put("collection", result);
- }
+ if (request != null)
+ request = mergeWith(request);
else
request = tmp;
}
@@ -171,12 +167,7 @@
public String toJSON () {
- return JsonUtils.toJSON(rebaseCollection(null));
- }
-
-
- public String mergeToJSON (JsonNode node) {
- return JsonUtils.toJSON(rebaseCollection(node));
+ return JsonUtils.toJSON(rebaseCollection());
}
@@ -200,6 +191,8 @@
public static ObjectNode buildDocGroup (String op, JsonNode ... groups) {
+ System.out.println("GROUPS " + Arrays.asList(groups));
+
ObjectNode node = JsonUtils.createObjectNode();
node.put("@type", "koral:docGroup");
node.put("operation", "operation:" + op);
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java b/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
index ecb1133..084a686 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
@@ -39,7 +39,7 @@
c1.setDescription("Goethe-Werke in Weimar (seit 1775)");
bui = new KoralCollectionQueryBuilder();
- bui.with("textType = Aphorismus");
+ bui.with("textType=Aphorismus");
VirtualCollection c2 = new VirtualCollection();
c2.setName("Aphorismen");
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
index 0c54bd8..dd29b09 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
@@ -312,8 +312,6 @@
meta.addEntry("cutOff", cutoff);
ss.setMeta(meta.raw());
- //fixme: parsing should be done only in search functions!
- //String query = this.processor.processQuery(ss.toJSON(), user);
return Response.ok(ss.toJSON()).build();
}
@@ -367,6 +365,7 @@
KoralCollectionQueryBuilder cquery = new KoralCollectionQueryBuilder();
cquery.setBaseQuery(ss.toJSON());
+
String query = "";
KustvaktResource resource;
try {
@@ -387,10 +386,11 @@
if (resource != null) {
if (resource instanceof VirtualCollection)
- query = cquery.and().mergeToJSON(resource.getData());
+ query = JsonUtils.toJSON(cquery.and().mergeWith(
+ resource.getData()));
else if (resource instanceof Corpus) {
- cquery.and().with(
- Attributes.CORPUS_SIGLE + resource.getPersistentID());
+ cquery.and().with(Attributes.CORPUS_SIGLE, "=",
+ resource.getPersistentID());
query = cquery.toJSON();
}
}
@@ -464,7 +464,6 @@
serializer.setMeta(meta.raw());
String query = this.processor.processQuery(serializer.toJSON(), user);
- //String query = serializer.toJSON();
jlog.info("the serialized query {}", query);
@@ -484,7 +483,7 @@
}
}
else
- result = searchKrill.search(serializer.toJSON());
+ result = searchKrill.search(query);
KustvaktLogger.QUERY_LOGGER.trace("The result set: {}", result);
return Response.ok(result).build();
}
@@ -503,7 +502,7 @@
* @param locale
* @return
*/
- //fixme: does not use policyrewrite!
+ // todo: remove raw
@GET
@Path("/{type}/{id}/search")
public Response searchbyName (@Context SecurityContext securityContext,
@@ -533,7 +532,6 @@
QuerySerializer s = new QuerySerializer();
s.setQuery(query, ql, v);
- // fixme: be replaced by public collection rewrite
KoralCollectionQueryBuilder builder = new KoralCollectionQueryBuilder();
KustvaktResource resource;
@@ -565,10 +563,6 @@
s.setMeta(meta.raw());
query = s.toJSON();
- // PolicyParser parser = new PolicyParser(user);
- // query = parser.parse(s.toJSON());
- //todo: 1
-
}
String result;
try {