Class AdaptrisMessageFactory

java.lang.Object
com.adaptris.core.AdaptrisMessageFactory
Direct Known Subclasses:
DefaultMessageFactory, MultiPayloadMessageFactory

public abstract class AdaptrisMessageFactory extends Object

A static factory which returns implementations of AdaptrisMessage.

  • Field Details

    • OVERRIDE_DEFAULT_MSG_FACTORY_PROP

      public static final String OVERRIDE_DEFAULT_MSG_FACTORY_PROP
      If set as as system property then the fully qualified classname is used as the default message factory.
      See Also:
    • OVERRIDE_DEFAULT_MSG_FACTORY_ENV

      public static final String OVERRIDE_DEFAULT_MSG_FACTORY_ENV
      If set as an env var then the fully qualified classname is used as the default message factory.

      This will take precedence over the system property

      See Also:
    • OVERRIDE_DEFAULT_MSGID_GEN_PROP

      public static final String OVERRIDE_DEFAULT_MSGID_GEN_PROP
      If set as as system property then the fully qualified classname is used as the default ID generator.
      See Also:
    • OVERRIDE_DEFAULT_MSGID_GEN_KEY

      public static final String OVERRIDE_DEFAULT_MSGID_GEN_KEY
      If set as an env var then the fully qualified classname is used as the default ID Generator

      This will take precedence over the system property

      See Also:
  • Constructor Details

    • AdaptrisMessageFactory

      public AdaptrisMessageFactory()
  • Method Details

    • getDefaultInstance

      public static AdaptrisMessageFactory getDefaultInstance()
      Get the default implementationion of AdaptrisMessageFactory.

      Generally speaking, the appropriate message factory should be already be configured explicitly and available to be used. This method is simply here for those instances where no AdaptrisMessageFactory is available.

      Returns:
      a AdaptrisMessageFactory implementation
      See Also:
    • defaultIfNull

      public static AdaptrisMessageFactory defaultIfNull(AdaptrisMessageFactory f)
      Convenience method for null protection.
      Parameters:
      f - the configured message factory.
      Returns:
      the configured message factory or the default instance if it is null.
    • newMessage

      public abstract AdaptrisMessage newMessage(byte[] payload, Set metadata)

      Returns a new AdaptrisMessage with the specified payload and metadata.

      Parameters:
      payload - the byte[] payload
      metadata - a Set of MetadataElements
      Returns:
      a new AdaptrisMessage
    • newMessage

      public abstract AdaptrisMessage newMessage(byte[] payload)

      Returns a new AdaptrisMessage with the specified payload and metadata.

      Parameters:
      payload - the byte[] payload
      Returns:
      a new AdaptrisMessage
    • newMessage

      public abstract AdaptrisMessage newMessage(String payload, Set metadata)

      Returns a new AdaptrisMessage with the specified payload and metadata. Uses default platform character encoding.

      Parameters:
      payload - the String payload
      metadata - a Set of MetadataElements
      Returns:
      a new AdaptrisMessage
    • newMessage

      public abstract AdaptrisMessage newMessage(String payload)

      Returns a new AdaptrisMessage with the specified payload and metadata. Uses default platform character encoding.

      Parameters:
      payload - the String payload
      Returns:
      a new AdaptrisMessage
    • newMessage

      public abstract AdaptrisMessage newMessage(String payload, String charEncoding, Set metadata) throws UnsupportedEncodingException

      Returns a new AdaptrisMessage with the specified payload and metadata. Uses default platform character encoding.

      Parameters:
      payload - the String payload
      metadata - a Set of MetadataElements
      charEncoding - the String's character encoding
      Returns:
      a new AdaptrisMessage
      Throws:
      UnsupportedEncodingException - if the passed character encoding is not supported
    • newMessage

      public abstract AdaptrisMessage newMessage(String payload, String charEncoding) throws UnsupportedEncodingException

      Returns a new AdaptrisMessage with the specified payload and metadata. Uses default platform character encoding.

      Parameters:
      payload - the String payload
      charEncoding - the String's character encoding
      Returns:
      a new AdaptrisMessage
      Throws:
      UnsupportedEncodingException - if the passed character encoding is not supported
    • newMessage

      public abstract AdaptrisMessage newMessage(AdaptrisMessage source, Collection<String> metadataKeysToPreserve) throws CloneNotSupportedException
      Returns a new AdaptrisMessage with an empty payload but with selected metadata from the source.

      The new AdaptrisMessage will have the same message id and MessageLifecycleEvent will be cloned from the original. Object metadata will also be preserved.

      Parameters:
      source - the original AdaptrisMessage
      metadataKeysToPreserve - a list of keys to transfer to the new Message; if null, then all keys.
      Returns:
      a new AdaptrisMessage
      Throws:
      CloneNotSupportedException - if the MleMarkers could not be cloned.
    • getDefaultCharEncoding

      public abstract String getDefaultCharEncoding()
      Return the default character encoding for the message.
      Returns:
      the defaultCharEncoding
    • setDefaultCharEncoding

      public abstract void setDefaultCharEncoding(String s)
      Set the default character encoding to be applied to the message upon creation.

      If not explicitly configured, then the platform default character encoding should be used.

      Parameters:
      s - the defaultCharEncoding to set
      See Also:
    • newMessage

      public abstract AdaptrisMessage newMessage()

      Returns a new AdaptrisMessage. Payload and metadata are null.

      Returns:
      a new AdaptrisMessage with the specified payload and metadata
    • getUniqueIdGenerator

      public IdGenerator getUniqueIdGenerator()
      Returns:
      the uniqueIdGenerator
    • setUniqueIdGenerator

      public void setUniqueIdGenerator(IdGenerator s)
      Set the unique id generator used for messages.

      In some situations you may not want to use the default GuidGenerator instance when assigning unique ids to messages. This allows you to change the IdGenerator used both for message ids unique ids associated with MessageLifecycleEvent.

      Parameters:
      s - the uniqueIdGenerator to set
    • uniqueIdGenerator

      protected IdGenerator uniqueIdGenerator()
    • createDefaultIdGenerator

      protected static IdGenerator createDefaultIdGenerator()
    • createDefaultFactory

      protected static AdaptrisMessageFactory createDefaultFactory()
    • resolve

      protected static String resolve(String envKey, String sysPropKey, String defaultValue)
      Resolve a value from an environment variable or system property.
      Parameters:
      envKey - the environment variable, this takes precedence over system properties.
      sysPropKey - the system property.
      defaultValue - the default value if neither keys exist.
      Returns:
      the resolved value.