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 }