blob: 56ff658b587d4e99890cd8bc0a060d29696d3a27 [file] [log] [blame]
Michael Hanl1e18cb42015-08-06 20:57:35 +02001package de.ids_mannheim.korap.resource.rewrite;
2
3import com.fasterxml.jackson.databind.JsonNode;
Michael Hanl3a1dfe12016-02-17 11:26:07 +01004import de.ids_mannheim.korap.config.BeanConfiguration;
Michael Hanl1e18cb42015-08-06 20:57:35 +02005import de.ids_mannheim.korap.config.KustvaktConfiguration;
Michael Hanl3a1dfe12016-02-17 11:26:07 +01006import de.ids_mannheim.korap.exceptions.KustvaktException;
7import de.ids_mannheim.korap.handlers.UserSettingsDao;
Michael Hanl1e18cb42015-08-06 20:57:35 +02008import de.ids_mannheim.korap.resource.LayerMapper;
Michael Hanl59bff812015-10-27 23:10:32 +01009import de.ids_mannheim.korap.user.User;
Michael Hanl3a1dfe12016-02-17 11:26:07 +010010import de.ids_mannheim.korap.user.UserSettings;
Michael Hanlac4962c2015-09-21 22:21:05 +020011
Michael Hanl1e18cb42015-08-06 20:57:35 +020012/**
13 * @author hanl
14 * @date 30/06/2015
15 */
Michael Hanl022543e2015-11-17 21:25:25 +010016public class FoundryInject implements RewriteTask.IterableRewriteAt {
Michael Hanl1e18cb42015-08-06 20:57:35 +020017
Michael Hanl1e18cb42015-08-06 20:57:35 +020018 @Override
Michael Hanlf0785322015-11-13 16:14:45 +010019 public JsonNode preProcess(KoralNode node, KustvaktConfiguration config,
Michael Hanl3a1dfe12016-02-17 11:26:07 +010020 User user) throws KustvaktException {
Michael Hanl1e18cb42015-08-06 20:57:35 +020021 LayerMapper mapper;
Michael Hanl5fac8ab2016-01-29 16:33:04 +010022 // inject user settings from cache!
Michael Hanl3a1dfe12016-02-17 11:26:07 +010023 if (user != null && BeanConfiguration.hasContext()) {
24 UserSettingsDao dao = new UserSettingsDao(
25 BeanConfiguration.getBeans().getPersistenceClient());
26 UserSettings settings = dao.get(user);
27 mapper = new LayerMapper(config, settings);
28 }else
Michael Hanl1e18cb42015-08-06 20:57:35 +020029 mapper = new LayerMapper(config);
30
Michael Hanlf0785322015-11-13 16:14:45 +010031 if (node.get("@type").equals("koral:term") && !node.has("foundry")) {
Michael Hanl1e18cb42015-08-06 20:57:35 +020032 String layer;
Michael Hanlf0785322015-11-13 16:14:45 +010033 if (node.has("layer"))
34 layer = node.get("layer");
Michael Hanl1e18cb42015-08-06 20:57:35 +020035 else
Michael Hanlf0785322015-11-13 16:14:45 +010036 layer = node.get("key");
Michael Hanl1e18cb42015-08-06 20:57:35 +020037 String foundry = mapper.findFoundry(layer);
Michael Hanlf0785322015-11-13 16:14:45 +010038 node.put("foundry", foundry);
Michael Hanl1e18cb42015-08-06 20:57:35 +020039 }
40 return node.rawNode();
41 }
Michael Hanl022543e2015-11-17 21:25:25 +010042
43 @Override
44 public String path() {
45 return "query";
46 }
47
48 @Override
49 public JsonNode postProcess(KoralNode node) {
50 return null;
51 }
Michael Hanl1e18cb42015-08-06 20:57:35 +020052}