View Javadoc

1   /****************************************************************
2    * Licensed to the Apache Software Foundation (ASF) under one   *
3    * or more contributor license agreements.  See the NOTICE file *
4    * distributed with this work for additional information        *
5    * regarding copyright ownership.  The ASF licenses this file   *
6    * to you under the Apache License, Version 2.0 (the            *
7    * "License"); you may not use this file except in compliance   *
8    * with the License.  You may obtain a copy of the License at   *
9    *                                                              *
10   *   http://www.apache.org/licenses/LICENSE-2.0                 *
11   *                                                              *
12   * Unless required by applicable law or agreed to in writing,   *
13   * software distributed under the License is distributed on an  *
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
15   * KIND, either express or implied.  See the License for the    *
16   * specific language governing permissions and limitations      *
17   * under the License.                                           *
18   ****************************************************************/
19  
20  package org.apache.jsieve.mail.optional;
21  
22  import java.util.List;
23  
24  import org.apache.jsieve.mail.SieveMailException;
25  
26  /**
27   * Interface EnvelopeAccessors specifies the method signatures required to
28   * support the Envelope Test.
29   */
30  public interface EnvelopeAccessors {
31      /**
32       * Method getEnvelope answers a List of all of the envelope values in the
33       * receiver whose name is equal to the passed name. If no values are found
34       * an empty List is returned.
35       * 
36       * @param name
37       * @return List
38       * @throws SieveMailException
39       */
40      public List<String> getEnvelope(String name) throws SieveMailException;
41  
42      /**
43       * Method getEnvelopeNames answers a List of the names of the envelope
44       * values in the receiver. No duplicates are allowed.
45       * 
46       * @return List
47       * @throws SieveMailException
48       */
49      public List<String> getEnvelopeNames() throws SieveMailException;
50  
51      /**
52       * <p>
53       * Method getMatchingEnvelope answers a List of all of the envelope values
54       * in the receiver with the passed name. If no matching names are found an
55       * empty List is returned.
56       * </p>
57       * 
58       * <p>
59       * This method differs from getEnvelope(String) in that it ignores case and
60       * the whitespace prefixes and suffixes of an envelope value name when
61       * performing the match, as required by RFC 3028. Thus "From", "from ", "
62       * From" and " from " are considered equal.
63       * </p>
64       * 
65       * @param name
66       * @return List
67       * @throws SieveMailException
68       */
69      public List<String> getMatchingEnvelope(String name) throws SieveMailException;
70  
71  }