1 |
|
---|
2 | package org.nzdl.service;
|
---|
3 |
|
---|
4 | import java.io.*;
|
---|
5 | import java.util.*;
|
---|
6 | /** jdk 1.3 orb */
|
---|
7 | import org.omg.CORBA.*;
|
---|
8 | /** gsdl corba stuff */
|
---|
9 | import org.nzdl.corba.gsdlInterface.*;
|
---|
10 | import org.nzdl.util.*;
|
---|
11 |
|
---|
12 | public 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 |
|
---|