package com.bansheeproject;
import com.bansheeproject.engine.BansheeDispatcher;
import com.bansheeproject.engine.URLDispatcher;
import com.bansheeproject.log.BansheeLogFactory;
import com.bansheeproject.log.BansheeLogger;
import com.bansheeproject.utils.ArrayUtils;
/**
* It is used to perform an invocation through the
* address without caring about the invocation protocol.
*
* @author Alexandre Saudate
* @since 1.0
*
*/
public class AddressServiceData extends ServiceData{
private static BansheeLogger logger = BansheeLogFactory.getDefaultLogger(AddressServiceData.class);
private String url;
private HttpHeader[] headers;
private HttpMethod method;
public AddressServiceData(String url, HttpHeader... headers) {
super();
logger.debug("Creating an address service data with url: " + url);
logger.debug("Headers: " + ArrayUtils.parseArrayToString(headers));
this.url = url;
this.headers = headers;
}
private URLDispatcher dispatcher ;
public BansheeDispatcher getDispatcher() {
logger.debug(new StringBuilder("Instantiating an URLDispatcher with url ").append(url).append(", HTTP method ").append(getHttpMethod()).append(" and headers ").append(ArrayUtils.parseArrayToString(headers)).toString());
URLDispatcher dispatcher = new URLDispatcher(url, getHttpMethod(), headers);
logger.debug(new StringBuilder("Returning dispatcher ").append(dispatcher).toString());
return dispatcher;
}
public HttpMethod getHttpMethod () {
return HttpMethod.POST;
}
@Override
public void setAddress(String address) {
this.url = address;
}
}