SimpleRpcRequest.java
package eu.javaexperience.rpc;
import java.util.Map;
import eu.javaexperience.collection.map.SmallMap;
import eu.javaexperience.datareprez.DataObject;
import eu.javaexperience.semantic.references.MayNotNull;
public class SimpleRpcRequest implements RpcRequest
{
protected final RpcSession session;
protected final DataObject request;
protected DataObject response;
protected final Map<String, Object> reqProps = new SmallMap<>();
public SimpleRpcRequest(RpcSession session)
{
this.session = session;
this.request = session.getDefaultRpcProtocolHandler().getDefaultCommunicationProtocolPrototype().newObjectInstance();
}
public SimpleRpcRequest(RpcSession session, DataObject request)
{
this.session = session;
this.request = request;
}
@Override
public @MayNotNull RpcSession getRpcSession()
{
return session;
}
@Override
public @MayNotNull RpcProtocolHandler getProtocolHandler()
{
return session.getDefaultRpcProtocolHandler();
}
@Override
public DataObject getRequestData()
{
return request;
}
@Override
public DataObject getResponseData()
{
return response;
}
public Map<String, Object> getRequestProperties()
{
return reqProps;
}
@Override
public DataObject fillResponse(DataObject response)
{
DataObject prev = this.response;
this.response = response;
return prev;
}
}