blob: 73615e0a30d7fb2fe69329476825d71da9f9f95f [file] [log] [blame]
package de.ids_mannheim.korap.rewrite;
import org.springframework.beans.factory.annotation.Autowired;
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.rewrite.KoralNode.RewriteIdentifier;
import de.ids_mannheim.korap.user.User;
import de.ids_mannheim.korap.user.UserSettingProcessor;
/**
* @author hanl, margaretha
* @date 30/06/2015
*/
public class FoundryInject implements RewriteTask.IterableRewritePath {
@Autowired
protected LayerMapper mapper;
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) throws KustvaktException {
if (node.get("@type").equals("koral:span")) {
if (!node.isMissingNode("/wrap")) {
node = node.at("/wrap");
JsonNode term = rewriteQuery(node, config, user).rawNode();
node.replaceAt("/wrap", term,
new RewriteIdentifier("koral:term", "replace"));
}
}
else if (node.get("@type").equals("koral:term")
&& !node.has("foundry")) {
String layer;
if (node.has("layer")) {
layer = node.get("layer");
}
else {
layer = node.get("key");
}
UserSettingProcessor settingProcessor = null;
if (user != null) {
settingProcessor = user.getUserSettingProcessor();
}
String foundry = mapper.findFoundry(layer, settingProcessor);
if (foundry != null)
node.put("foundry", foundry);
}
return node;
}
@Override
public String path () {
return "query";
}
@Override
public JsonNode rewriteResult (KoralNode node) {
return null;
}
}