View Javadoc

1   package com.ontotext.ordi.wsmo4rdf.remote.client;
2   
3   import java.net.MalformedURLException;
4   import java.net.URL;
5   
6   import javax.xml.namespace.QName;
7   
8   import com.ontotext.ordi.wsmo4rdf.remote.ORDIServiceType;
9   import com.ontotext.ordi.wsmo4rdf.remote.client.conn.WsmoConnectionService;
10  import com.ontotext.ordi.wsmo4rdf.remote.client.conn.WsmoConnectionService_Service;
11  import com.ontotext.ordi.wsmo4rdf.remote.client.fact.RemoteFactory;
12  import com.ontotext.ordi.wsmo4rdf.remote.client.fact.RemoteFactory_Service;
13  import com.ontotext.ordi.wsmo4rdf.remote.client.src.WsmoSourceService;
14  import com.ontotext.ordi.wsmo4rdf.remote.client.src.WsmoSourceService_Service;
15  
16  public class RemoteWsmo4rdfGate {
17  	private final String host;
18  	private final int port;
19  
20  	private final RemoteFactory factoryService;
21  	private final WsmoSourceService sourceService;
22  	private final WsmoConnectionService connectionService;
23  
24  	public RemoteWsmo4rdfGate(final String host, final int port) {
25  		this.host = host;
26  		this.port = port;
27  		
28  		this.factoryService = getRemoteFactoryPort();
29  		this.sourceService = getWsmoSourceServicePort();
30  		this.connectionService = getWsmoConnectionServicePort();
31  	}
32  
33  	public String getHost() {
34  		return host;
35  	}
36  
37  	public int getPort() {
38  		return port;
39  	}
40  	
41  	private RemoteFactory getRemoteFactoryPort() {
42  		URL wsdlUrl = constructWsdlUrl(host, port, ORDIServiceType.FACTORY);
43  
44  		QName svcQName = new QName("http://server.remote.wsmo4rdf.ordi.ontotext.com/", "RemoteFactory");
45  		RemoteFactory_Service webService = new RemoteFactory_Service(wsdlUrl, svcQName);
46  		return webService.getRemoteFactoryImplPort();
47  	}
48  	
49  	private WsmoSourceService getWsmoSourceServicePort() {
50  		URL wsdlUrl = constructWsdlUrl(host, port, ORDIServiceType.SOURCE);
51  
52  		QName svcQName = new QName("http://server.remote.wsmo4rdf.ordi.ontotext.com/", "WsmoSourceService");
53  		WsmoSourceService_Service webService = new WsmoSourceService_Service(wsdlUrl, svcQName);
54  		return webService.getWsmoSourceServiceImplPort();
55  	}
56  	
57  	private WsmoConnectionService getWsmoConnectionServicePort() {
58  		URL wsdlUrl = constructWsdlUrl(host, port, ORDIServiceType.CONNECTION);
59  		
60  		QName svcQName = new QName("http://server.remote.wsmo4rdf.ordi.ontotext.com/", "WsmoConnectionService");
61  		WsmoConnectionService_Service webService = new WsmoConnectionService_Service(wsdlUrl, svcQName);
62  		return webService.getWsmoConnectionServiceImplPort();
63  	}
64  	
65  	private static URL constructWsdlUrl(final String host, final int port, ORDIServiceType service) {
66  		if ( host == null || port < 0 || service == null) {
67  			throw new IllegalArgumentException();
68  		}
69  		
70  		URL wsdlUrl = null;
71  		try {
72  			wsdlUrl = new URL("http://" + host + ":" + port + "/" + service.getServiceName()+ "?wsdl");
73  		} catch (MalformedURLException e) {
74  			throw new IllegalArgumentException("URL construction failed");
75  		}
76  		assert(wsdlUrl != null);
77  		return wsdlUrl;
78  	}
79  
80  	public RemoteFactory getFactoryService() {
81  	    return factoryService;
82  	}
83  
84  	public WsmoSourceService getSourceService() {
85  	    return sourceService;
86  	}
87  
88  	public WsmoConnectionService getConnectionService() {
89  	    return connectionService;
90  	}
91  }