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 }