Interface JsonServiceFactory<H extends JsonHttpService,S extends JsonSocketService<H>>
-
- Type Parameters:
H- the specific supported HTTP serviceS- the specific supported (Web)Socket service
- All Superinterfaces:
JmriServiceProviderInterface
- All Known Implementing Classes:
JsonAudioIconServiceFactory,JsonAudioServiceFactory,JsonBlockServiceFactory,JsonConsistServiceFactory,JsonIdTagServiceFactory,JsonLayoutBlockServiceFactory,JsonLightServiceFactory,JsonLogixNGIconServiceFactory,JsonMemoryServiceFactory,JsonMessageServiceFactory,JsonOblockServiceFactory,JsonOperationsServiceFactory,JsonPowerServiceFactory,JsonReporterServiceFactory,JsonRosterServiceFactory,JsonRouteServiceFactory,JsonSchemaServiceFactory,JsonSensorServiceFactory,JsonSignalHeadServiceFactory,JsonSignalMastServiceFactory,JsonThrottleServiceFactory,JsonTimeServiceFactory,JsonTurnoutServiceFactory,JsonUtilServiceFactory
public interface JsonServiceFactory<H extends JsonHttpService,S extends JsonSocketService<H>> extends JmriServiceProviderInterface
Factory interface for JSON services.A JSON service is a service provided by the
JsonServer. This API allows JSON services to be defined in a modular manner. The factory pattern is used since each connection gets a unique instance of each service.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description HgetHttpService(com.fasterxml.jackson.databind.ObjectMapper mapper, java.lang.String version)Create a JSON HTTP service.default java.lang.String[]getReceivedTypes(java.lang.String version)Get the message type(s) services created by this factory receive, if not also listed ingetTypes(String).default java.lang.String[]getSentTypes(java.lang.String version)Get the message type(s) services created by this factory send, if not also listed ingetTypes(String).SgetSocketService(JsonConnection connection, java.lang.String version)Create a JSON service for the given connection.java.lang.String[]getTypes(java.lang.String version)Get the service type(s) for services created by this factory respond to.
-
-
-
Method Detail
-
getTypes
@Nonnull java.lang.String[] getTypes(@Nonnull java.lang.String version)
Get the service type(s) for services created by this factory respond to. These type must have valid schemas for messages received from a client and sent to a client.Types should be single words, in camelCase if needed, unless supporting a plural noun introduced in the JSON 1.x or 2.x protocols and exposed in the JSON 3.0 or newer protocol.
If a service returns no types, it will never be used.
- Parameters:
version- The JSON protocol version major component identifier- Returns:
- An array of types this service responds to
-
getSentTypes
@Nonnull default java.lang.String[] getSentTypes(@Nonnull java.lang.String version)
Get the message type(s) services created by this factory send, if not also listed ingetTypes(String). These types must only have schemas for messages sent to a client.Types should be single words, in camelCase if needed, unless supporting a plural noun introduced in the JSON 1.x or 2.x protocols and exposed in the JSON 3.0 or newer protocol.
- Parameters:
version- The JSON protocol version major component identifier- Returns:
- An array of types this service sends, but does not respond to
-
getReceivedTypes
@Nonnull default java.lang.String[] getReceivedTypes(@Nonnull java.lang.String version)
Get the message type(s) services created by this factory receive, if not also listed ingetTypes(String). These types must only have schemas for messages received from a client.Types should be single words, in camelCase if needed, unless supporting a plural noun introduced in the JSON 1.x or 2.x protocols and exposed in the JSON 3.0 or newer protocol.
- Parameters:
version- The JSON protocol version major component identifier- Returns:
- An array of types this service sends, but does not respond to
-
getSocketService
@Nonnull S getSocketService(@Nonnull JsonConnection connection, @Nonnull java.lang.String version)
Create a JSON service for the given connection. This connection can be a WebSocket or raw socket.- Parameters:
connection- The connection for this service to respond toversion- The JSON protocol version major component identifier- Returns:
- A service or null if the service does not support sockets
-
getHttpService
@Nonnull H getHttpService(@Nonnull com.fasterxml.jackson.databind.ObjectMapper mapper, @Nonnull java.lang.String version)
Create a JSON HTTP service.- Parameters:
mapper- The object mapper for the HTTP service to useversion- The JSON protocol version major component identifier- Returns:
- A servlet or null if the service does not support HTTP
-
-