Class StructuredDataMessage

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected StructuredDataMessage()
      Basic constructor.
        StructuredDataMessage​(java.lang.String id, java.lang.String msg, java.lang.String type)
      Creates a StructuredDataMessage using an ID (max 32 characters), message, and type (max 32 characters).
        StructuredDataMessage​(java.lang.String id, java.lang.String msg, java.lang.String type, int maxLength)
      Creates a StructuredDataMessage using an ID (user specified max characters), message, and type (user specified maximum number of characters).
        StructuredDataMessage​(java.lang.String id, java.lang.String msg, java.lang.String type, java.util.Map<java.lang.String,​java.lang.String> data)
      Creates a StructuredDataMessage using an ID (max 32 characters), message, type (max 32 characters), and an initial map of structured data to include.
        StructuredDataMessage​(java.lang.String id, java.lang.String msg, java.lang.String type, java.util.Map<java.lang.String,​java.lang.String> data, int maxLength)
      Creates a StructuredDataMessage using an (user specified max characters), message, and type (user specified maximum number of characters, and an initial map of structured data to include.
        StructuredDataMessage​(StructuredDataId id, java.lang.String msg, java.lang.String type)
      Creates a StructuredDataMessage using a StructuredDataId, message, and type (max 32 characters).
        StructuredDataMessage​(StructuredDataId id, java.lang.String msg, java.lang.String type, int maxLength)
      Creates a StructuredDataMessage using a StructuredDataId, message, and type (max 32 characters).
        StructuredDataMessage​(StructuredDataId id, java.lang.String msg, java.lang.String type, java.util.Map<java.lang.String,​java.lang.String> data)
      Creates a StructuredDataMessage using a StructuredDataId, message, type (max 32 characters), and an initial map of structured data to include.
        StructuredDataMessage​(StructuredDataId id, java.lang.String msg, java.lang.String type, java.util.Map<java.lang.String,​java.lang.String> data, int maxLength)
      Creates a StructuredDataMessage using a StructuredDataId, message, type (max 32 characters), and an initial map of structured data to include.
      private StructuredDataMessage​(StructuredDataMessage msg, java.util.Map<java.lang.String,​java.lang.String> map)
      Constructor based on a StructuredDataMessage.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String asString()
      Formats the structured data as described in RFC 5424.
      java.lang.String asString​(java.lang.String format)
      Formats the structured data as described in RFC 5424.
      java.lang.String asString​(StructuredDataMessage.Format format, StructuredDataId structuredDataId)
      Formats the structured data as described in RFC 5424.
      void asString​(StructuredDataMessage.Format format, StructuredDataId structuredDataId, java.lang.StringBuilder sb)
      Formats the structured data as described in RFC 5424.
      private void asXml​(StructuredDataId structuredDataId, java.lang.StringBuilder sb)  
      boolean equals​(java.lang.Object o)  
      void formatTo​(java.lang.String[] formats, java.lang.StringBuilder buffer)
      Writes a text representation of this object into the specified StringBuilder, ideally without allocating temporary objects.
      void formatTo​(java.lang.StringBuilder buffer)
      Writes a text representation of this object into the specified StringBuilder, ideally without allocating temporary objects.
      java.lang.String getFormat()
      Returns the message.
      private StructuredDataMessage.Format getFormat​(java.lang.String[] formats)  
      java.lang.String[] getFormats()
      Returns the supported formats.
      java.lang.String getFormattedMessage()
      Formats the message and return it.
      java.lang.String getFormattedMessage​(java.lang.String[] formats)
      Formats the message according the the specified format.
      StructuredDataId getId()
      Returns this message id.
      java.lang.String getType()
      Returns this message type.
      int hashCode()  
      StructuredDataMessage newInstance​(java.util.Map<java.lang.String,​java.lang.String> map)
      Constructs a new instance based on an existing Map.
      protected void setId​(java.lang.String id)
      Sets the id from a String.
      protected void setId​(StructuredDataId id)
      Sets the id.
      protected void setMessageFormat​(java.lang.String msg)  
      protected void setType​(java.lang.String type)  
      java.lang.String toString()  
      protected void validate​(java.lang.String key, boolean value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, byte value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, char value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, double value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, float value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, int value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, long value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, short value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, java.lang.Object value)
      Default implementation does nothing.
      protected void validate​(java.lang.String key, java.lang.String value)
      Default implementation does nothing.
      protected void validateKey​(java.lang.String key)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • StructuredDataMessage

        public StructuredDataMessage​(java.lang.String id,
                                     java.lang.String msg,
                                     java.lang.String type)
        Creates a StructuredDataMessage using an ID (max 32 characters), message, and type (max 32 characters).
        Parameters:
        id - The String id.
        msg - The message.
        type - The message type.
      • StructuredDataMessage

        public StructuredDataMessage​(java.lang.String id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     int maxLength)
        Creates a StructuredDataMessage using an ID (user specified max characters), message, and type (user specified maximum number of characters).
        Parameters:
        id - The String id.
        msg - The message.
        type - The message type.
        maxLength - The maximum length of keys;
        Since:
        2.9
      • StructuredDataMessage

        public StructuredDataMessage​(java.lang.String id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     java.util.Map<java.lang.String,​java.lang.String> data)
        Creates a StructuredDataMessage using an ID (max 32 characters), message, type (max 32 characters), and an initial map of structured data to include.
        Parameters:
        id - The String id.
        msg - The message.
        type - The message type.
        data - The StructuredData map.
      • StructuredDataMessage

        public StructuredDataMessage​(java.lang.String id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     java.util.Map<java.lang.String,​java.lang.String> data,
                                     int maxLength)
        Creates a StructuredDataMessage using an (user specified max characters), message, and type (user specified maximum number of characters, and an initial map of structured data to include.
        Parameters:
        id - The String id.
        msg - The message.
        type - The message type.
        data - The StructuredData map.
        maxLength - The maximum length of keys;
        Since:
        2.9
      • StructuredDataMessage

        public StructuredDataMessage​(StructuredDataId id,
                                     java.lang.String msg,
                                     java.lang.String type)
        Creates a StructuredDataMessage using a StructuredDataId, message, and type (max 32 characters).
        Parameters:
        id - The StructuredDataId.
        msg - The message.
        type - The message type.
      • StructuredDataMessage

        public StructuredDataMessage​(StructuredDataId id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     int maxLength)
        Creates a StructuredDataMessage using a StructuredDataId, message, and type (max 32 characters).
        Parameters:
        id - The StructuredDataId.
        msg - The message.
        type - The message type.
        maxLength - The maximum length of keys;
        Since:
        2.9
      • StructuredDataMessage

        public StructuredDataMessage​(StructuredDataId id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     java.util.Map<java.lang.String,​java.lang.String> data)
        Creates a StructuredDataMessage using a StructuredDataId, message, type (max 32 characters), and an initial map of structured data to include.
        Parameters:
        id - The StructuredDataId.
        msg - The message.
        type - The message type.
        data - The StructuredData map.
      • StructuredDataMessage

        public StructuredDataMessage​(StructuredDataId id,
                                     java.lang.String msg,
                                     java.lang.String type,
                                     java.util.Map<java.lang.String,​java.lang.String> data,
                                     int maxLength)
        Creates a StructuredDataMessage using a StructuredDataId, message, type (max 32 characters), and an initial map of structured data to include.
        Parameters:
        id - The StructuredDataId.
        msg - The message.
        type - The message type.
        data - The StructuredData map.
        maxLength - The maximum length of keys;
        Since:
        2.9
      • StructuredDataMessage

        private StructuredDataMessage​(StructuredDataMessage msg,
                                      java.util.Map<java.lang.String,​java.lang.String> map)
        Constructor based on a StructuredDataMessage.
        Parameters:
        msg - The StructuredDataMessage.
        map - The StructuredData map.
      • StructuredDataMessage

        protected StructuredDataMessage()
        Basic constructor.
    • Method Detail

      • getId

        public StructuredDataId getId()
        Returns this message id.
        Returns:
        the StructuredDataId.
      • setId

        protected void setId​(java.lang.String id)
        Sets the id from a String. This ID can be at most 32 characters long.
        Parameters:
        id - The String id.
      • setId

        protected void setId​(StructuredDataId id)
        Sets the id.
        Parameters:
        id - The StructuredDataId.
      • getType

        public java.lang.String getType()
        Returns this message type.
        Returns:
        the type.
      • setType

        protected void setType​(java.lang.String type)
      • formatTo

        public void formatTo​(java.lang.String[] formats,
                             java.lang.StringBuilder buffer)
        Description copied from interface: MultiFormatStringBuilderFormattable
        Writes a text representation of this object into the specified StringBuilder, ideally without allocating temporary objects.
        Specified by:
        formatTo in interface MultiFormatStringBuilderFormattable
        Overrides:
        formatTo in class MapMessage<StructuredDataMessage,​java.lang.String>
        Parameters:
        formats - An array of Strings that provide extra information about how to format the message. Each MultiFormatStringBuilderFormattable implementation is free to use the provided formats however they choose.
        buffer - the StringBuilder to write into
      • setMessageFormat

        protected void setMessageFormat​(java.lang.String msg)
      • asString

        public java.lang.String asString()
        Formats the structured data as described in RFC 5424.
        Overrides:
        asString in class MapMessage<StructuredDataMessage,​java.lang.String>
        Returns:
        The formatted String.
      • asString

        public java.lang.String asString​(java.lang.String format)
        Formats the structured data as described in RFC 5424.
        Overrides:
        asString in class MapMessage<StructuredDataMessage,​java.lang.String>
        Parameters:
        format - The format identifier. Ignored in this implementation.
        Returns:
        The formatted String.
      • asString

        public final java.lang.String asString​(StructuredDataMessage.Format format,
                                               StructuredDataId structuredDataId)
        Formats the structured data as described in RFC 5424.
        Parameters:
        format - "full" will include the type and message. null will return only the STRUCTURED-DATA as described in RFC 5424
        structuredDataId - The SD-ID as described in RFC 5424. If null the value in the StructuredData will be used.
        Returns:
        The formatted String.
      • asString

        public final void asString​(StructuredDataMessage.Format format,
                                   StructuredDataId structuredDataId,
                                   java.lang.StringBuilder sb)
        Formats the structured data as described in RFC 5424.
        Parameters:
        format - "full" will include the type and message. null will return only the STRUCTURED-DATA as described in RFC 5424
        structuredDataId - The SD-ID as described in RFC 5424. If null the value in the StructuredData will be used.
        sb - The StringBuilder to append the formatted message to.
      • asXml

        private void asXml​(StructuredDataId structuredDataId,
                           java.lang.StringBuilder sb)
      • getFormattedMessage

        public java.lang.String getFormattedMessage​(java.lang.String[] formats)
        Formats the message according the the specified format.
        Specified by:
        getFormattedMessage in interface MultiformatMessage
        Overrides:
        getFormattedMessage in class MapMessage<StructuredDataMessage,​java.lang.String>
        Parameters:
        formats - An array of Strings that provide extra information about how to format the message. StructuredDataMessage accepts only a format of "FULL" which will cause the event type to be prepended and the event message to be appended. Specifying any other value will cause only the StructuredData to be included. The default is "FULL".
        Returns:
        the formatted message.
      • validate

        protected void validate​(java.lang.String key,
                                byte value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                char value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                double value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                float value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                int value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                long value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                java.lang.Object value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                short value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
        Since:
        2.9
      • validate

        protected void validate​(java.lang.String key,
                                java.lang.String value)
        Description copied from class: MapMessage
        Default implementation does nothing.
        Overrides:
        validate in class MapMessage<StructuredDataMessage,​java.lang.String>
      • validateKey

        protected void validateKey​(java.lang.String key)