View Javadoc

1   /*
2    * Copyright (c) 2004-2007 Creative Sphere Limited.
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the Eclipse Public License v1.0
5    * which accompanies this distribution, and is available at
6    * http://www.eclipse.org/legal/epl-v10.html
7    *
8    * Contributors:
9    *
10   *   Creative Sphere - initial API and implementation
11   *
12   */
13  package org.abstracthorizon.mercury.imap.cmd;
14  
15  import java.io.IOException;
16  
17  import javax.mail.MessagingException;
18  import javax.mail.internet.MimeMessage;
19  
20  import org.abstracthorizon.mercury.imap.IMAPSession;
21  import org.abstracthorizon.mercury.imap.util.MessageProcessor;
22  
23  /**
24   * A super class for all commands that can be invoked by UID prefix
25   * (Copy, Fetch, Search and Store)
26   *
27   * @author Daniel Sendula
28   */
29  
30  public abstract class UIDCommand extends IMAPCommand implements MessageProcessor {
31  
32      /** Run as UID command */
33      protected boolean asuid = false;
34  
35      /**
36       * Constructor
37       * @param mnemonic mnemonic
38       */
39      public UIDCommand(String mnemonic) {
40          super(mnemonic);
41      }
42  
43      /**
44       * Marks to run command as UID command
45       */
46      public void setAsUID() {
47          asuid = true;
48      }
49  
50      /**
51       * Template method to be implementd to process each individial message
52       * @param session session
53       * @param m message
54       * @throws IOException
55       * @throws MessagingException
56       */
57      public abstract void process(IMAPSession session, MimeMessage m) throws IOException, MessagingException;
58  
59  }