package org.mobicents.slee.resource.xcapclient;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import javax.slee.resource.ActivityAlreadyExistsException;
import javax.slee.resource.CouldNotStartActivityException;
import org.apache.commons.httpclient.HttpException;
import org.mobicents.slee.resource.xcapclient.AsyncActivity;
import org.mobicents.slee.resource.xcapclient.XCAPClientResourceAdaptorSbbInterface;
import org.mobicents.slee.resource.xcapclient.XCAPResourceAdaptorActivityHandle;
import org.openxdm.xcap.client.RequestHeader;
import org.openxdm.xcap.client.Response;
import org.openxdm.xcap.common.key.XcapUriKey;
public class XCAPClientResourceAdaptorSbbInterfaceImpl implements XCAPClientResourceAdaptorSbbInterface {
private XCAPClientResourceAdaptor ra;
public XCAPClientResourceAdaptorSbbInterfaceImpl(XCAPClientResourceAdaptor ra) {
this.ra = ra;
}
public AsyncActivity createActivity() throws ActivityAlreadyExistsException, CouldNotStartActivityException {
// generate id
String id = UUID.randomUUID().toString();
// create handle
XCAPResourceAdaptorActivityHandle handle = new XCAPResourceAdaptorActivityHandle(id);
// create activity
AsyncActivityImpl activity = new AsyncActivityImpl(ra,handle);
// start activity
ra.getSleeEndpoint().activityStarted(handle);
// save handle in ra
ra.getActivities().put(handle,activity);
return activity;
}
public Response delete(XcapUriKey key, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().delete(key, additionalRequestHeaders);
}
public Response deleteIfMatch(XcapUriKey key, String eTag, List<RequestHeader> additionalRequestHeaders)
throws HttpException, IOException {
return ra.getClient().deleteIfMatch(key, eTag, additionalRequestHeaders);
}
public Response deleteIfNoneMatch(XcapUriKey key, String eTag, List<RequestHeader> additionalRequestHeaders)
throws HttpException, IOException {
return ra.getClient().deleteIfNoneMatch(key, eTag, additionalRequestHeaders);
}
public Response get(XcapUriKey key, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().get(key, additionalRequestHeaders);
}
public Response put(XcapUriKey key, String mimetype, String content, List<RequestHeader> additionalRequestHeaders)
throws HttpException, IOException {
return ra.getClient().put(key, mimetype, content, additionalRequestHeaders);
}
public Response put(XcapUriKey key, String mimetype, byte[] content, List<RequestHeader> additionalRequestHeaders)
throws HttpException, IOException {
return ra.getClient().put(key, mimetype, content, additionalRequestHeaders);
}
public Response putIfMatch(XcapUriKey key, String eTag, String mimetype,
String content, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().putIfMatch(key, eTag, mimetype, content, additionalRequestHeaders);
}
public Response putIfMatch(XcapUriKey key, String eTag, String mimetype,
byte[] content, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().putIfMatch(key, eTag, mimetype, content, additionalRequestHeaders);
}
public Response putIfNoneMatch(XcapUriKey key, String eTag, String mimetype,
String content, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().putIfNoneMatch(key, eTag, mimetype, content, additionalRequestHeaders);
}
public Response putIfNoneMatch(XcapUriKey key, String eTag, String mimetype,
byte[] content, List<RequestHeader> additionalRequestHeaders) throws HttpException, IOException {
return ra.getClient().putIfNoneMatch(key, eTag, mimetype, content, additionalRequestHeaders);
}
public void shutdown() {
throw new UnsupportedOperationException("shutdown of ra interface not supported");
}
public boolean getDoAuthentication() {
return ra.getClient().getDoAuthentication();
}
public void setAuthenticationCredentials(String userName, String password) {
ra.getClient().setAuthenticationCredentials(userName, password);
}
public void setDoAuthentication(boolean value) {
ra.getClient().setDoAuthentication(value);
}
}