java.lang.Object
com.thetransactioncompany.jsonrpc2.util.ParamsRetriever
com.thetransactioncompany.jsonrpc2.util.NamedParamsRetriever

public class NamedParamsRetrieverextends ParamsRetriever
Utility class for retrieving JSON-RPC 2.0 named parameters (key-value pairs packed into a JSON Object).

Provides a set of getter methods according to the expected parameter type (number, string, etc.) and whether the parameter is mandatory or optional:

  • getXXX(param_name) for mandatory parameters, where XXX is the expected parameter type.
  • getOptXXX(param_name, default_value) for optional parameters, specifying a default value.

There are also generic getter methods that let you do the type conversion yourself.

If a parameter cannot be retrieved, e.g. due to a missing mandatory parameter or bad type, a JSONRPC2Error.INVALID_PARAMS exception is thrown.

Example: suppose you have a method with 3 named parameters "name", "age" and "sex", where the last is optional and defaults to "female":

// Parse received request string
JSONRPC2Request request = null;

try {
        request = JSONRPC2Request.parse(jsonString);
} catch (JSONRPC2ParseException e) {
        // handle exception...
}

// Create a new retriever for named parameters
Map params = (Map)request.getParams();
NamedParamsRetriever r = new NamedParamsRetriever(params);

try {
        // Extract "name" string parameter
        String name = r.getString("name");

        // Extract "age" integer parameter
        int age = r.getInt("age");

        // Extract optional "sex" string parameter which defaults to "female"
        String sex = r.getOptString("sex", "female");

} catch (JSONRPC2Error e) {
        // A JSONRPC2Error.INVALID_PARAMS will be thrown to indicate
        // an unexpected parameter type or a missing mandatory parameter.
        // You can use it straight away to create the appropriate
        // JSON-RPC 2.0 error response.
        JSONRPC2Response response = new JSONRPC2Response(e, null);
}

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private Map<String,Object>
    The named parameters interface.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new named parameters retriever from the specified key-value map.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    /** Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name.
    <T> void
    ensureParam(String name, Class<T> clazz)
    Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name, its value is null, or its type doesn't map to the specified.
    <T> void
    ensureParam(String name, Class<T> clazz, boolean allowNull)
    Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name or its type doesn't map to the specified.
    void
    ensureParams(String[] mandatoryNames)
    Throws a JSONRPC2Error.INVALID_PARAMS if the specified names aren't present in the parameters, or names outside the specified are contained.
    void
    ensureParams(String[] mandatoryNames, String[] optionalNames)
    /** Throws a JSONRPC2Error.INVALID_PARAMS if the specified mandatory names aren't contained in the parameters, or names outside the specified mandatory and optional are present.
    get(String name)
    Retrieves the specified parameter which can be of any type.
    <T> T
    get(String name, Class<T> clazz)
    Retrieves the specified parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
    <T> T
    get(String name, Class<T> clazz, boolean allowNull)
    Retrieves the specified parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
    boolean
    Retrieves the specified boolean (maps from JSON true/false) parameter.
    double
    Retrieves the specified numeric parameter as a double.
    <T extends Enum<T>>
    T
    getEnum(String name, Class<T> enumClass)
    Retrieves the specified enumerated parameter (from a JSON string that has a predefined set of possible values).
    <T extends Enum<T>>
    T
    getEnum(String name, Class<T> enumClass, boolean ignoreCase)
    Retrieves the specified enumerated parameter (from a JSON string that has a predefined set of possible values), allowing for a case insensitive match.
    getEnumString(String name, String[] enumStrings)
    Retrieves the specified enumerated string parameter.
    getEnumString(String name, String[] enumStrings, boolean ignoreCase)
    Retrieves the specified enumerated string parameter, allowing for a case insenstive match.
    float
    Retrieves the specified numeric parameter as a float.
    int
    getInt(String name)
    Retrieves the specified numeric parameter as an int.
    Retrieves the specified list (maps from JSON array) parameter.
    getList(String name, boolean allowNull)
    Retrieves the specified list (maps from JSON array) parameter.
    long
    Retrieves the specified numeric parameter as a long.
    getMap(String name)
    Retrieves the specified map (maps from JSON object) parameter.
    getMap(String name, boolean allowNull)
    Retrieves the specified map (maps from JSON object) parameter.
    Returns the names of all available parameters.
    <T> T
    getOpt(String name, Class<T> clazz, boolean allowNull, T defaultValue)
    Retrieves the specified optional parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
    <T> T
    getOpt(String name, Class<T> clazz, T defaultValue)
    Retrieves the specified optional parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
    boolean
    getOptBoolean(String name, boolean defaultValue)
    Retrieves the specified optional boolean (maps from JSON true/false) parameter.
    double
    getOptDouble(String name, double defaultValue)
    Retrieves the specified optional numeric parameter as a double.
    <T extends Enum<T>>
    T
    getOptEnum(String name, Class<T> enumClass, T defaultValue)
    Retrieves the specified optional enumerated parameter (from a JSON string that has a predefined set of possible values).
    <T extends Enum<T>>
    T
    getOptEnum(String name, Class<T> enumClass, T defaultValue, boolean ignoreCase)
    Retrieves the specified optional enumerated parameter (from a JSON string that has a predefined set of possible values), allowing for a case insenstive match.
    getOptEnumString(String name, String[] enumStrings, String defaultValue)
    Retrieves the specified optional enumerated string parameter.
    getOptEnumString(String name, String[] enumStrings, String defaultValue, boolean ignoreCase)
    Retrieves the specified optional enumerated string parameter, allowing for a case insenstive match.
    float
    getOptFloat(String name, float defaultValue)
    Retrieves the specified optional numeric parameter as a float.
    int
    getOptInt(String name, int defaultValue)
    Retrieves the specified optional numeric parameter as an int.
    getOptList(String name, boolean allowNull, List<Object> defaultValue)
    Retrieves the specified optional list (maps from JSON array) parameter.
    getOptList(String name, List<Object> defaultValue)
    Retrieves the specified optional list (maps from JSON array) parameter.
    long
    getOptLong(String name, long defaultValue)
    Retrieves the specified optional numeric parameter as a long.
    getOptMap(String name, boolean allowNull, Map<String,Object> defaultValue)
    Retrieves the specified optional map (maps from JSON object) parameter.
    getOptMap(String name, Map<String,Object> defaultValue)
    Retrieves the specified optional map (maps from JSON object) parameter.
    getOptString(String name, boolean allowNull, String defaultValue)
    Retrieves the specified optional string parameter.
    getOptString(String name, String defaultValue)
    Retrieves the specified optional string parameter.
    getOptStringArray(String name, boolean allowNull, String[] defaultValue)
    Retrieves the specified optional string array (maps from JSON array of strings) parameter.
    getOptStringArray(String name, String[] defaultValue)
    Retrieves the specified optional string array (maps from JSON array of strings) parameter.
    Gets the named parameters for this retriever.
    Retrieves the specified string parameter.
    getString(String name, boolean allowNull)
    Retrieves the specified string parameter.
    Retrieves the specified string array (maps from JSON array of strings) parameter.
    getStringArray(String name, boolean allowNull)
    Retrieves the specified string array (maps from JSON array of strings) parameter.
    boolean
    Returns true if a parameter by the specified name exists, else false.
    boolean
    hasParams(String[] names)
    Returns true if the parameters by the specified names exist, else false.
    boolean
    hasParams(String[] mandatoryNames, String[] optionalNames)
    Returns true if the parameters by the specified mandatory names exist, false if any mandatory name is missing or a name outside the mandatory and optional is present.
    private static JSONRPC2Error
    Creates a JSON-RPC 2.0 error indicating an array exception.
    private static JSONRPC2Error
    Creates a JSON-RPC 2.0 error indicating a named parameter with an unexpected JSON type.
    int
    Returns the parameter count.
    private static <T extends Enum<T>>
    void
    Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected enumerated value.
    private static void
    Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected enumerated value.
    private static void
    Throws a JSON-RPC 2.0 error indicating one or more missing named parameters.
    private static void
    Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected null value.

    Methods inherited from class ParamsRetriever

    getEnumStringMatch, getEnumStringMatch
    Modifier and Type
    Method
    Description
    protected static <T extends Enum<T>>
    T
    getEnumStringMatch(String input, Class<T> enumClass, boolean ignoreCase)
    Matches a string against an enumeration of acceptable values.
    protected static String
    getEnumStringMatch(String input, String[] enumStrings, boolean ignoreCase)
    Matches a string against an array of acceptable values.

    Methods inherited from class Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • NamedParamsRetriever

      public NamedParamsRetriever(Map<String,Object> params)
      Creates a new named parameters retriever from the specified key-value map.
      Parameters:
      params - The named parameters map. Must not be null.
  • Method Details

    • throwMissingParameterException

      private static void throwMissingParameterException(String... names) throws JSONRPC2Error
      Throws a JSON-RPC 2.0 error indicating one or more missing named parameters.
      Parameters:
      names - The parameter names. Must not be null.
      Throws:
      JSONRPC2Error - Formatted JSON-RPC 2.0 error.
    • throwNullParameterException

      private static void throwNullParameterException(String name) throws JSONRPC2Error
      Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected null value.
      Parameters:
      name - The parameter name. Must not be null.
      Throws:
      JSONRPC2Error - Formatted JSON-RPC 2.0 error.
    • throwEnumParameterException

      private static void throwEnumParameterException(String name, String[] enumStrings) throws JSONRPC2Error
      Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected enumerated value.
      Parameters:
      name - The parameter name.
      enumStrings - The acceptable string values. Must not be null.
      Throws:
      JSONRPC2Error - Formatted JSON-RPC 2.0 error.
    • throwEnumParameterException

      private static <T extends Enum<T>> void throwEnumParameterException(String name, Class<T> enumClass) throws JSONRPC2Error
      Throws a JSON-RPC 2.0 error indicating a named parameter with an unexpected enumerated value.
      Type Parameters:
      T - the enum type of the parameter
      Parameters:
      name - The parameter name.
      enumClass - The enumeration class specifying the acceptable string values. Must not be null.
      Throws:
      JSONRPC2Error - Formatted JSON-RPC 2.0 error.
    • newUnexpectedParameterTypeException

      private static JSONRPC2Error newUnexpectedParameterTypeException(String name)
      Creates a JSON-RPC 2.0 error indicating a named parameter with an unexpected JSON type.
      Parameters:
      name - The parameter name. Must not be null.
      Returns:
      Formatted JSON-RPC 2.0 error.
    • newArrayException

      private static JSONRPC2Error newArrayException(String name)
      Creates a JSON-RPC 2.0 error indicating an array exception.
      Parameters:
      name - The parameter name. Must not be null.
      Returns:
      Formatted JSON-RPC 2.0 error.
    • getParams

      public Map<String,Object> getParams()
      Gets the named parameters for this retriever.
      Returns:
      The named parameters.
    • size

      public int size()
      Description copied from class: ParamsRetriever
      Returns the parameter count.
      Specified by:
      size in class ParamsRetriever
      Returns:
      The parameters count.
    • hasParam

      public boolean hasParam(String name)
      Returns true if a parameter by the specified name exists, else false.
      Parameters:
      name - The parameter name.
      Returns:
      true if the parameter exists, else false.
    • hasParams

      public boolean hasParams(String[] names)
      Returns true if the parameters by the specified names exist, else false.
      Parameters:
      names - The parameter names. Must not be null.
      Returns:
      true if the parameters exist, else false.
    • hasParams

      public boolean hasParams(String[] mandatoryNames, String[] optionalNames)
      Returns true if the parameters by the specified mandatory names exist, false if any mandatory name is missing or a name outside the mandatory and optional is present.
      Parameters:
      mandatoryNames - The expected mandatory parameter names. Must not be null.
      optionalNames - The expected optional parameter names, empty array or null if none.
      Returns:
      true if the specified mandatory names and only any of the optional are present, else false.
    • getNames

      public String[] getNames()
      Returns the names of all available parameters.
      Returns:
      The parameter names.
    • ensureParams

      public void ensureParams(String[] mandatoryNames) throws JSONRPC2Error
      Throws a JSONRPC2Error.INVALID_PARAMS if the specified names aren't present in the parameters, or names outside the specified are contained.

      You may use this method to a fire a proper JSON-RPC 2.0 error on a missing or unexpected mandatory parameter name.

      Parameters:
      mandatoryNames - The expected parameter names. Must not be null.
      Throws:
      JSONRPC2Error - On a missing parameter name or names outside the specified (JSONRPC2Error.INVALID_PARAMS).
    • ensureParams

      public void ensureParams(String[] mandatoryNames, String[] optionalNames) throws JSONRPC2Error
      /** Throws a JSONRPC2Error.INVALID_PARAMS if the specified mandatory names aren't contained in the parameters, or names outside the specified mandatory and optional are present.

      You may use this method to a fire a proper JSON-RPC 2.0 error on a missing or unexpected mandatory parameter name.

      Parameters:
      mandatoryNames - The expected mandatory parameter names. Must not be null.
      optionalNames - The expected optional parameter names, empty array or null if none.
      Throws:
      JSONRPC2Error - On a missing mandatory parameter name or names outside the specified mandatory and optional (JSONRPC2Error.INVALID_PARAMS).
    • ensureParam

      public void ensureParam(String name) throws JSONRPC2Error
      /** Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name.

      You may use this method to fire the proper JSON-RPC 2.0 error on a missing mandatory parameter.

      Parameters:
      name - The parameter name.
      Throws:
      JSONRPC2Error - On a missing parameter (JSONRPC2Error.INVALID_PARAMS).
    • ensureParam

      public <T> void ensureParam(String name, Class<T> clazz) throws JSONRPC2Error
      Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name, its value is null, or its type doesn't map to the specified.

      You may use this method to fire the proper JSON-RPC 2.0 error on a missing or badly-typed mandatory parameter.

      Type Parameters:
      T - the type the named parameter must map to
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      Throws:
      JSONRPC2Error - On a missing parameter, null value or bad type (JSONRPC2Error.INVALID_PARAMS).
    • ensureParam

      public <T> void ensureParam(String name, Class<T> clazz, boolean allowNull) throws JSONRPC2Error
      Throws a JSONRPC2Error.INVALID_PARAMS exception if there is no parameter by the specified name or its type doesn't map to the specified.

      You may use this method to fire the proper JSON-RPC 2.0 error on a missing or badly-typed mandatory parameter.

      Type Parameters:
      T - the type the named parameter must map to
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      allowNull - If true allows a null parameter value.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • get

      public Object get(String name) throws JSONRPC2Error
      Retrieves the specified parameter which can be of any type. Use this generic getter if you want to cast the value yourself. Otherwise look at the typed get* methods.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value.
      Throws:
      JSONRPC2Error - On a missing parameter (JSONRPC2Error.INVALID_PARAMS).
    • get

      public <T> T get(String name, Class<T> clazz) throws JSONRPC2Error
      Retrieves the specified parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
      Type Parameters:
      T - the class the named parameter is retrieved as
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      Returns:
      The parameter value.
      Throws:
      JSONRPC2Error - On a missing parameter, null value or bad type (JSONRPC2Error.INVALID_PARAMS).
    • get

      public <T> T get(String name, Class<T> clazz, boolean allowNull) throws JSONRPC2Error
      Retrieves the specified parameter which must map to the provided class (use the appropriate wrapper class for primitive types).
      Type Parameters:
      T - the class the named parameter is retrieved as
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      allowNull - If true allows a null parameter value.
      Returns:
      The parameter value.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • getOpt

      public <T> T getOpt(String name, Class<T> clazz, T defaultValue) throws JSONRPC2Error
      Retrieves the specified optional parameter which must map to the provided class (use the appropriate wrapper class for primitive types). If the parameter doesn't exist the method returns the specified default value.
      Type Parameters:
      T - the class the optional parameter is retrieved as
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOpt

      public <T> T getOpt(String name, Class<T> clazz, boolean allowNull, T defaultValue) throws JSONRPC2Error
      Retrieves the specified optional parameter which must map to the provided class (use the appropriate wrapper class for primitive types). If the parameter doesn't exist the method returns the specified default value.
      Type Parameters:
      T - the class the optional parameter is retrieved as
      Parameters:
      name - The parameter name.
      clazz - The corresponding Java class that the parameter should map to (any one of the return types of the getXXX() getter methods. Set to Object.class to allow any type. Must not be null.
      allowNull - If true allows a null parameter value.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value.
      Throws:
      JSONRPC2Error - On a bad parameter type (JSONRPC2Error.INVALID_PARAMS).
    • getString

      public String getString(String name) throws JSONRPC2Error
      Retrieves the specified string parameter.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getString

      public String getString(String name, boolean allowNull) throws JSONRPC2Error
      Retrieves the specified string parameter.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • getOptString

      public String getOptString(String name, String defaultValue) throws JSONRPC2Error
      Retrieves the specified optional string parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptString

      public String getOptString(String name, boolean allowNull, String defaultValue) throws JSONRPC2Error
      Retrieves the specified optional string parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a bad type (JSONRPC2Error.INVALID_PARAMS).
    • getEnumString

      public String getEnumString(String name, String[] enumStrings) throws JSONRPC2Error
      Retrieves the specified enumerated string parameter.
      Parameters:
      name - The parameter name.
      enumStrings - The acceptable string values. Must not be null.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getEnumString

      public String getEnumString(String name, String[] enumStrings, boolean ignoreCase) throws JSONRPC2Error
      Retrieves the specified enumerated string parameter, allowing for a case insenstive match.
      Parameters:
      name - The parameter name.
      enumStrings - The acceptable string values. Must not be null.
      ignoreCase - true for a case insensitive match.
      Returns:
      The matching parameter value as a string.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getOptEnumString

      public String getOptEnumString(String name, String[] enumStrings, String defaultValue) throws JSONRPC2Error
      Retrieves the specified optional enumerated string parameter.
      Parameters:
      name - The parameter name.
      enumStrings - The acceptable string values. Must not be null.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a string.
      Throws:
      JSONRPC2Error - On a bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getOptEnumString

      public String getOptEnumString(String name, String[] enumStrings, String defaultValue, boolean ignoreCase) throws JSONRPC2Error
      Retrieves the specified optional enumerated string parameter, allowing for a case insenstive match. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      enumStrings - The acceptable string values. Must not be null.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      ignoreCase - true for a case insensitive match.
      Returns:
      The matching parameter value as a string.
      Throws:
      JSONRPC2Error - On a bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getEnum

      public <T extends Enum<T>> T getEnum(String name, Class<T> enumClass) throws JSONRPC2Error
      Retrieves the specified enumerated parameter (from a JSON string that has a predefined set of possible values).
      Type Parameters:
      T - the enumeration type listing the acceptable values
      Parameters:
      name - The parameter name.
      enumClass - An enumeration type with constant names representing the acceptable string values. Must not be null.
      Returns:
      The matching enumeration constant.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getEnum

      public <T extends Enum<T>> T getEnum(String name, Class<T> enumClass, boolean ignoreCase) throws JSONRPC2Error
      Retrieves the specified enumerated parameter (from a JSON string that has a predefined set of possible values), allowing for a case insensitive match.
      Type Parameters:
      T - the enumeration type listing the acceptable values
      Parameters:
      name - The parameter name.
      enumClass - An enumeration type with constant names representing the acceptable string values. Must not be null.
      ignoreCase - If true a case insensitive match against the acceptable constant names is performed.
      Returns:
      The matching enumeration constant.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getOptEnum

      public <T extends Enum<T>> T getOptEnum(String name, Class<T> enumClass, T defaultValue) throws JSONRPC2Error
      Retrieves the specified optional enumerated parameter (from a JSON string that has a predefined set of possible values).
      Type Parameters:
      T - the enumeration type listing the acceptable values
      Parameters:
      name - The parameter name.
      enumClass - An enumeration type with constant names representing the acceptable string values. Must not be null.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The matching enumeration constant.
      Throws:
      JSONRPC2Error - On a bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getOptEnum

      public <T extends Enum<T>> T getOptEnum(String name, Class<T> enumClass, T defaultValue, boolean ignoreCase) throws JSONRPC2Error
      Retrieves the specified optional enumerated parameter (from a JSON string that has a predefined set of possible values), allowing for a case insenstive match. If it doesn't exist the method will return the specified default value.
      Type Parameters:
      T - the enumeration type listing the acceptable values
      Parameters:
      name - The parameter name.
      enumClass - An enumeration type with constant names representing the acceptable string values. Must not be null.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      ignoreCase - If true a case insensitive match against the acceptable constant names is performed.
      Returns:
      The matching enumeration constant.
      Throws:
      JSONRPC2Error - On a bad type or bad enumeration value (JSONRPC2Error.INVALID_PARAMS).
    • getBoolean

      public boolean getBoolean(String name) throws JSONRPC2Error
      Retrieves the specified boolean (maps from JSON true/false) parameter.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a boolean.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptBoolean

      public boolean getOptBoolean(String name, boolean defaultValue) throws JSONRPC2Error
      Retrieves the specified optional boolean (maps from JSON true/false) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist.
      Returns:
      The parameter value as a boolean.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getInt

      public int getInt(String name) throws JSONRPC2Error
      Retrieves the specified numeric parameter as an int.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as an int.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptInt

      public int getOptInt(String name, int defaultValue) throws JSONRPC2Error
      Retrieves the specified optional numeric parameter as an int. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist.
      Returns:
      The parameter value as an int.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getLong

      public long getLong(String name) throws JSONRPC2Error
      Retrieves the specified numeric parameter as a long.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a long.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptLong

      public long getOptLong(String name, long defaultValue) throws JSONRPC2Error
      Retrieves the specified optional numeric parameter as a long. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist.
      Returns:
      The parameter value as a long.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getFloat

      public float getFloat(String name) throws JSONRPC2Error
      Retrieves the specified numeric parameter as a float.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a float.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptFloat

      public float getOptFloat(String name, float defaultValue) throws JSONRPC2Error
      Retrieves the specified optional numeric parameter as a float. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist.
      Returns:
      The parameter value as a float.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getDouble

      public double getDouble(String name) throws JSONRPC2Error
      Retrieves the specified numeric parameter as a double.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a double.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptDouble

      public double getOptDouble(String name, double defaultValue) throws JSONRPC2Error
      Retrieves the specified optional numeric parameter as a double. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist.
      Returns:
      The parameter value as a double.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getList

      public List<Object> getList(String name) throws JSONRPC2Error
      Retrieves the specified list (maps from JSON array) parameter.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a list.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getList

      public List<Object> getList(String name, boolean allowNull) throws JSONRPC2Error
      Retrieves the specified list (maps from JSON array) parameter.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      Returns:
      The parameter value as a list.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • getOptList

      public List<Object> getOptList(String name, List<Object> defaultValue) throws JSONRPC2Error
      Retrieves the specified optional list (maps from JSON array) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a list.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptList

      public List<Object> getOptList(String name, boolean allowNull, List<Object> defaultValue) throws JSONRPC2Error
      Retrieves the specified optional list (maps from JSON array) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a list.
      Throws:
      JSONRPC2Error - On a bad parameter type (JSONRPC2Error.INVALID_PARAMS).
    • getStringArray

      public String[] getStringArray(String name) throws JSONRPC2Error
      Retrieves the specified string array (maps from JSON array of strings) parameter.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a string array.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getStringArray

      public String[] getStringArray(String name, boolean allowNull) throws JSONRPC2Error
      Retrieves the specified string array (maps from JSON array of strings) parameter.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      Returns:
      The parameter value as a string array.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • getOptStringArray

      public String[] getOptStringArray(String name, String[] defaultValue) throws JSONRPC2Error
      Retrieves the specified optional string array (maps from JSON array of strings) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a string array.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptStringArray

      public String[] getOptStringArray(String name, boolean allowNull, String[] defaultValue) throws JSONRPC2Error
      Retrieves the specified optional string array (maps from JSON array of strings) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a string array.
      Throws:
      JSONRPC2Error - On a bad parameter type (JSONRPC2Error.INVALID_PARAMS).
    • getMap

      public Map<String,Object> getMap(String name) throws JSONRPC2Error
      Retrieves the specified map (maps from JSON object) parameter.
      Parameters:
      name - The parameter name.
      Returns:
      The parameter value as a map.
      Throws:
      JSONRPC2Error - On a missing parameter, bad type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getMap

      public Map<String,Object> getMap(String name, boolean allowNull) throws JSONRPC2Error
      Retrieves the specified map (maps from JSON object) parameter.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      Returns:
      The parameter value as a map.
      Throws:
      JSONRPC2Error - On a missing parameter or bad type (JSONRPC2Error.INVALID_PARAMS).
    • getOptMap

      public Map<String,Object> getOptMap(String name, Map<String,Object> defaultValue) throws JSONRPC2Error
      Retrieves the specified optional map (maps from JSON object) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a map.
      Throws:
      JSONRPC2Error - On a bad parameter type or null value (JSONRPC2Error.INVALID_PARAMS).
    • getOptMap

      public Map<String,Object> getOptMap(String name, boolean allowNull, Map<String,Object> defaultValue) throws JSONRPC2Error
      Retrieves the specified optional map (maps from JSON object) parameter. If it doesn't exist the method will return the specified default value.
      Parameters:
      name - The parameter name.
      allowNull - If true allows a null value.
      defaultValue - The default return value if the parameter doesn't exist. May be null.
      Returns:
      The parameter value as a map.
      Throws:
      JSONRPC2Error - On a bad parameter type (JSONRPC2Error.INVALID_PARAMS).