package fr.lteconsulting.hexa.client.comm;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
public class RequestDesc
{
String service;
String interfaceChecksum;
String method = null;
JSONArray params = null;
String key = null;
String extraInfo = null;
public RequestDesc( String service, String interfaceChecksum, int method, JSONArray params )
{
this( service, interfaceChecksum, String.valueOf( method ), params );
}
public RequestDesc( String service, String interfaceChecksum, String method, JSONArray params )
{
this.service = service;
this.interfaceChecksum = interfaceChecksum;
this.method = method;
this.params = params;
}
public void setExtraInfo( String extraInfo )
{
this.extraInfo = extraInfo;
}
public String getExtraInfo()
{
return extraInfo;
}
public String getUniqueKey()
{
if( key == null )
key = _getUniqueKey();
return key;
}
public JSONArray getJson()
{
JSONArray obj = new JSONArray();
obj.set( 0, new JSONString( method ) );
obj.set( 1, params );
return obj;
}
// calculate the unique key of that request
private String _getUniqueKey()
{
StringBuilder b = new StringBuilder();
b.append( service );
b.append( "#" );
b.append( method );
if( params != null )
{
b.append( "#" );
b.append( params.toString() );
}
return b.toString();
}
}