View Javadoc

1   /*** 
2    * 
3    * Copyright 2004 Protique Ltd
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  
19  package org.codehaus.activemq.service.impl;
20  
21  import org.codehaus.activemq.message.MessageAck;
22  import org.codehaus.activemq.service.MessageContainer;
23  import org.codehaus.activemq.service.MessageIdentity;
24  
25  import javax.jms.JMSException;
26  
27  
28  /***
29   * An entry for a message to be dispatched
30   *
31   * @version $Revision: 1.3 $
32   */
33  class MessagePointer {
34      private MessageContainer container;
35      private MessageIdentity messageIdentity;
36      private boolean dispatched;
37      private boolean read;
38  
39  
40      /***
41       * Create a message ptr
42       *
43       * @param container       the container where the message is held
44       * @param messageIdentity the id of the message
45       * @throws JMSException
46       */
47  
48      public MessagePointer(MessageContainer container, MessageIdentity messageIdentity) throws JMSException {
49          this.container = container;
50          this.messageIdentity = messageIdentity;
51          this.container.registerMessageInterest(this.messageIdentity);
52      }
53  
54  
55      /***
56       * Reset default states for this MessagePointer
57       */
58  
59      public void reset() {
60          this.dispatched = false;
61          this.read = false;
62      }
63  
64      /***
65       * Simply remove the interest in the message
66       *
67       * @throws JMSException
68       */
69  
70      public void clear() throws JMSException {
71          container.unregisterMessageInterest(messageIdentity, null);
72      }
73  
74  
75      /***
76       * Notify the container it should delete the message
77       *
78       * @param ack
79       * @throws JMSException
80       */
81  
82      public void delete(MessageAck ack) throws JMSException {
83          clear();
84          container.delete(messageIdentity, ack);
85      }
86  
87      /***
88       * @return Returns the container.
89       */
90      public MessageContainer getContainer() {
91          return container;
92      }
93  
94      /***
95       * @param container The container to set.
96       */
97      public void setContainer(MessageContainer container) {
98          this.container = container;
99      }
100 
101     /***
102      * @return Returns the dispatched.
103      */
104     public boolean isDispatched() {
105         return dispatched;
106     }
107 
108     /***
109      * @param dispatched The dispatched to set.
110      */
111     public void setDispatched(boolean dispatched) {
112         this.dispatched = dispatched;
113     }
114 
115     /***
116      * @return Returns the read.
117      */
118     public boolean isRead() {
119         return read;
120     }
121 
122     /***
123      * @param read The read to set.
124      */
125     public void setRead(boolean read) {
126         this.read = read;
127     }
128 
129     public MessageIdentity getMessageIdentity() {
130         return messageIdentity;
131     }
132 
133     public void setMessageIdentity(MessageIdentity messageIdentity) {
134         this.messageIdentity = messageIdentity;
135     }
136 }