Interface Delivery
-
- All Known Subinterfaces:
StreamDelivery
- All Known Implementing Classes:
ClientDelivery,ClientStreamDelivery
public interface DeliveryIncoming Delivery type that provides access to the message and the delivery data along with methods for settling the delivery when processing completes.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Deliveryaccept()Accepts and settles the delivery.java.util.Map<java.lang.String,java.lang.Object>annotations()Decodes theDeliverypayload and returns aMapcontaining a copy of any associatedDeliveryAnnotationsthat were transmitted with theMessagepayload of thisDelivery.Deliverydisposition(DeliveryState state, boolean settle)Updates the DeliveryState, and optionally settle the delivery as well.<E> Message<E>message()intmessageFormat()Gets the message format for the current delivery.Deliverymodified(boolean deliveryFailed, boolean undeliverableHere)Modifies and settles the delivery.java.io.InputStreamrawInputStream()Create and return anInputStreamthat reads the raw payload bytes of the givenDelivery.Receiverreceiver()Deliveryreject(java.lang.String condition, java.lang.String description)Rejects and settles the delivery, sending supplied error information along with the rejection.Deliveryrelease()Releases and settles the delivery.booleanremoteSettled()Gets whether the delivery was settled by the remote peer yet.DeliveryStateremoteState()Gets the current remote state for the delivery.Deliverysettle()Settles the delivery locally.booleansettled()DeliveryStatestate()Gets the current local state for the delivery.
-
-
-
Method Detail
-
message
<E> Message<E> message() throws ClientException
Decode theDeliverypayload and return anMessageobject.If the incoming message carried any delivery annotations they can be accessed via the
annotations()method. Re-sending the returned message will not also send the incoming delivery annotations, the sender must include them in theSender.send(Message, Map)call if they are to be forwarded onto the next recipient.Calling this message claims the payload of the delivery for the returned
Messageand excludes use of therawInputStream()method of theDeliveryobject. Calling therawInputStream()method after calling this method throwsClientIllegalStateException.- Type Parameters:
E- The type of message body that should be contained in the returnedMessage.- Returns:
- a
Messageinstance that wraps the decoded payload. - Throws:
ClientException- if an error occurs while decoding the payload.
-
rawInputStream
java.io.InputStream rawInputStream() throws ClientExceptionCreate and return anInputStreamthat reads the raw payload bytes of the givenDelivery.Calling this method claims the payload of the delivery for the returned
InputStreamand excludes use of themessage()andannotations()methods of theDeliveryobject. Closing the returned input stream discards any unread bytes from the delivery payload. Calling themessage()orannotations()methods after calling this method throwsClientIllegalStateException.- Returns:
- an
InputStreaminstance that can be used to read the raw delivery payload. - Throws:
ClientException- if an error occurs while decoding the payload.
-
annotations
java.util.Map<java.lang.String,java.lang.Object> annotations() throws ClientExceptionDecodes theDeliverypayload and returns aMapcontaining a copy of any associatedDeliveryAnnotationsthat were transmitted with theMessagepayload of thisDelivery.Calling this message claims the payload of the delivery for the returned
Mapand the decodedMessagethat can be accessed via themessage()method and excludes use of therawInputStream()method of theDeliveryobject. Calling therawInputStream()method after calling this method throwsClientIllegalStateException.- Returns:
- copy of the delivery annotations that were transmitted with the
Messagepayload. - Throws:
ClientException- if an error occurs while decoding the payload.
-
accept
Delivery accept() throws ClientException
Accepts and settles the delivery.- Returns:
- this
Deliveryinstance. - Throws:
ClientException- if an error occurs while sending the disposition
-
release
Delivery release() throws ClientException
Releases and settles the delivery.- Returns:
- this
Deliveryinstance. - Throws:
ClientException- if an error occurs while sending the disposition
-
reject
Delivery reject(java.lang.String condition, java.lang.String description) throws ClientException
Rejects and settles the delivery, sending supplied error information along with the rejection.- Parameters:
condition- The error condition value to supply with the rejection.description- The error description value to supply with the rejection.- Returns:
- this
Deliveryinstance. - Throws:
ClientException- if an error occurs while sending the disposition
-
modified
Delivery modified(boolean deliveryFailed, boolean undeliverableHere) throws ClientException
Modifies and settles the delivery.- Parameters:
deliveryFailed- Indicates if the modified delivery failed.undeliverableHere- Indicates if the modified delivery should not be returned here again.- Returns:
- this
Deliveryinstance. - Throws:
ClientException- if an error occurs while sending the disposition
-
disposition
Delivery disposition(DeliveryState state, boolean settle) throws ClientException
Updates the DeliveryState, and optionally settle the delivery as well.- Parameters:
state- the delivery state to applysettle- whether tosettle()the delivery at the same time- Returns:
- this
Deliveryinstance. - Throws:
ClientException- if an error occurs while sending the disposition
-
settle
Delivery settle() throws ClientException
Settles the delivery locally.- Returns:
- the delivery
- Throws:
ClientException- if an error occurs while sending the disposition
-
settled
boolean settled() throws ClientException- Returns:
- true if the delivery has been locally settled.
- Throws:
ClientException- if an error occurs while reading the settled state
-
state
DeliveryState state() throws ClientException
Gets the current local state for the delivery.- Returns:
- the delivery state
- Throws:
ClientException- if an error occurs while reading the delivery state
-
remoteState
DeliveryState remoteState() throws ClientException
Gets the current remote state for the delivery.- Returns:
- the remote delivery state
- Throws:
ClientException- if an error occurs while reading the remote delivery state
-
remoteSettled
boolean remoteSettled() throws ClientExceptionGets whether the delivery was settled by the remote peer yet.- Returns:
- whether the delivery is remotely settled
- Throws:
ClientException- if an error occurs while reading the remote settlement state
-
messageFormat
int messageFormat() throws ClientExceptionGets the message format for the current delivery.- Returns:
- the message format
- Throws:
ClientException- if an error occurs while reading the delivery message format
-
-