package org.cagrid.gaards.dorian.client;
import gov.nih.nci.cagrid.introduce.security.client.ServiceSecurityClient;
import java.io.InputStream;
import java.rmi.RemoteException;
import org.apache.axis.EngineConfiguration;
import org.apache.axis.client.AxisClient;
import org.apache.axis.configuration.FileProvider;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.apache.axis.types.URI.MalformedURIException;
import org.cagrid.gaards.dorian.stubs.DorianPortType;
import org.cagrid.gaards.dorian.stubs.service.DorianServiceAddressingLocator;
import org.globus.gsi.GlobusCredential;
import org.globus.wsrf.NotificationConsumerManager;
/**
* This class is autogenerated, DO NOT EDIT GENERATED GRID SERVICE ACCESS METHODS.
*
* This client is generated automatically by Introduce to provide a clean unwrapped API to the
* service.
*
* On construction the class instance will contact the remote service and retrieve it's security
* metadata description which it will use to configure the Stub specifically for each method call.
*
* @created by Introduce Toolkit version 1.4
*/
public abstract class DorianClientBase extends ServiceSecurityClient {
protected DorianPortType portType;
protected Object portTypeMutex;
protected NotificationConsumerManager consumer = null;
protected EndpointReferenceType consumerEPR = null;
public DorianClientBase(String url, GlobusCredential proxy) throws MalformedURIException, RemoteException {
super(url,proxy);
initialize();
}
public DorianClientBase(EndpointReferenceType epr, GlobusCredential proxy) throws MalformedURIException, RemoteException {
super(epr,proxy);
initialize();
}
protected void initialize() throws RemoteException {
this.portTypeMutex = new Object();
this.portType = createPortType();
}
protected DorianPortType createPortType() throws RemoteException {
DorianServiceAddressingLocator locator = new DorianServiceAddressingLocator();
// attempt to load our context sensitive wsdd file
InputStream resourceAsStream = getClass().getResourceAsStream("client-config.wsdd");
if (resourceAsStream != null) {
// we found it, so tell axis to configure an engine to use it
EngineConfiguration engineConfig = new FileProvider(resourceAsStream);
// set the engine of the locator
locator.setEngine(new AxisClient(engineConfig));
}
DorianPortType port = null;
try {
port = locator.getDorianPortTypePort(getEndpointReference());
} catch (Exception e) {
throw new RemoteException("Unable to locate portType:" + e.getMessage(), e);
}
return port;
}
}