Package jmri.server.json
Class JsonNamedBeanSocketService<T extends NamedBean,H extends JsonNamedBeanHttpService<T>>
- java.lang.Object
-
- jmri.server.json.JsonSocketService<H>
-
- jmri.server.json.JsonNamedBeanSocketService<T,H>
-
- Type Parameters:
T
- the NamedBean class supported by this serviceH
- the supporting JsonNamedBeanHttpService class
- Direct Known Subclasses:
JsonAudioSocketService
,JsonBlockSocketService
,JsonIdTagSocketService
,JsonLightSocketService
,JsonMemorySocketService
,JsonOblockSocketService
,JsonReporterSocketService
,JsonRouteSocketService
,JsonSensorSocketService
,JsonSignalMastSocketService
,JsonTurnoutSocketService
public class JsonNamedBeanSocketService<T extends NamedBean,H extends JsonNamedBeanHttpService<T>> extends JsonSocketService<H>
Abstract implementation of JsonSocketService with specific support forNamedBean
objects. Note that services requiring support for multiple classes of NamedBean cannot extend this class.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
JsonNamedBeanSocketService.ManagerListener
protected class
JsonNamedBeanSocketService.NamedBeanListener
-
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<T,JsonNamedBeanSocketService.NamedBeanListener>
beanListeners
protected JsonNamedBeanSocketService.ManagerListener
managerListener
-
Fields inherited from class jmri.server.json.JsonSocketService
connection, service
-
-
Constructor Summary
Constructors Constructor Description JsonNamedBeanSocketService(JsonConnection connection, H service)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addListenerToBean(java.lang.String name)
protected void
addListenerToBean(T bean)
void
onClose()
Perform any teardown required when closing a connection.void
onList(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
Handle a request for a list of objects.void
onMessage(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request)
Handle an inbound message.protected void
removeListenersFromRemovedBeans()
-
Methods inherited from class jmri.server.json.JsonSocketService
getConnection, getHttpService, getLocale, getVersion
-
-
-
-
Field Detail
-
beanListeners
protected final java.util.HashMap<T extends NamedBean,JsonNamedBeanSocketService.NamedBeanListener> beanListeners
-
managerListener
protected final JsonNamedBeanSocketService.ManagerListener managerListener
-
-
Constructor Detail
-
JsonNamedBeanSocketService
public JsonNamedBeanSocketService(JsonConnection connection, H service)
-
-
Method Detail
-
onMessage
public void onMessage(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) throws java.io.IOException, JmriException, JsonException
Description copied from class:JsonSocketService
Handle an inbound message.- Specified by:
onMessage
in classJsonSocketService<H extends JsonNamedBeanHttpService<T>>
- 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 void onList(java.lang.String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) throws java.io.IOException, JmriException, JsonException
Description copied from class:JsonSocketService
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.- Specified by:
onList
in classJsonSocketService<H extends JsonNamedBeanHttpService<T>>
- 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 void onClose()
Description copied from class:JsonSocketService
Perform any teardown required when closing a connection.- Specified by:
onClose
in classJsonSocketService<H extends JsonNamedBeanHttpService<T>>
-
addListenerToBean
protected void addListenerToBean(java.lang.String name)
-
addListenerToBean
protected void addListenerToBean(T bean)
-
removeListenersFromRemovedBeans
protected void removeListenersFromRemovedBeans()
-
-