001 /** 002 * 003 * Copyright 2003-2006 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package javax.mail; 019 020 /** 021 * @version $Rev: 421852 $ $Date: 2006-07-14 03:02:19 -0700 (Fri, 14 Jul 2006) $ 022 */ 023 public interface UIDFolder { 024 /** 025 * A special value than can be passed as the <code>end</code> parameter to 026 * {@link Folder#getMessages(int, int)} to indicate the last message in this folder. 027 */ 028 public static final long LASTUID = -1; 029 030 public abstract long getUIDValidity() throws MessagingException; 031 032 public abstract Message getMessageByUID(long uid) 033 throws MessagingException; 034 035 public abstract Message[] getMessagesByUID(long start, long end) 036 throws MessagingException; 037 038 public abstract Message[] getMessagesByUID(long[] ids) 039 throws MessagingException; 040 041 public abstract long getUID(Message message) throws MessagingException; 042 043 public static class FetchProfileItem extends FetchProfile.Item { 044 public static final FetchProfileItem UID = new FetchProfileItem("Uid"); 045 046 protected FetchProfileItem(String name) { 047 super(name); 048 } 049 } 050 }