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  package org.apache.james.util.mail.mdn;
20  
21  /***
22   * Class <code>Disposition</code> encapsulating
23   * disposition information as defined by RFC 2298.
24   */
25  public class Disposition
26  {
27      private DispositionActionMode fieldActionMode;
28      private DispositionSendingMode fieldSendingMode;
29      private DispositionType fieldDispositionType;
30      private DispositionModifier[] fieldDispositionModifiers;
31  
32      /***
33       * Default Construcor
34       */
35      private Disposition()
36      {
37          super();
38      }
39  
40      /***
41       * Constructor.
42       * 
43       * @param actionMode
44       * @param sendingMode
45       * @param type
46       */
47      public Disposition(DispositionActionMode actionMode, DispositionSendingMode sendingMode, DispositionType type)
48      {
49          this();
50          setActionMode(actionMode);
51          setSendingMode(sendingMode);
52          setDispositionType(type);
53      }
54  
55      /***
56       * Constructor.
57       * 
58       * @param actionMode
59       * @param sendingMode
60       * @param type
61       * @param modifiers
62       */
63      public Disposition(DispositionActionMode actionMode, DispositionSendingMode sendingMode, DispositionType type,
64              DispositionModifier[] modifiers)
65      {
66          this(actionMode, sendingMode, type);
67          setDispositionModifiers(modifiers);
68      }
69  
70      /***
71       * Answer the Disposition Mode.
72       * 
73       * @return Returns the dispostionMode.
74       */
75      protected DispositionActionMode getActionMode()
76      {
77          return fieldActionMode;
78      }
79  
80      /***
81       * Set the Disposition Mode.
82       * 
83       * @param dispostionMode The dispostionMode to set.
84       */
85      protected void setActionMode(DispositionActionMode dispostionMode)
86      {
87          fieldActionMode = dispostionMode;
88      }
89  
90      /***
91       * Answer the Disposition Modifiers.
92       * 
93       * @return Returns the dispostionModifiers.
94       */
95      protected DispositionModifier[] getDispositionModifiers()
96      {
97          return fieldDispositionModifiers;
98      }
99  
100     /***
101      * Set the Disposition Modifiers.
102      * 
103      * @param dispostionModifiers The dispostionModifiers to set.
104      */
105     protected void setDispositionModifiers(DispositionModifier[] dispostionModifiers)
106     {
107         fieldDispositionModifiers = dispostionModifiers;
108     }
109 
110     /***
111      * Answer the Disposition Type.
112      * 
113      * @return Returns the dispostionType.
114      */
115     protected DispositionType getDispositionType()
116     {
117         return fieldDispositionType;
118     }
119 
120     /***
121      * Set the Disposition Type.
122      * 
123      * @param dispostionType The dispostionType to set.
124      */
125     protected void setDispositionType(DispositionType dispostionType)
126     {
127         fieldDispositionType = dispostionType;
128     }
129 
130     /***
131      * @see java.lang.Object#toString()
132      */
133     public String toString()
134     {
135         StringBuffer buffer = new StringBuffer(64);
136         buffer.append("Disposition: ");
137         buffer.append(getActionMode() == null ? "" : getActionMode().toString());
138         buffer.append('/');
139         buffer.append(getSendingMode() == null ? "" : getSendingMode().toString());
140         buffer.append(';');
141         buffer.append(getDispositionType() == null ? "" : getDispositionType().toString());
142         if (null != getDispositionModifiers()
143                 && getDispositionModifiers().length > 0)
144         {
145             buffer.append('/');
146             for (int i = 0; i < getDispositionModifiers().length; i++)
147             {
148                 if (i > 0)
149                     buffer.append(',');
150                 buffer.append(getDispositionModifiers()[i]);
151             }
152         }
153         return buffer.toString();
154     }
155 
156     /***
157      * Answer the Sending Mode.
158      * 
159      * @return Returns the sendingMode.
160      */
161     protected DispositionSendingMode getSendingMode()
162     {
163         return fieldSendingMode;
164     }
165 
166     /***
167      * Set the Sending Mode.
168      * 
169      * @param sendingMode The sendingMode to set.
170      */
171     protected void setSendingMode(DispositionSendingMode sendingMode)
172     {
173         fieldSendingMode = sendingMode;
174     }
175 }