Class ConnectorServiceWrapper<O,I,CO,CI>
java.lang.Object
de.iip_ecosphere.platform.services.environment.AbstractService
de.iip_ecosphere.platform.services.environment.ConnectorServiceWrapper<O,I,CO,CI>
- Type Parameters:
O- the output type from the underlying machine/platformI- the input type to the underlying machine/platformCO- the output type of the connectorCI- the input type of the connector
- All Implemented Interfaces:
ParameterConfigurerProvider,Service,ServiceBase
- Direct Known Subclasses:
MockingConnectorServiceWrapper
Wraps a connector into a service. Implicitly reacts on parameter "inPath" and "outPath" as string to override
dynamically the configured data path into the connector data.
- Author:
- Holger Eichelberger, SSE
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Supplier<de.iip_ecosphere.platform.connectors.ConnectorParameter> private Stringprivate Stringprivate Map<String, ParameterConfigurer<?>> Fields inherited from interface de.iip_ecosphere.platform.services.environment.switching.ServiceBase
APPLICATION_SEPARATOR, DEFAULT_APPLICATION_INSTANCE_ID -
Constructor Summary
ConstructorsConstructorDescriptionConnectorServiceWrapper(YamlService yaml, de.iip_ecosphere.platform.connectors.Connector<O, I, CO, CI> connector, Supplier<de.iip_ecosphere.platform.connectors.ConnectorParameter> connParamSupplier) Creates a service wrapper instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoSetState(ServiceState state) Changes the state by callingAbstractService.setState(ServiceState).voidenableNotifications(boolean enableNotifications) Enables/disables notifications/polling at all.voidenablePolling(boolean enablePolling) Enable/disable polling (does not influence the polling timer).Returns the connector instance.Returns the (eventually re-configured) data access path within the protocol.getOutPath(String cfgPath) Returns the (eventually re-configured) data access path within the protocol.getParameterConfigurer(String paramName) Returns the parameter configurer for a given parameter.The set of parameter names.voidMigrates a service.voidCallsConnector.write(Object)on data and handles the respective exception potentially thrown by the underlying connector.private voidChangesinPath.private voidsetOutPath(String outPath) ChangesoutPath.voidsetReceptionCallback(de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<CO> callback) Attaches a receptioncallbackto this connector.voidsetState(ServiceState state) Changes the state.voidSwitches to an interface-compatible service.voidUpdates the service by the service in the givenlocation.Methods inherited from class de.iip_ecosphere.platform.services.environment.AbstractService
activate, addConfigurer, addConfigurer, addConfigurer, addTypeSubstitution, createGenericInstance, createGenericInstanceByPlugin, createGenericMultiInstance, createGenericMultiInstanceByPlugin, createInstance, createInstance, createInstance, createInstanceByPlugin, getArg, getDescription, getId, getKind, getName, getNetMgtKeyAddress, getResourceAsStream, getState, getStringArg, getSubstitutedType, getTypeCreator, getTypeSubstitutions, getVersion, initializeFrom, isDeployable, isTopLevel, notifyReconfigured, passivate, reconf, reconfigure, reconfigure, rollbackReconfigurationOnFailure, setLibJars, start, stop, transferDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.iip_ecosphere.platform.services.environment.Service
createType, createType
-
Field Details
-
connector
-
connParamSupplier
-
paramConfigurers
-
outPath
-
inPath
-
-
Constructor Details
-
ConnectorServiceWrapper
public ConnectorServiceWrapper(YamlService yaml, de.iip_ecosphere.platform.connectors.Connector<O, I, CO, CI> connector, Supplier<de.iip_ecosphere.platform.connectors.ConnectorParameter> connParamSupplier) Creates a service wrapper instance.- Parameters:
yaml- the service information as read from YAMLconnector- the connector instance to wrapconnParamSupplier- the connector parameter supplier for connecting the underlying connector
-
-
Method Details
-
getConnector
Returns the connector instance.- Returns:
- the connector instance
-
send
CallsConnector.write(Object)on data and handles the respective exception potentially thrown by the underlying connector.- Parameters:
data- the data to write
-
setReceptionCallback
public void setReceptionCallback(de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<CO> callback) Attaches a receptioncallbackto this connector. Thecallbackis called upon a reception. Handles the respective exception potentially thrown by the underlying connector.- Parameters:
callback- the callback to attach
-
setState
Description copied from class:AbstractServiceChanges the state. [R133c]- Specified by:
setStatein interfaceServiceBase- Overrides:
setStatein classAbstractService- Parameters:
state- the new state- Throws:
ExecutionException- if changing the state fails for some reason- See Also:
-
doSetState
Changes the state by callingAbstractService.setState(ServiceState). Introduced, so that super functionality is made available to super-classes as-is.- Parameters:
state- the new state- Throws:
ExecutionException- if changing the state fails for some reason
-
migrate
Description copied from interface:ServiceMigrates a service. However, it may be required to migrate/move the containing artifact. [adaptation]- Parameters:
resourceId- the target resource id, e.g., a device- Throws:
ExecutionException- if migration fails
-
update
Description copied from interface:ServiceUpdates the service by the service in the givenlocation. This operation is responsible for stopping the running service (if needed), replacing it, starting the new service.- Parameters:
location- the location of the new service, e.g., an URL- Throws:
ExecutionException- if the given service cannot be updated for some reason, e.g., because the replacement service is not an evolved version of the running service
-
switchTo
Description copied from interface:ServiceSwitches to an interface-compatible service. This method cares for stopping the old service, performing a handover if adequate, starting thetargetservice. [adaptation]- Parameters:
targetId- the id of the target service- Throws:
ExecutionException- if switching the service cannot be performed for some reason
-
enablePolling
public void enablePolling(boolean enablePolling) Enable/disable polling (does not influence the polling timer).- Parameters:
enablePolling- whether polling shall enabled- See Also:
-
enableNotifications
public void enableNotifications(boolean enableNotifications) Enables/disables notifications/polling at all.- Parameters:
enableNotifications- enable or disable notifications
-
getParameterConfigurer
Description copied from interface:ParameterConfigurerProviderReturns the parameter configurer for a given parameter. We need this generic approach to ease code generation and initial setting of parameter values.- Parameters:
paramName- the name of the parameter- Returns:
- the associated parameter configurer or null if there is none
-
getParameterNames
Description copied from interface:ParameterConfigurerProviderThe set of parameter names.- Returns:
- the parameter names, may be null for none
-
setInPath
ChangesinPath.- Parameters:
inPath- the in path (ignored if null or empty)
-
setOutPath
ChangesoutPath.- Parameters:
outPath- the out path (ignored if null or empty)
-
getOutPath
Returns the (eventually re-configured) data access path within the protocol.- Parameters:
cfgPath- the configured path from the model- Returns:
- the path to use, may be
cfgPath
-
getInPath
Returns the (eventually re-configured) data access path within the protocol.- Parameters:
cfgPath- the configured path from the model- Returns:
- the path to use, may be
cfgPath
-