org.stefaniuk.json.service
Class JsonServiceInvoker

java.lang.Object
  extended by org.stefaniuk.json.service.JsonServiceInvoker

public class JsonServiceInvoker
extends Object

JSON service invoker.

This class is responsible for building Service Mapping Description, processing request and calling the method. It is created by the JsonServiceRegistry as a wrapper of JSON-RPC class and stored in the registry.

Since:
2010/09/20
Version:
1.0.0
Author:
Daniel Stefaniuk

Nested Class Summary
static class JsonServiceInvoker.ContentType
          JSON-RPC response content type.
static class JsonServiceInvoker.DataType
          JSON-RPC supported data types.
static class JsonServiceInvoker.Envelope
          JSON-RPC envelope type.
static class JsonServiceInvoker.Transport
          JSON-RPC transport type.
static class JsonServiceInvoker.Version
          SMD version.
 
Constructor Summary
JsonServiceInvoker(Class<?> clazz)
          Constructor
JsonServiceInvoker(Object obj)
          Constructor
 
Method Summary
 JsonServiceInvoker.ContentType getContentType()
          Gets content type.
 JsonServiceInvoker.Envelope getEnvelope()
          Gets envelope.
protected  org.codehaus.jackson.JsonNode getServiceMap()
          Returns Service Mapping Description as JSON object.
 JsonServiceInvoker.Transport getTransport()
          Gets transport.
 JsonServiceInvoker.Version getVersion()
          Gets version.
protected  org.codehaus.jackson.JsonNode process(javax.servlet.http.HttpServletRequest request, org.codehaus.jackson.node.ObjectNode requestNode)
          Processes JSON-RPC request.
protected  org.codehaus.jackson.JsonNode process(javax.servlet.http.HttpServletRequest request, String method, Object... args)
          Processes request.
 JsonServiceInvoker setContentType(JsonServiceInvoker.ContentType contentType)
          Sets content type.
 JsonServiceInvoker setEnvelope(JsonServiceInvoker.Envelope envelope)
          Sets envelope.
 JsonServiceInvoker setTransport(JsonServiceInvoker.Transport transport)
          Sets transport.
 JsonServiceInvoker setVersion(JsonServiceInvoker.Version version)
          Sets version.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JsonServiceInvoker

public JsonServiceInvoker(Class<?> clazz)
Constructor

Parameters:
clazz - Class

JsonServiceInvoker

public JsonServiceInvoker(Object obj)
Constructor

Parameters:
obj - Object
Method Detail

setTransport

public JsonServiceInvoker setTransport(JsonServiceInvoker.Transport transport)
Sets transport.

Parameters:
transport -
Returns:
Returns JsonServiceInvoker object.

getTransport

public JsonServiceInvoker.Transport getTransport()
Gets transport.

Returns:
Returns JsonServiceInvoker.Transport object.

setContentType

public JsonServiceInvoker setContentType(JsonServiceInvoker.ContentType contentType)
Sets content type.

Parameters:
contentType -
Returns:
Returns JsonServiceInvoker object.

getContentType

public JsonServiceInvoker.ContentType getContentType()
Gets content type.

Returns:
Returns JsonServiceInvoker.ContentType object.

setEnvelope

public JsonServiceInvoker setEnvelope(JsonServiceInvoker.Envelope envelope)
Sets envelope.

Parameters:
envelope -
Returns:
Returns JsonServiceInvoker object.

getEnvelope

public JsonServiceInvoker.Envelope getEnvelope()
Gets envelope.

Returns:
Returns JsonServiceInvoker.Envelope object.

setVersion

public JsonServiceInvoker setVersion(JsonServiceInvoker.Version version)
Sets version.

Parameters:
version -
Returns:
Returns JsonServiceInvoker object.

getVersion

public JsonServiceInvoker.Version getVersion()
Gets version.

Returns:
Returns JsonServiceInvoker.Version object.

getServiceMap

protected org.codehaus.jackson.JsonNode getServiceMap()
Returns Service Mapping Description as JSON object.

Returns:
Returns JSON object.

process

protected org.codehaus.jackson.JsonNode process(javax.servlet.http.HttpServletRequest request,
                                                org.codehaus.jackson.node.ObjectNode requestNode)
                                         throws IllegalAccessException,
                                                InvocationTargetException,
                                                org.codehaus.jackson.JsonParseException,
                                                org.codehaus.jackson.map.JsonMappingException,
                                                IOException
Processes JSON-RPC request.

Parameters:
request - HTTP request
requestNode - JSON-RPC request
Returns:
Returns JSON object.
Throws:
IllegalAccessException
InvocationTargetException
org.codehaus.jackson.JsonParseException
org.codehaus.jackson.map.JsonMappingException
IOException

process

protected org.codehaus.jackson.JsonNode process(javax.servlet.http.HttpServletRequest request,
                                                String method,
                                                Object... args)
                                         throws IllegalAccessException,
                                                InvocationTargetException,
                                                org.codehaus.jackson.JsonParseException,
                                                org.codehaus.jackson.map.JsonMappingException,
                                                IOException
Processes request.

Parameters:
request - HTTP request
method - Method name
Returns:
Returns JSON object.
Throws:
IllegalAccessException
InvocationTargetException
org.codehaus.jackson.JsonParseException
org.codehaus.jackson.map.JsonMappingException
IOException


Copyright © 2013. All Rights Reserved.