Package jmri.server.json
Class JsonSocketService<H extends JsonHttpService>
- java.lang.Object
-
- jmri.server.json.JsonSocketService<H>
-
- Type Parameters:
H
- The supporting JsonHttpService implementing class
- Direct Known Subclasses:
JsonAudioIconSocketService
,JsonConsistSocketService
,JsonLayoutBlockSocketService
,JsonLogixNGIconSocketService
,JsonMessageSocketService
,JsonNamedBeanSocketService
,JsonOperationsSocketService
,JsonPowerSocketService
,JsonRosterSocketService
,JsonSchemaSocketService
,JsonSignalHeadSocketService
,JsonThrottleSocketService
,JsonTimeSocketService
,JsonUtilSocketService
public abstract class JsonSocketService<H extends JsonHttpService> extends java.lang.Object
Interface for JSON Services provided over TCP Sockets or WebSockets.
-
-
Field Summary
Fields Modifier and Type Field Description protected JsonConnection
connection
protected H
service
-
Constructor Summary
Constructors Modifier Constructor Description protected
JsonSocketService(JsonConnection connection, H service)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description JsonConnection
getConnection()
Get the connection to the client.H
getHttpService()
Get the supportingJsonHttpService
.protected java.util.Locale
getLocale()
Get the in-use localeprotected java.lang.String
getVersion()
Get the JSON protocol versionabstract void
onClose()
Perform any teardown required when closing a connection.abstract void
onList(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
Handle a request for a list of objects.abstract void
onMessage(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
Handle an inbound message.
-
-
-
Field Detail
-
connection
protected final JsonConnection connection
-
service
protected final H extends JsonHttpService service
-
-
Constructor Detail
-
JsonSocketService
protected JsonSocketService(@Nonnull JsonConnection connection, @Nonnull H service)
-
-
Method Detail
-
onMessage
public abstract void onMessage(@Nonnull java.lang.String type, @Nonnull com.fasterxml.jackson.databind.JsonNode data, @Nonnull JsonRequest request) throws java.io.IOException, JmriException, JsonException
Handle an inbound message.- Parameters:
type
- The service type; if the implementing service responds to multiple types, it will need to use this to handle data correctlydata
- JSON data; the contents of this will depend on the implementing servicerequest
- The JSON request- Throws:
java.io.IOException
- Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if openJmriException
- Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the clientJsonException
- Thrown if the service needs to pass an error message back to the client
-
onList
public abstract void onList(@Nonnull java.lang.String type, @Nonnull com.fasterxml.jackson.databind.JsonNode data, @Nonnull JsonRequest request) throws java.io.IOException, JmriException, JsonException
Handle a request for a list of objects. Note that this should not create listeners for items in the list, but should only create listeners for the object providing the list, if applicable.- Parameters:
type
- The service type; if the implementing service responds to multiple types, it will need to use this to handle data correctlydata
- JSON data; the contents of this will depend on the implementing servicerequest
- The JSON request- Throws:
java.io.IOException
- Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if openJmriException
- Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the clientJsonException
- If the service needs to pass an error message back to the client; implementing services may throw a JsonException with code 400 and the localized message "UnlistableService" to indicate thattype
should not be listed
-
onClose
public abstract void onClose()
Perform any teardown required when closing a connection.
-
getConnection
@Nonnull public final JsonConnection getConnection()
Get the connection to the client.- Returns:
- the connection
-
getHttpService
@Nonnull public final H getHttpService()
Get the supportingJsonHttpService
.- Returns:
- the supporting service
-
getLocale
@Nonnull protected final java.util.Locale getLocale()
Get the in-use locale- Returns:
- the locale
-
getVersion
protected final java.lang.String getVersion()
Get the JSON protocol version- Returns:
- the version
-
-