source: trunk/java-client/org/nzdl/gsdl/service/NzdlServiceImpl.java@ 2055

Last change on this file since 2055 was 2055, checked in by paynter, 23 years ago

Initial revision

  • Property svn:keywords set to Author Date Id Revision
File size: 5.6 KB
Line 
1
2package org.nzdl.service;
3
4import java.io.*;
5import java.util.*;
6/** jdk 1.3 orb */
7import org.omg.CORBA.*;
8/** gsdl corba stuff */
9import org.nzdl.corba.gsdlInterface.*;
10import org.nzdl.util.*;
11
12public class NzdlServiceImpl extends java.lang.Object implements NzdlService {
13
14 private corbaiface m_nzdlServer = null;
15
16 public NzdlServiceImpl( String [] _args ) {
17 try {
18 System.err.println("before ORB.init");
19 // getting a reference to the remote NZDL server
20 org.omg.CORBA.ORB orb = ORB.init( _args, null );
21 System.err.println("after ORB.init - before IOR");
22 String ior = getIorKey();
23 System.err.println("ior = " + ior);
24 System.err.println("after IOR");
25 org.omg.CORBA.Object obj = orb.string_to_object(ior) ;
26 System.err.println("after org stringtoobject");
27 m_nzdlServer = corbaifaceHelper.narrow(obj);
28 System.err.println("after .narrow");
29 // basic setup
30 if (m_nzdlServer.initialise()) {
31 System.err.println("Nzdl init ... YES");
32 }
33 else {
34 System.err.println("Nzdl init ... NO");
35 System.err.println("Aborting service ...");
36 //System.exit(1);
37 }
38 } catch (Exception e) {
39 System.err.println("Error in service init:\n" + e) ;
40 System.err.println("Aborting service ...");
41 System.exit(1);
42 }
43 System.err.println("Service init ... YES");
44 }
45
46 public void configure( String _key, Set _values ) {
47 m_nzdlServer.configure( NzdlCorbaFactory.toCorbaText( _key ),
48 NzdlCorbaFactory.toCorbaTextArray( _values ));
49 }
50
51 public Set getCollectionSet( ) {
52 corbatext_tarrayHolder c_collSet = NzdlCorbaFactory.createCorbaTextArrayHolder();
53 m_nzdlServer.collectionList(c_collSet);
54 Set collSet = new HashSet();
55 for (int i=0; i<c_collSet.value.length; i++) {
56 collSet.add( NzdlCorbaFactory.toString( c_collSet.value[i] ) );
57 }
58 return collSet ;
59 }
60
61 public boolean hasCollection( String _name ) {
62 corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();
63 org.omg.CORBA.BooleanHolder c_has = new org.omg.CORBA.BooleanHolder();
64 m_nzdlServer.hasCollection( NzdlCorbaFactory.toCorbaText(_name), c_has, c_err );
65 if (c_err.value.value() != 0)
66 System.err.println("hasCollection error " + c_err.value.value());
67 return c_has.value;
68 }
69
70 public boolean pingCollection( String _name ) {
71 corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();
72 boolean result = m_nzdlServer.ping( NzdlCorbaFactory.toCorbaText(_name), c_err );
73 if (c_err.value.value() != 0)
74 System.err.println("pingCollection() error " + c_err.value.value());
75 return result;
76 }
77
78 public NzdlCollectionInfo getCollectionInfo( String _name ) {
79 corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();
80 corbaColInfoResponseHolder c_info = NzdlCorbaFactory.createColInfoResponseHolder();
81 m_nzdlServer.getCollectInfo( NzdlCorbaFactory.toCorbaText(_name), c_info, c_err );
82 if (c_err.value.value() != 0)
83 System.err.println("getCollectionInfo() error " + c_err.value.value());
84 return new NzdlCollectionInfo( c_info.value );
85 }
86
87 public Set getFilterSet( String _name ) {
88 System.err.println("TO BE IMPLEMENTED !!!");
89 return null ;
90 }
91
92 public Set getMetaTagSet( String _name ) {
93 System.err.println("TO BE IMPLEMENTED: DON'T KNOW HOW YET !!!");
94 return null ;
95 }
96
97 public String getDocument( String _name, String _docID ) {
98 corbatext_t c_name = NzdlCorbaFactory.toCorbaText( _name );
99 corbaDocRequestHolder c_request = NzdlCorbaFactory.createDocRequestHolder( _docID );
100 corbaDocResponseHolder c_response = NzdlCorbaFactory.createDocResponseHolder( );
101 corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();
102 m_nzdlServer.getDocument( c_name, c_request, c_response, c_err );
103 if (c_err.value.value() != 0)
104 System.err.println("getDocument() error " + c_err.value.value());
105 return NzdlCorbaFactory.toString( c_response.value.doc );
106 }
107
108 public Set getMetaData( String _name, String _docID, String _metaTag ) {
109 NzdlRequest request = new NzdlRequest( _docID, _metaTag );
110 NzdlResponse response = new NzdlResponse( );
111 service( _name, request, response );
112 NzdlResultSet resultSet = response.getResultSet();
113 /**
114 * Because a result set may contain several hits, we only return
115 * the set of metadata values of the specifed meta tag for the
116 * specified document ID.
117 */
118 return resultSet.getMetaData( _docID, _metaTag );
119 }
120
121 public Map getMetaData( String _name, List _docIDs, String _metaTag ) {
122 NzdlRequest request = new NzdlRequest( _docIDs, _metaTag );
123 NzdlResponse response = new NzdlResponse( );
124 service( _name, request, response );
125 NzdlResultSet resultSet = response.getResultSet();
126 //return resultSet.getMetaData( _docID, _metaTag );
127 return resultSet.getMetaData( _metaTag );
128 //return resultSet.getAllMetaData( );
129 }
130
131 public void service( String _name, NzdlRequest _request, NzdlResponse _response ) {
132 corbatext_t c_name = NzdlCorbaFactory.toCorbaText( _name );
133 corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();
134 m_nzdlServer.filter( c_name, _request.getFilter(), _response.getHolder(), c_err );
135 if (c_err.value.value() != 0)
136 System.err.println("service() error " + c_err.value.value());
137 }
138
139 private String getIorKey() {
140 String ior = null;
141 try {
142 LineNumberReader input
143 = new LineNumberReader(new FileReader("/tmp/localcorba.objid"));
144 ior = input.readLine();
145 }
146 catch (java.io.IOException e) {
147 System.err.println("Error reading IOR key:\n" + e);
148 System.err.println("Aborting service...");
149 System.exit(1);
150 }
151 return ior;
152 }
153
154}
155
156
157
158
159
160
161
162
163
164
165
166
Note: See TracBrowser for help on using the repository browser.