Interface ProtocolAdapter<O,I,CO,CI>

Type Parameters:
O - the output type from the underlying machine/platform
I - the input type to the underlying machine/platform
CO - the output type of the connector
CI - the input type of the connector
All Known Subinterfaces:
ChannelProtocolAdapter<O,I,CO,CI>
All Known Implementing Classes:
AbstractProtocolAdapter, ChannelTranslatingProtocolAdapter, TranslatingProtocolAdapter

public interface ProtocolAdapter<O,I,CO,CI>
Adapts a protocol from/to an underlying machine/platform.
Author:
Holger Eichelberger, SSE
  • Method Details

    • adaptInput

      I adaptInput(CI data) throws IOException
      Adapts the input from the IIP-Ecosphere platform to the underlying machine/platform.
      Parameters:
      data - the data to be adapted
      Returns:
      the adapted data
      Throws:
      IOException - in case that the adaptation fails
    • adaptOutput

      CO adaptOutput(String channel, O data) throws IOException
      Adapts the output from the underlying machine/platform to the IIP-Ecosphere platform.
      Parameters:
      channel - the channel the data was received
      data - the data to be adapted
      Returns:
      the adapted data
      Throws:
      IOException - in case that the adaptation fails
    • getProtocolInputType

      Class<? extends I> getProtocolInputType()
      Returns the input type to the protocol.
      Returns:
      the input type (may be null in case of generic types, but shall not be null)
    • getConnectorInputType

      Class<? extends CI> getConnectorInputType()
      Returns the input type from the IIP-Ecosphere platform.
      Returns:
      the input type (may be null in case of generic types, but shall not be null)
    • getProtocolOutputType

      Class<? extends O> getProtocolOutputType()
      Returns the output type of the protocol.
      Returns:
      the output type (may be null in case of generic types, but shall not be null)
    • getConnectorOutputType

      Class<? extends CO> getConnectorOutputType()
      Returns the output type to the IIP-Ecosphere platform.
      Returns:
      the output type (may be null in case of generic types, but shall not be null)
    • getModelAccess

      ModelAccess getModelAccess()
      Returns the instance abstracting the access to the underlying model.
      Returns:
      the instance, may be null if MachineConnector.hasModel() is false
    • setModelAccess

      void setModelAccess(ModelAccess modelAccess)
      Defines the model access. Handle with care, shall be called by connector only.
      Parameters:
      modelAccess - the model access
    • initializeModelAccess

      void initializeModelAccess() throws IOException
      Called to initialize the model access, e.g., to setup notifications. Called only, when the connector is connected.
      Throws:
      IOException - in case the initialization fails, e.g., monitors cannot be set up