Class AbstractCodec
- java.lang.Object
-
- com.softwareag.connectivity.ConnectivityPlugin
-
- com.softwareag.connectivity.AbstractCodec
-
- All Implemented Interfaces:
HostSide,TransportSide
- Direct Known Subclasses:
AbstractSimpleCodec
public abstract class AbstractCodec extends ConnectivityPlugin implements HostSide, TransportSide
Base class for codec plug-ins.Implementors may extend this class, providing an implementation of its abstract methods to provide any required transformation of
Messageobjects as they are sent towards the transport or host side. For many codecs inheriting fromAbstractSimpleCodecmay be more convenient than using this class directly, as it deals with batching of events and ignoring messages with null payloads.Subclasses should provide a constructor with the same signature as
AbstractCodec(org.slf4j.Logger, PluginConstructorParameters.CodecConstructorParameters). Codecs should typically process a batch ofMessageobjects and pass the batch on to the next plug-in in the chain. Unless they are looking for certain control messages, codecs should ignore messages withnullpayload, passing them on to the next plug-in in the chain untouched.Logging should be performed using the
ConnectivityPlugin.loggerfield.MapExtractorcan be used to extract the content of payload.
-
-
Field Summary
Fields Modifier and Type Field Description HostSidehostSideThe next plug-in in the chain towards host, as set bysetNextTowardsHost(HostSide).TransportSidetransportSideThe next plug-in in the chain towards transport, as set bysetNextTowardsTransport(TransportSide).-
Fields inherited from class com.softwareag.connectivity.ConnectivityPlugin
chainId, config, CONNECTIVITY_API_VERSION, host, logger, pluginName
-
-
Constructor Summary
Constructors Constructor Description AbstractCodec(org.slf4j.Logger logger, PluginConstructorParameters.CodecConstructorParameters params)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidhostReady()No-op implementation ofConnectivityPlugin.hostReady().voidsetNextTowardsHost(HostSide hostSide)Remember the host side of this codec.voidsetNextTowardsTransport(TransportSide transportSide)Remember the transport side of this codec.voidshutdown()No-op implementation ofConnectivityPlugin.shutdown().voidstart()No-op implementation ofConnectivityPlugin.start().java.lang.StringtoString()-
Methods inherited from class com.softwareag.connectivity.ConnectivityPlugin
getStatusReporter
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.softwareag.connectivity.HostSide
sendBatchTowardsHost
-
Methods inherited from interface com.softwareag.connectivity.TransportSide
sendBatchTowardsTransport
-
-
-
-
Field Detail
-
hostSide
public HostSide hostSide
The next plug-in in the chain towards host, as set bysetNextTowardsHost(HostSide). This field will be given a valid value before the start() method is called.
-
transportSide
public TransportSide transportSide
The next plug-in in the chain towards transport, as set bysetNextTowardsTransport(TransportSide). This field will be given a valid value before the start() method is called.
-
-
Constructor Detail
-
AbstractCodec
public AbstractCodec(org.slf4j.Logger logger, PluginConstructorParameters.CodecConstructorParameters params) throws java.lang.IllegalArgumentException, java.lang.ExceptionConstructor. A subclass should provide its own constructor with the same signature as this one. This base class makes the parameters passed into its constructor available as member fields or methods for use by the subclass.- Parameters:
logger- a slf4j Logger object which can be used to log to the host log file.params- an extensible interface providing access to the configuration for this plug-in and other capabilities.- Throws:
java.lang.IllegalArgumentException- should be thrown from a plug-in's constructor if the configuration is invalid.java.lang.Exception- can be thrown to indicate an internal error.- Since:
- 9.12.0.1
-
-
Method Detail
-
setNextTowardsHost
public final void setNextTowardsHost(HostSide hostSide)
Remember the host side of this codec. The hostSide argument is stored in the hostSide member of this class for use by subclasses when delivering messages towards the transport.
-
setNextTowardsTransport
public final void setNextTowardsTransport(TransportSide transportSide)
Remember the transport side of this codec. The transportSide argument is stored in the transportSide member of this class for use by subclasses when delivering messages towards the host.
-
shutdown
public void shutdown() throws java.lang.ExceptionNo-op implementation ofConnectivityPlugin.shutdown(). For convenience. If the codec creates any resources that need closing, it must override this method.This method may be called while messages are still being delivered towards the host or towards the transport.
If the plug-in has any messages queued to send towards the host it should flush them before shutting down. This is not true if the host itself is shutting down (rather than just the chain). This can be determined via the
PluginHost.isShuttingDown()method.- Specified by:
shutdownin classConnectivityPlugin- Throws:
java.lang.Exception
-
start
public void start() throws java.lang.ExceptionNo-op implementation ofConnectivityPlugin.start(). For convenience. If the codec creates any resources, it will need to override this method to do so and will typically need to implementshutdown()as well.- Specified by:
startin classConnectivityPlugin- Throws:
java.lang.Exception- only if a fatal error occurred during startup.
-
hostReady
public void hostReady() throws java.lang.ExceptionNo-op implementation ofConnectivityPlugin.hostReady(). For convenience. Plug-ins are not required to do anything at this point, and most codecs will not need to implement this method.- Specified by:
hostReadyin classConnectivityPlugin- Throws:
java.lang.Exception
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-