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.5 $
    32   */
    33  class MessagePointer {
    34      private MessageContainer container;
    35      private MessageIdentity messageIdentity;
    36      private boolean dispatched;
    37      private boolean read;
    38      private boolean redelivered;
    39
    40
    41      /***
    42       * Create a message ptr
    43       *
    44       * @param container       the container where the message is held
    45       * @param messageIdentity the id of the message
    46       * @throws JMSException
    47       */
    48
    49      public MessagePointer(MessageContainer container, MessageIdentity messageIdentity) throws JMSException {
    50          this.container = container;
    51          this.messageIdentity = messageIdentity;
    52          this.container.registerMessageInterest(this.messageIdentity);
    53      }
    54
    55
    56      /***
    57       * Reset default states for this MessagePointer
    58       */
    59
    60      public void reset() {
    61          this.dispatched = false;
    62          this.read = false;
    63      }
    64
    65      /***
    66       * Simply remove the interest in the message
    67       *
    68       * @throws JMSException
    69       */
    70
    71      public void clear() throws JMSException {
    72          container.unregisterMessageInterest(messageIdentity, null);
    73      }
    74
    75
    76      /***
    77       * Notify the container it should delete the message
    78       *
    79       * @param ack
    80       * @throws JMSException
    81       */
    82
    83      public void delete(MessageAck ack) throws JMSException {
    84          clear();
    85          container.delete(messageIdentity, ack);
    86      }
    87
    88      /***
    89       * @return Returns the container.
    90       */
    91      public MessageContainer getContainer() {
    92          return container;
    93      }
    94
    95      /***
    96       * @param container The container to set.
    97       */
    98      public void setContainer(MessageContainer container) {
    99          this.container = container;
    100     }
    101
    102     /***
    103      * @return Returns the dispatched.
    104      */
    105     public boolean isDispatched() {
    106         return dispatched;
    107     }
    108
    109     /***
    110      * @param dispatched The dispatched to set.
    111      */
    112     public void setDispatched(boolean dispatched) {
    113         this.dispatched = dispatched;
    114     }
    115
    116     /***
    117      * @return Returns the read.
    118      */
    119     public boolean isRead() {
    120         return read;
    121     }
    122
    123     /***
    124      * @param read The read to set.
    125      */
    126     public void setRead(boolean read) {
    127         this.read = read;
    128     }
    129
    130     public MessageIdentity getMessageIdentity() {
    131         return messageIdentity;
    132     }
    133
    134     public void setMessageIdentity(MessageIdentity messageIdentity) {
    135         this.messageIdentity = messageIdentity;
    136     }
    137     /***
    138      * @return Returns the redilivered.
    139      */
    140     public boolean isRedelivered() {
    141         return redelivered;
    142     }
    143     /***
    144      * @param redelivered The redilivered to set.
    145      */
    146     public void setRedelivered(boolean redelivered) {
    147         this.redelivered = redelivered;
    148     }
    149 }