1 /* 2 * Copyright (C) 2007 Esmertec AG. 3 * Copyright (C) 2007 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package com.google.android.mms.pdu; 19 20 import com.google.android.mms.InvalidHeaderValueException; 21 22 /** 23 * M-Retrive.conf Pdu. 24 */ 25 public class RetrieveConf extends MultimediaMessagePdu { 26 /** 27 * Empty constructor. 28 * Since the Pdu corresponding to this class is constructed 29 * by the Proxy-Relay server, this class is only instantiated 30 * by the Pdu Parser. 31 * 32 * @throws InvalidHeaderValueException if error occurs. 33 */ 34 public RetrieveConf() throws InvalidHeaderValueException { 35 super(); 36 setMessageType(PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF); 37 } 38 39 /** 40 * Constructor with given headers. 41 * 42 * @param headers Headers for this PDU. 43 */ 44 RetrieveConf(PduHeaders headers) { 45 super(headers); 46 } 47 48 /** 49 * Constructor with given headers and body 50 * 51 * @param headers Headers for this PDU. 52 * @param body Body of this PDu. 53 */ 54 RetrieveConf(PduHeaders headers, PduBody body) { 55 super(headers, body); 56 } 57 58 /** 59 * Get CC value. 60 * 61 * @return the value 62 */ 63 public EncodedStringValue[] getCc() { 64 return mPduHeaders.getEncodedStringValues(PduHeaders.CC); 65 } 66 67 /** 68 * Add a "CC" value. 69 * 70 * @param value the value 71 * @throws NullPointerException if the value is null. 72 */ 73 public void addCc(EncodedStringValue value) { 74 mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC); 75 } 76 77 /** 78 * Get Content-type value. 79 * 80 * @return the value 81 */ 82 public byte[] getContentType() { 83 return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE); 84 } 85 86 /** 87 * Set Content-type value. 88 * 89 * @param value the value 90 * @throws NullPointerException if the value is null. 91 */ 92 public void setContentType(byte[] value) { 93 mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE); 94 } 95 96 /** 97 * Get X-Mms-Delivery-Report value. 98 * 99 * @return the value 100 */ 101 public int getDeliveryReport() { 102 return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 103 } 104 105 /** 106 * Set X-Mms-Delivery-Report value. 107 * 108 * @param value the value 109 * @throws InvalidHeaderValueException if the value is invalid. 110 */ 111 public void setDeliveryReport(int value) throws InvalidHeaderValueException { 112 mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 113 } 114 115 /** 116 * Get From value. 117 * From-value = Value-length 118 * (Address-present-token Encoded-string-value | Insert-address-token) 119 * 120 * @return the value 121 */ 122 public EncodedStringValue getFrom() { 123 return mPduHeaders.getEncodedStringValue(PduHeaders.FROM); 124 } 125 126 /** 127 * Set From value. 128 * 129 * @param value the value 130 * @throws NullPointerException if the value is null. 131 */ 132 public void setFrom(EncodedStringValue value) { 133 mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM); 134 } 135 136 /** 137 * Get X-Mms-Message-Class value. 138 * Message-class-value = Class-identifier | Token-text 139 * Class-identifier = Personal | Advertisement | Informational | Auto 140 * 141 * @return the value 142 */ 143 public byte[] getMessageClass() { 144 return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 145 } 146 147 /** 148 * Set X-Mms-Message-Class value. 149 * 150 * @param value the value 151 * @throws NullPointerException if the value is null. 152 */ 153 public void setMessageClass(byte[] value) { 154 mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 155 } 156 157 /** 158 * Get Message-ID value. 159 * 160 * @return the value 161 */ 162 public byte[] getMessageId() { 163 return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID); 164 } 165 166 /** 167 * Set Message-ID value. 168 * 169 * @param value the value 170 * @throws NullPointerException if the value is null. 171 */ 172 public void setMessageId(byte[] value) { 173 mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID); 174 } 175 176 /** 177 * Get X-Mms-Read-Report value. 178 * 179 * @return the value 180 */ 181 public int getReadReport() { 182 return mPduHeaders.getOctet(PduHeaders.READ_REPORT); 183 } 184 185 /** 186 * Set X-Mms-Read-Report value. 187 * 188 * @param value the value 189 * @throws InvalidHeaderValueException if the value is invalid. 190 */ 191 public void setReadReport(int value) throws InvalidHeaderValueException { 192 mPduHeaders.setOctet(value, PduHeaders.READ_REPORT); 193 } 194 195 /** 196 * Get X-Mms-Retrieve-Status value. 197 * 198 * @return the value 199 */ 200 public int getRetrieveStatus() { 201 return mPduHeaders.getOctet(PduHeaders.RETRIEVE_STATUS); 202 } 203 204 /** 205 * Set X-Mms-Retrieve-Status value. 206 * 207 * @param value the value 208 * @throws InvalidHeaderValueException if the value is invalid. 209 */ 210 public void setRetrieveStatus(int value) throws InvalidHeaderValueException { 211 mPduHeaders.setOctet(value, PduHeaders.RETRIEVE_STATUS); 212 } 213 214 /** 215 * Get X-Mms-Retrieve-Text value. 216 * 217 * @return the value 218 */ 219 public EncodedStringValue getRetrieveText() { 220 return mPduHeaders.getEncodedStringValue(PduHeaders.RETRIEVE_TEXT); 221 } 222 223 /** 224 * Set X-Mms-Retrieve-Text value. 225 * 226 * @param value the value 227 * @throws NullPointerException if the value is null. 228 */ 229 public void setRetrieveText(EncodedStringValue value) { 230 mPduHeaders.setEncodedStringValue(value, PduHeaders.RETRIEVE_TEXT); 231 } 232 233 /** 234 * Get X-Mms-Transaction-Id. 235 * 236 * @return the value 237 */ 238 public byte[] getTransactionId() { 239 return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 240 } 241 242 /** 243 * Set X-Mms-Transaction-Id. 244 * 245 * @param value the value 246 * @throws NullPointerException if the value is null. 247 */ 248 public void setTransactionId(byte[] value) { 249 mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 250 } 251 252 /* 253 * Optional, not supported header fields: 254 * 255 * public byte[] getApplicId() {return null;} 256 * public void setApplicId(byte[] value) {} 257 * 258 * public byte[] getAuxApplicId() {return null;} 259 * public void getAuxApplicId(byte[] value) {} 260 * 261 * public byte getContentClass() {return 0x00;} 262 * public void setApplicId(byte value) {} 263 * 264 * public byte getDrmContent() {return 0x00;} 265 * public void setDrmContent(byte value) {} 266 * 267 * public byte getDistributionIndicator() {return 0x00;} 268 * public void setDistributionIndicator(byte value) {} 269 * 270 * public PreviouslySentByValue getPreviouslySentBy() {return null;} 271 * public void setPreviouslySentBy(PreviouslySentByValue value) {} 272 * 273 * public PreviouslySentDateValue getPreviouslySentDate() {} 274 * public void setPreviouslySentDate(PreviouslySentDateValue value) {} 275 * 276 * public MmFlagsValue getMmFlags() {return null;} 277 * public void setMmFlags(MmFlagsValue value) {} 278 * 279 * public MmStateValue getMmState() {return null;} 280 * public void getMmState(MmStateValue value) {} 281 * 282 * public byte[] getReplaceId() {return 0x00;} 283 * public void setReplaceId(byte[] value) {} 284 * 285 * public byte[] getReplyApplicId() {return 0x00;} 286 * public void setReplyApplicId(byte[] value) {} 287 * 288 * public byte getReplyCharging() {return 0x00;} 289 * public void setReplyCharging(byte value) {} 290 * 291 * public byte getReplyChargingDeadline() {return 0x00;} 292 * public void setReplyChargingDeadline(byte value) {} 293 * 294 * public byte[] getReplyChargingId() {return 0x00;} 295 * public void setReplyChargingId(byte[] value) {} 296 * 297 * public long getReplyChargingSize() {return 0;} 298 * public void setReplyChargingSize(long value) {} 299 */ 300 } 301