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.android.messaging.mmslib.pdu; 19 20 import com.android.messaging.mmslib.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 */ RetrieveConf()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 */ RetrieveConf(PduHeaders headers)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 */ RetrieveConf(PduHeaders headers, PduBody body)54 RetrieveConf(PduHeaders headers, PduBody body) { 55 super(headers, body); 56 } 57 58 /** 59 * Get CC value. 60 * 61 * @return the value 62 */ getCc()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 */ addCc(EncodedStringValue value)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 */ getContentType()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 */ setContentType(byte[] value)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 */ getDeliveryReport()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 */ setDeliveryReport(int value)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 */ getFrom()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 */ setFrom(EncodedStringValue value)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 */ getMessageClass()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 */ setMessageClass(byte[] value)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 */ getMessageId()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 */ setMessageId(byte[] value)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 */ getReadReport()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 */ setReadReport(int value)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 */ getRetrieveStatus()200 public int getRetrieveStatus() { 201 /* 202 * If the header is not there, assuming it is OK status. 203 * Some carriers may choose to not send this header. 204 */ 205 return mPduHeaders.hasHeader(PduHeaders.RETRIEVE_STATUS) ? 206 mPduHeaders.getOctet(PduHeaders.RETRIEVE_STATUS) : PduHeaders.RETRIEVE_STATUS_OK; 207 } 208 209 /** 210 * Set X-Mms-Retrieve-Status value. 211 * 212 * @param value the value 213 * @throws InvalidHeaderValueException if the value is invalid. 214 */ setRetrieveStatus(int value)215 public void setRetrieveStatus(int value) throws InvalidHeaderValueException { 216 mPduHeaders.setOctet(value, PduHeaders.RETRIEVE_STATUS); 217 } 218 219 /** 220 * Get X-Mms-Retrieve-Text value. 221 * 222 * @return the value 223 */ getRetrieveText()224 public EncodedStringValue getRetrieveText() { 225 return mPduHeaders.getEncodedStringValue(PduHeaders.RETRIEVE_TEXT); 226 } 227 228 /** 229 * Set X-Mms-Retrieve-Text value. 230 * 231 * @param value the value 232 * @throws NullPointerException if the value is null. 233 */ setRetrieveText(EncodedStringValue value)234 public void setRetrieveText(EncodedStringValue value) { 235 mPduHeaders.setEncodedStringValue(value, PduHeaders.RETRIEVE_TEXT); 236 } 237 238 /** 239 * Get X-Mms-Transaction-Id. 240 * 241 * @return the value 242 */ getTransactionId()243 public byte[] getTransactionId() { 244 return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 245 } 246 247 /** 248 * Set X-Mms-Transaction-Id. 249 * 250 * @param value the value 251 * @throws NullPointerException if the value is null. 252 */ setTransactionId(byte[] value)253 public void setTransactionId(byte[] value) { 254 mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 255 } 256 257 /* 258 * Optional, not supported header fields: 259 * 260 * public byte[] getApplicId() {return null;} 261 * public void setApplicId(byte[] value) {} 262 * 263 * public byte[] getAuxApplicId() {return null;} 264 * public void getAuxApplicId(byte[] value) {} 265 * 266 * public byte getContentClass() {return 0x00;} 267 * public void setApplicId(byte value) {} 268 * 269 * public byte getDrmContent() {return 0x00;} 270 * public void setDrmContent(byte value) {} 271 * 272 * public byte getDistributionIndicator() {return 0x00;} 273 * public void setDistributionIndicator(byte value) {} 274 * 275 * public PreviouslySentByValue getPreviouslySentBy() {return null;} 276 * public void setPreviouslySentBy(PreviouslySentByValue value) {} 277 * 278 * public PreviouslySentDateValue getPreviouslySentDate() {} 279 * public void setPreviouslySentDate(PreviouslySentDateValue value) {} 280 * 281 * public MmFlagsValue getMmFlags() {return null;} 282 * public void setMmFlags(MmFlagsValue value) {} 283 * 284 * public MmStateValue getMmState() {return null;} 285 * public void getMmState(MmStateValue value) {} 286 * 287 * public byte[] getReplaceId() {return 0x00;} 288 * public void setReplaceId(byte[] value) {} 289 * 290 * public byte[] getReplyApplicId() {return 0x00;} 291 * public void setReplyApplicId(byte[] value) {} 292 * 293 * public byte getReplyCharging() {return 0x00;} 294 * public void setReplyCharging(byte value) {} 295 * 296 * public byte getReplyChargingDeadline() {return 0x00;} 297 * public void setReplyChargingDeadline(byte value) {} 298 * 299 * public byte[] getReplyChargingId() {return 0x00;} 300 * public void setReplyChargingId(byte[] value) {} 301 * 302 * public long getReplyChargingSize() {return 0;} 303 * public void setReplyChargingSize(long value) {} 304 */ 305 } 306