usersettings injection for foundry rewrite
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
index e4a8e4b..56ff658 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
@@ -1,9 +1,13 @@
package de.ids_mannheim.korap.resource.rewrite;
import com.fasterxml.jackson.databind.JsonNode;
+import de.ids_mannheim.korap.config.BeanConfiguration;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.handlers.UserSettingsDao;
import de.ids_mannheim.korap.resource.LayerMapper;
import de.ids_mannheim.korap.user.User;
+import de.ids_mannheim.korap.user.UserSettings;
/**
* @author hanl
@@ -11,15 +15,17 @@
*/
public class FoundryInject implements RewriteTask.IterableRewriteAt {
-
@Override
public JsonNode preProcess(KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user) throws KustvaktException {
LayerMapper mapper;
// inject user settings from cache!
- if (user != null)
- mapper = new LayerMapper(config, null);
- else
+ if (user != null && BeanConfiguration.hasContext()) {
+ UserSettingsDao dao = new UserSettingsDao(
+ BeanConfiguration.getBeans().getPersistenceClient());
+ UserSettings settings = dao.get(user);
+ mapper = new LayerMapper(config, settings);
+ }else
mapper = new LayerMapper(config);
if (node.get("@type").equals("koral:term") && !node.has("foundry")) {
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
index c1fefa0..b6f7785 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.user.User;
import de.ids_mannheim.korap.utils.JsonUtils;
import org.slf4j.Logger;
@@ -167,13 +168,19 @@
continue;
}
}
-
- if (!post && task instanceof RewriteTask.RewriteBefore)
- ((RewriteTask.RewriteBefore) task)
- .preProcess(node, this.config, user);
- else if (task instanceof RewriteTask.RewriteAfter)
- ((RewriteTask.RewriteAfter) task).postProcess(node);
-
+ try {
+ if (!post && task instanceof RewriteTask.RewriteBefore) {
+ ((RewriteTask.RewriteBefore) task)
+ .preProcess(node, this.config, user);
+ }else if (task instanceof RewriteTask.RewriteAfter) {
+ ((RewriteTask.RewriteAfter) task).postProcess(node);
+ }
+ }catch (KustvaktException e) {
+ jlog.error("Error in rewrite processor {} for node {}",
+ task.getClass().getSimpleName(),
+ node.rawNode().toString());
+ e.printStackTrace();
+ }
if (node.isRemove())
break;
}
@@ -189,14 +196,19 @@
if ((rwa.at() != null && !node.at(rwa.at()).isMissingNode()))
next = node.at(rwa.at());
}
-
- if (!post && task instanceof RewriteTask.RewriteBefore)
- ((RewriteTask.RewriteBefore) task)
- .preProcess(KoralNode.wrapNode(next), this.config,
- user);
- else
- ((RewriteTask.RewriteAfter) task)
- .postProcess(KoralNode.wrapNode(next));
+ try {
+ if (!post && task instanceof RewriteTask.RewriteBefore)
+ ((RewriteTask.RewriteBefore) task)
+ .preProcess(KoralNode.wrapNode(next), this.config,
+ user);
+ else
+ ((RewriteTask.RewriteAfter) task)
+ .postProcess(KoralNode.wrapNode(next));
+ }catch (KustvaktException e) {
+ jlog.error("Error in rewrite processor {} for node {}",
+ task.getClass().getSimpleName(), node.toString());
+ e.printStackTrace();
+ }
}
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
index 47b65ae..8166961 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.user.User;
/**
@@ -18,7 +19,7 @@
* @return
*/
JsonNode preProcess(KoralNode node, KustvaktConfiguration config,
- User user);
+ User user) throws KustvaktException;
}
/**
@@ -27,7 +28,7 @@
* after {@link de.ids_mannheim.korap.resource.rewrite.RewriteTask.IterableRewriteAt} have been processed
*/
interface RewriteAfter extends RewriteTask {
- JsonNode postProcess(KoralNode node);
+ JsonNode postProcess(KoralNode node) throws KustvaktException;
}
/**