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