java.lang.Object
com.aoapps.messaging.MultiMessage
- All Implemented Interfaces:
Message,Closeable,AutoCloseable
A message that is a combination of multiple messages.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMultiMessage(Collection<? extends Message> messages) Creates a new multi-message. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes each of the underlying messages.static MultiMessageDeprecated, for removal: This API element is subject to removal in a future version.static MultiMessagedecode(ByteArray encodedMessages, IOSupplier<TempFileContext> tempFileContextSupplier) Decodes the messages using the providedtemporary file contextsuppler as-needed.static MultiMessagedecode(ByteArray encodedMessages, TempFileContext tempFileContext) Deprecated.Please useTempFileContextsupplier which may defer creation until first needed.static MultiMessageDeprecated, for removal: This API element is subject to removal in a future version.Please useTempFileContextsupplier sinceFile.deleteOnExit()is prone to memory leaks in long-running applications.static MultiMessagedecode(String encodedMessages, IOSupplier<TempFileContext> tempFileContextSupplier) Decodes the messages using the providedtemporary file contextsupplier as-needed.static MultiMessagedecode(String encodedMessages, TempFileContext tempFileContext) Deprecated.Please useTempFileContextsupplier which may defer creation until first needed.Encodes the messages into a single ByteArray.Encodes the messages into a single string.booleanTwo messages of the same type with the same body must be considered equal.Collection<? extends Message> Gets the messages or empty list for none.Gets the message type.inthashCode()The hash code must be consistent with equals.toString()
-
Field Details
-
EMPTY_MULTI_MESSAGE
-
-
Constructor Details
-
MultiMessage
Creates a new multi-message.- Parameters:
messages- The messages ornullfor none, defensive copy if performed
-
-
Method Details
-
decode
public static MultiMessage decode(String encodedMessages, IOSupplier<TempFileContext> tempFileContextSupplier) throws IOException Decodes the messages using the providedtemporary file contextsupplier as-needed.- Throws:
IOException
-
decode
public static MultiMessage decode(String encodedMessages, TempFileContext tempFileContext) throws IOException Deprecated.Please useTempFileContextsupplier which may defer creation until first needed.Decodes the messages using the providedtemporary file contextas-needed.- Throws:
IOException- See Also:
-
decode
@Deprecated(forRemoval=true) public static MultiMessage decode(String encodedMessages) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Please useTempFileContextsupplier sinceFile.deleteOnExit()is prone to memory leaks in long-running applications.Decodes the messages, possibly using temporary files withFile.deleteOnExit()as-needed.- Throws:
IOException- See Also:
-
decode
public static MultiMessage decode(ByteArray encodedMessages, IOSupplier<TempFileContext> tempFileContextSupplier) throws IOException Decodes the messages using the providedtemporary file contextsuppler as-needed.- Throws:
IOException
-
decode
public static MultiMessage decode(ByteArray encodedMessages, TempFileContext tempFileContext) throws IOException Deprecated.Please useTempFileContextsupplier which may defer creation until first needed.Decodes the messages using the providedtemporary file contextas-needed.- Throws:
IOException- See Also:
-
decode
@Deprecated(forRemoval=true) public static MultiMessage decode(ByteArray encodedMessages) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Please useTempFileContextsupplier sinceFile.deleteOnExit()is prone to memory leaks in long-running applications.Decodes the messages, possibly using temporary files withFile.deleteOnExit()as-needed.- Throws:
IOException- See Also:
-
toString
-
equals
Description copied from interface:MessageTwo messages of the same type with the same body must be considered equal. -
hashCode
public int hashCode()Description copied from interface:MessageThe hash code must be consistent with equals. -
getMessageType
Description copied from interface:MessageGets the message type.- Specified by:
getMessageTypein interfaceMessage
-
encodeAsString
Encodes the messages into a single string.- Specified by:
encodeAsStringin interfaceMessage- Throws:
IOException
-
encodeAsByteArray
Encodes the messages into a single ByteArray. There is likely a more efficient implementation that reads-through, but this is a simple implementation.- Specified by:
encodeAsByteArrayin interfaceMessage- Throws:
IOException
-
close
Closes each of the underlying messages.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceMessage- Throws:
IOException
-
getMessages
Gets the messages or empty list for none.
-

TempFileContextsupplier sinceFile.deleteOnExit()is prone to memory leaks in long-running applications.