001 package com.mockrunner.mock.jms; 002 003 import javax.jms.JMSException; 004 import javax.jms.MessageNotWriteableException; 005 import javax.jms.TextMessage; 006 007 /** 008 * Mock implementation of JMS <code>TextMessage</code>. 009 */ 010 public class MockTextMessage extends MockMessage implements TextMessage 011 { 012 private String text; 013 014 public MockTextMessage() 015 { 016 this(null); 017 } 018 019 public MockTextMessage(String text) 020 { 021 this.text = text; 022 } 023 024 public void setText(String text) throws JMSException 025 { 026 if(!isInWriteMode()) 027 { 028 throw new MessageNotWriteableException("Message is in read mode"); 029 } 030 this.text = text; 031 } 032 033 public String getText() throws JMSException 034 { 035 return text; 036 } 037 038 public String toString() 039 { 040 return this.getClass().getName() + ": " + text; 041 } 042 043 public void clearBody() throws JMSException 044 { 045 super.clearBody(); 046 text = null; 047 } 048 049 /** 050 * Compares the underlying String. If the Strings of 051 * both messages are <code>null</code>, this 052 * method returns <code>true</code>. 053 */ 054 public boolean equals(Object otherObject) 055 { 056 if(null == otherObject) return false; 057 if(!(otherObject instanceof MockTextMessage)) return false; 058 MockTextMessage otherMessage = (MockTextMessage)otherObject; 059 if(null == text && null == otherMessage.text) return true; 060 return text.equals(otherMessage.text); 061 } 062 063 public int hashCode() 064 { 065 if(null == text) return 0; 066 return text.hashCode(); 067 } 068 }