source: trunk/gsdl3/src/java/org/greenstone/gsdl3/comms/Communicator.java@ 4035

Last change on this file since 4035 was 4035, checked in by kjdon, 21 years ago

moved the string version of process to teh base class

  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/*
2 * Communicator.java
3 * Copyright (C) 2002 New Zealand Digital Library, http://www.nzdl.org
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19package org.greenstone.gsdl3.comms;
20
21import org.greenstone.gsdl3.core.ModuleInterface;
22import org.greenstone.gsdl3.util.*;
23
24//XML packages
25import org.w3c.dom.Element;
26import org.w3c.dom.Node;
27
28/** Communicator - base class for Modules that talk via some protocol to other modules
29 *
30 * can be used by a MessageRouter - in this case set localSiteName
31 * can be used by any other module - in this case it has no local site - dont set localsiteName. the setting of localSiteName affects the handling of teh to and from fields in the message.
32 * @author <a href="mailto:[email protected]">Katherine Don</a>
33 * @version $Revision: 4035 $
34 */
35abstract public class Communicator
36 implements ModuleInterface {
37
38 /** name of local site */
39 protected String local_site_name_ = null;
40
41 /** name of site to connect to */
42 protected String remote_site_name_=null;
43
44 /** converter for String to DOM and vice versa */
45 protected XMLConverter converter_= null;
46
47 public Communicator() {
48 converter_ = new XMLConverter();
49 }
50
51 public void setLocalSiteName(String name) {
52 local_site_name_ = name;
53 }
54 /** this should be done as part of configure */
55 public void setRemoteSiteName(String name) {
56 remote_site_name_ = name;
57 }
58 /** configures the Communicator using the <site> element */
59 abstract public boolean configure(Element site_elem);
60
61 public String process(String xml_in) {
62 Element e = converter_.getDOM(xml_in).getDocumentElement();
63 Node result = process(e);
64 return converter_.getString(result);
65 }
66
67 abstract public Element process(Element xml_in);
68}
Note: See TracBrowser for help on using the repository browser.