public class JSONRPC2Notification extends JSONRPC2Message
Notifications provide a mean for calling a remote procedure without generating a response. Note that notifications are inherently unreliable as no confirmation is sent back to the caller.
Notifications have the same JSON structure as requests, except that they lack an identifier:
method The name of the remote method to call.
params The required method parameters (if any), which can
be packed into a JSON array or object.
jsonrpc A string indicating the JSON-RPC protocol version
set to "2.0".
Here is a sample JSON-RPC 2.0 notification string:
{
"method" : "progressNotify",
"params" : ["75%"],
"jsonrpc" : "2.0"
}
This class provides two methods to obtain a request object:
parse(java.lang.String) method, or
Example 1: Parsing a notification string:
String jsonString = "{\"method\":\"progressNotify\",\"params\":[\"75%\"],\"jsonrpc\":\"2.0\"}";
JSONRPC2Notification notification = null;
try {
notification = JSONRPC2Notification.parse(jsonString);
} catch (JSONRPC2ParseException e) {
// handle exception
}
Example 2: Recreating the above request:
String method = "progressNotify";
List<Object> params = new Vector<Object>();
params.add("75%");
JSONRPC2Notification notification = new JSONRPC2Notification(method, params);
System.out.println(notification);
The mapping between JSON and Java entities (as defined by the underlying JSON Smart library):
true|false <---> java.lang.Boolean
number <---> java.lang.Number
string <---> java.lang.String
array <---> java.util.List
object <---> java.util.Map
null <---> null
| Constructor and Description |
|---|
JSONRPC2Notification(String method)
Constructs a new JSON-RPC 2.0 notification with no parameters.
|
JSONRPC2Notification(String method,
List<Object> positionalParams)
Constructs a new JSON-RPC 2.0 notification with positional (JSON
array) parameters.
|
JSONRPC2Notification(String method,
Map<String,Object> namedParams)
Constructs a new JSON-RPC 2.0 notification with named (JSON object)
parameters.
|
| Modifier and Type | Method and Description |
|---|---|
String |
getMethod()
Gets the name of the requested method.
|
Map<String,Object> |
getNamedParams()
Gets the named parameters.
|
Object |
getParams()
Deprecated.
|
JSONRPC2ParamsType |
getParamsType()
|
List<Object> |
getPositionalParams()
Gets the positional (JSON array) parameters.
|
static JSONRPC2Notification |
parse(String jsonString)
Parses a JSON-RPC 2.0 notification string.
|
static JSONRPC2Notification |
parse(String jsonString,
boolean preserveOrder)
Parses a JSON-RPC 2.0 notification string.
|
static JSONRPC2Notification |
parse(String jsonString,
boolean preserveOrder,
boolean ignoreVersion)
Parses a JSON-RPC 2.0 notification string.
|
static JSONRPC2Notification |
parse(String jsonString,
boolean preserveOrder,
boolean ignoreVersion,
boolean parseNonStdAttributes)
Parses a JSON-RPC 2.0 notification string.
|
void |
setMethod(String method)
Sets the name of the requested method.
|
void |
setNamedParams(Map<String,Object> namedParams)
Sets the named (JSON object) request parameters.
|
void |
setParams(Object params)
Deprecated.
|
void |
setPositionalParams(List<Object> positionalParams)
Sets the positional (JSON array) request parameters.
|
JsonObject |
toJSONObject()
Returns a JSON object representing this JSON-RPC 2.0 message.
|
appendNonStdAttribute, getNonStdAttribute, getNonStdAttributes, toJSONString, toStringpublic JSONRPC2Notification(String method)
method - The name of the requested method. Must not be
null.public JSONRPC2Notification(String method, List<Object> positionalParams)
method - The name of the requested method. Must not
be null.positionalParams - The positional (JSON array) parameters,
null if none.public String getMethod()
public Map<String,Object> getNamedParams()
null if none or
positional.@Deprecated public Object getParams()
This method was deprecated in version 1.30. Use
getPositionalParams() or getNamedParams() instead.
List<Object> for positional
(JSON array), Map<String,Object> for named
(JSON object), or null if none.public JSONRPC2ParamsType getParamsType()
public List<Object> getPositionalParams()
null if none
or named.public static JSONRPC2Notification parse(String jsonString) throws JSONRPC2ParseException
jsonString - The JSON-RPC 2.0 notification string, UTF-8
encoded. Must not be null.JSONRPC2ParseException - With detailed message if parsing
failed.public static JSONRPC2Notification parse(String jsonString, boolean preserveOrder) throws JSONRPC2ParseException
jsonString - The JSON-RPC 2.0 notification string, UTF-8
encoded. Must not be null.preserveOrder - true to preserve the order of JSON
object members in parameters.JSONRPC2ParseException - With detailed message if parsing
failed.public static JSONRPC2Notification parse(String jsonString, boolean preserveOrder, boolean ignoreVersion) throws JSONRPC2ParseException
jsonString - The JSON-RPC 2.0 notification string, UTF-8
encoded. Must not be null.preserveOrder - true to preserve the order of JSON
object members in parameters.ignoreVersion - true to skip a check of the
"jsonrpc":"2.0" version attribute in the
JSON-RPC 2.0 message.JSONRPC2ParseException - With detailed message if parsing
failed.public static JSONRPC2Notification parse(String jsonString, boolean preserveOrder, boolean ignoreVersion, boolean parseNonStdAttributes) throws JSONRPC2ParseException
jsonString - The JSON-RPC 2.0 notification string,
UTF-8 encoded. Must not be null.preserveOrder - true to preserve the order of
JSON object members in parameters.ignoreVersion - true to skip a check of the
"jsonrpc":"2.0" version
attribute in the JSON-RPC 2.0 message.parseNonStdAttributes - true to parse non-standard
attributes found in the JSON-RPC 2.0
message.JSONRPC2ParseException - With detailed message if parsing
failed.public void setMethod(String method)
method - The method name. Must not be null.public void setNamedParams(Map<String,Object> namedParams)
namedParams - The named (JSON object) request parameters,
null if none.@Deprecated public void setParams(Object params)
This method was deprecated in version 1.30. Use
setPositionalParams(java.util.List<java.lang.Object>) or setNamedParams(java.util.Map<java.lang.String, java.lang.Object>) instead.
params - The parameters. For positional (JSON array) pass a
List<Object>. For named (JSON object)
pass a Map<String,Object>. If there are
no parameters pass null.public void setPositionalParams(List<Object> positionalParams)
positionalParams - The positional (JSON array) request
parameters, null if none.public JsonObject toJSONObject()
JSONRPC2MessagetoJSONObject in class JSONRPC2Message