01: //=============================================================================
02: //=== Copyright (C) 2001-2005 Food and Agriculture Organization of the
03: //=== United Nations (FAO-UN), United Nations World Food Programme (WFP)
04: //=== and United Nations Environment Programme (UNEP)
05: //===
06: //=== This program is free software; you can redistribute it and/or modify
07: //=== it under the terms of the GNU General Public License as published by
08: //=== the Free Software Foundation; either version 2 of the License, or (at
09: //=== your option) any later version.
10: //===
11: //=== This program is distributed in the hope that it will be useful, but
12: //=== WITHOUT ANY WARRANTY; without even the implied warranty of
13: //=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: //=== General Public License for more details.
15: //===
16: //=== You should have received a copy of the GNU General Public License
17: //=== along with this program; if not, write to the Free Software
18: //=== Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: //===
20: //=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2,
21: //=== Rome - Italy. email: GeoNetwork@fao.org
22: //==============================================================================
23:
24: package org.fao.geonet.services.thesaurus;
25:
26: import jeeves.constants.Jeeves;
27: import jeeves.interfaces.Service;
28: import jeeves.server.ServiceConfig;
29: import jeeves.server.context.ServiceContext;
30: import jeeves.utils.Util;
31:
32: import org.fao.geonet.GeonetContext;
33: import org.fao.geonet.constants.Geonet;
34: import org.fao.geonet.constants.Params;
35: import org.fao.geonet.kernel.Thesaurus;
36: import org.fao.geonet.kernel.ThesaurusManager;
37: import org.jdom.Element;
38:
39: //=============================================================================
40:
41: /**
42: * For editing : adds a tag to a thesaurus. Access is restricted
43: */
44:
45: public class AddElement implements Service {
46: public void init(String appPath, ServiceConfig params)
47: throws Exception {
48: }
49:
50: // --------------------------------------------------------------------------
51: // ---
52: // --- Service
53: // ---
54: // --------------------------------------------------------------------------
55:
56: public Element exec(Element params, ServiceContext context)
57: throws Exception {
58: GeonetContext gc = (GeonetContext) context
59: .getHandlerContext(Geonet.CONTEXT_NAME);
60:
61: String ref = Util.getParam(params, Params.REF);
62: String namespace = Util.getParam(params, "namespace", "");
63: String newid = Util.getParam(params, "newid");
64: String thesaType = Util.getParam(params, "refType");
65: String prefLab = Util.getParam(params, "prefLab");
66: String lang = Util.getParam(params, "lang");
67: String definition = Util.getParam(params, "definition", "");
68:
69: Element elResp = new Element(Jeeves.Elem.RESPONSE);
70:
71: ThesaurusManager manager = gc.getThesaurusManager();
72: Thesaurus thesaurus = manager.getThesaurusByName(ref);
73:
74: if (thesaurus.isFreeCode(namespace, newid)) {
75:
76: if (thesaType.equals("place")) {
77: String east = Util.getParam(params, "east");
78: String west = Util.getParam(params, "west");
79: String south = Util.getParam(params, "south");
80: String north = Util.getParam(params, "north");
81: thesaurus.addElement(newid, prefLab, definition, east,
82: west, south, north, lang);
83: } else {
84: thesaurus.addElement(newid, prefLab, definition, lang);
85: }
86: elResp.addContent(new Element("selected").setText(ref));
87: elResp.addContent(new Element("mode").setText("edit"));
88: } else {
89: elResp
90: .addContent(new Element("error")
91: .addContent(new Element("message")
92: .setText("Code value already exists in thesaurus")));
93: }
94:
95: return elResp;
96: }
97: }
98:
99: // =============================================================================
|