diff options
Diffstat (limited to 'qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java')
-rw-r--r-- | qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java | 91 |
1 files changed, 11 insertions, 80 deletions
diff --git a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java index d0c359a592..1c93680a7f 100644 --- a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java +++ b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/util/ReadOnlyMessageAdapter.java @@ -17,6 +17,7 @@ */ package org.apache.qpid.messaging.util; +import java.nio.ByteBuffer; import java.util.Collections; import java.util.Map; @@ -25,28 +26,13 @@ import org.apache.qpid.messaging.MessageNotWritableException; import org.apache.qpid.messaging.MessagingException; /** - * Ensures the message is read only by blocking the delegates - * setter methods. + * Ensures the message properties and content are read only. */ -public class ReadOnlyMessageAdapter implements Message +public class ReadOnlyMessageAdapter extends GenericMessageAdapter { - private Message _delegate; - ReadOnlyMessageAdapter(Message delegate) { - _delegate = delegate; - } - - @Override - public Object getContent() throws MessagingException - { - return _delegate.getContent(); - } - - @Override - public String getMessageId() throws MessagingException - { - return _delegate.getMessageId(); + super(delegate); } @Override @@ -56,120 +42,60 @@ public class ReadOnlyMessageAdapter implements Message } @Override - public String getSubject() throws MessagingException - { - return _delegate.getSubject(); - } - - @Override public void setSubject(String subject) throws MessagingException { throwMessageNotWritableException(); } @Override - public String getContentType() throws MessagingException - { - return _delegate.getContentType(); - } - - @Override public void setContentType(String contentType) throws MessagingException { throwMessageNotWritableException(); } @Override - public String getCorrelationId() throws MessagingException - { - return _delegate.getCorrelationId(); - } - - @Override public void setCorrelationId(String correlationId) throws MessagingException { throwMessageNotWritableException(); } @Override - public String getReplyTo() throws MessagingException - { - return _delegate.getReplyTo(); - } - - @Override public void setReplyTo(String replyTo) throws MessagingException { throwMessageNotWritableException(); } @Override - public String getUserId() throws MessagingException - { - return _delegate.getUserId(); - } - - @Override public void setUserId(String userId) throws MessagingException { throwMessageNotWritableException(); } @Override - public boolean isDurable() throws MessagingException - { - return _delegate.isDurable(); - } - - @Override public void setDurable(boolean durable) throws MessagingException { throwMessageNotWritableException(); } @Override - public boolean isRedelivered() throws MessagingException - { - return _delegate.isRedelivered(); - } - - @Override public void setRedelivered(boolean redelivered) throws MessagingException { throwMessageNotWritableException(); } @Override - public int getPriority() throws MessagingException - { - return _delegate.getPriority(); - } - - @Override public void setPriority(int priority) throws MessagingException { throwMessageNotWritableException(); } @Override - public long getTtl() throws MessagingException - { - return _delegate.getTtl(); - } - - @Override public void setTtl(long ttl) throws MessagingException { throwMessageNotWritableException(); } @Override - public long getTimestamp() throws MessagingException - { - return _delegate.getTimestamp(); - } - - @Override public void setTimestamp(long timestamp) throws MessagingException { throwMessageNotWritableException(); @@ -178,7 +104,7 @@ public class ReadOnlyMessageAdapter implements Message @Override public Map<String, Object> getProperties() throws MessagingException { - return Collections.unmodifiableMap(_delegate.getProperties()); + return Collections.unmodifiableMap(super.getProperties()); } @Override @@ -187,9 +113,14 @@ public class ReadOnlyMessageAdapter implements Message throwMessageNotWritableException(); } + @Override + public ByteBuffer getContent() + { + return super.getContent().asReadOnlyBuffer(); + } + private void throwMessageNotWritableException() throws MessageNotWritableException { throw new MessageNotWritableException("Message is read-only"); } - } |