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 java.io.File;
27:
28: import jeeves.interfaces.Service;
29: import jeeves.server.ServiceConfig;
30: import jeeves.server.context.ServiceContext;
31: import jeeves.utils.BinaryFile;
32: import jeeves.utils.Util;
33:
34: import org.fao.geonet.GeonetContext;
35: import org.fao.geonet.constants.Geonet;
36: import org.fao.geonet.constants.Params;
37: import org.fao.geonet.kernel.Thesaurus;
38: import org.fao.geonet.kernel.ThesaurusManager;
39: import org.jdom.Element;
40:
41: //=============================================================================
42:
43: /**
44: *
45: * Download one thesaurus file
46: */
47: public class Download implements Service {
48: //--------------------------------------------------------------------------
49: //---
50: //--- Init
51: //---
52: //--------------------------------------------------------------------------
53:
54: public void init(String appPath, ServiceConfig params)
55: throws Exception {
56: }
57:
58: //--------------------------------------------------------------------------
59: //---
60: //--- API
61: //---
62: //--------------------------------------------------------------------------
63:
64: /**
65: * @param params must contain
66: * @see Params.NAME key value
67: */
68: public Element exec(Element params, ServiceContext context)
69: throws Exception {
70: GeonetContext gc = (GeonetContext) context
71: .getHandlerContext(Geonet.CONTEXT_NAME);
72: ThesaurusManager manager = gc.getThesaurusManager();
73:
74: // Paramètres : thesaurus
75: String name = Util.getParam(params, Params.REF);
76:
77: Thesaurus directory = manager.getThesaurusByName(name);
78: if (directory == null)
79: throw new IllegalArgumentException(
80: "Thesaurus not found --> " + name);
81:
82: File directoryFile = directory.getFile();
83: if (!directoryFile.exists())
84: throw new IllegalArgumentException(
85: "Thesaurus file not found --> " + name);
86:
87: return BinaryFile.encode(200, directoryFile.getAbsolutePath());
88: }
89:
90: }
|