forked from I2P_Developers/i2p.i2p
Includes mods to use org.json.simple package. See licenses/LICENSE-Apache2.0.txt Includes jBCrypt: Copyright (c) 2006 Damien Miller <djm@mindrot.org> See licenses/LICENSE-jBCrypt.txt Includes jsonrpc2 libs: See licenses/LICENSE-Apache2.0.txt http://software.dzhuvinov.com/json-rpc-2.0-server.html Jars from maven central: jsonrpc2-base-1.38.1-sources.jar 22-Oct-2017 jsonrpc2-server-1.11-sources.jar 16-Mar-2015
114 lines
2.6 KiB
Java
114 lines
2.6 KiB
Java
package com.thetransactioncompany.jsonrpc2;
|
|
|
|
|
|
/**
|
|
* Thrown to indicate an exception during the parsing of a JSON-RPC 2.0
|
|
* message string.
|
|
*
|
|
* @author Vladimir Dzhuvinov
|
|
*/
|
|
public class JSONRPC2ParseException extends Exception {
|
|
|
|
|
|
/**
|
|
* Serial version UID.
|
|
*/
|
|
private static final long serialVersionUID = 3376608778436136410L;
|
|
|
|
|
|
/**
|
|
* Indicates a parse exception caused by a JSON message not conforming
|
|
* to the JSON-RPC 2.0 protocol.
|
|
*/
|
|
public static final int PROTOCOL = 0;
|
|
|
|
|
|
/**
|
|
* Indicates a parse exception caused by invalid JSON.
|
|
*/
|
|
public static final int JSON = 1;
|
|
|
|
|
|
/**
|
|
* The parse exception cause type. Default is {@link #PROTOCOL}.
|
|
*/
|
|
private int causeType = PROTOCOL;
|
|
|
|
|
|
|
|
/**
|
|
* The string that could't be parsed.
|
|
*/
|
|
private String unparsableString = null;
|
|
|
|
|
|
/**
|
|
* Creates a new parse exception with the specified message. The cause
|
|
* type is set to {@link #PROTOCOL}.
|
|
*
|
|
* @param message The exception message.
|
|
*/
|
|
public JSONRPC2ParseException(final String message) {
|
|
|
|
super(message);
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates a new parse exception with the specified message and the
|
|
* original string that didn't parse. The cause type is set to
|
|
* {@link #PROTOCOL}.
|
|
*
|
|
* @param message The exception message.
|
|
* @param unparsableString The unparsable string.
|
|
*/
|
|
public JSONRPC2ParseException(final String message, final String unparsableString) {
|
|
|
|
super(message);
|
|
this.unparsableString = unparsableString;
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates a new parse exception with the specified message, cause type
|
|
* and the original string that didn't parse.
|
|
*
|
|
* @param message The exception message.
|
|
* @param causeType The exception cause type, either
|
|
* {@link #PROTOCOL} or {@link #JSON}.
|
|
* @param unparsableString The unparsable string.
|
|
*/
|
|
public JSONRPC2ParseException(final String message, final int causeType, final String unparsableString) {
|
|
|
|
super(message);
|
|
|
|
if (causeType != PROTOCOL && causeType != JSON)
|
|
throw new IllegalArgumentException("Cause type must be either PROTOCOL or JSON");
|
|
|
|
this.causeType = causeType;
|
|
this.unparsableString = unparsableString;
|
|
}
|
|
|
|
|
|
/**
|
|
* Gets the parse exception cause type.
|
|
*
|
|
* @return The cause type, either {@link #PROTOCOL} or {@link #JSON}.
|
|
*/
|
|
public int getCauseType() {
|
|
|
|
return causeType;
|
|
}
|
|
|
|
|
|
/**
|
|
* Gets original string that caused the parse exception (if specified).
|
|
*
|
|
* @return The string that didn't parse, {@code null} if none.
|
|
*/
|
|
public String getUnparsableString() {
|
|
|
|
return unparsableString;
|
|
}
|
|
}
|