package com.google.pubsub.jms.light.message; import javax.jms.JMSException; import javax.jms.MessageFormatException; import javax.jms.TextMessage; /** * Default PubSub {@link TextMessage} implementation. * * @author Maksym Prokhorenko */ public class PubSubTextMessage extends AbstractPubSubMessage implements TextMessage { private String payload; @Override public void setText(final String payload) throws JMSException { this.payload = payload; } @Override public String getText() throws JMSException { return payload; } @Override public void clearBody() throws JMSException { payload = null; } @Override public <T> T getBody(final Class<T> clazz) throws JMSException { final T result; if (isBodyAssignableTo(clazz)) { result = clazz.cast(getText()); } else { throw new MessageFormatException("Can't be assigned to " + clazz); } return result; } @Override public boolean isBodyAssignableTo(final Class clazz) throws JMSException { return clazz.equals(String.class); } }