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-Notification.ind PDU. 24 */ 25 public class NotificationInd extends GenericPdu { 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 * @throws RuntimeException if an undeclared error occurs. 34 */ 35 public NotificationInd() throws InvalidHeaderValueException { 36 super(); 37 setMessageType(PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND); 38 } 39 40 /** 41 * Constructor with given headers. 42 * 43 * @param headers Headers for this PDU. 44 */ 45 NotificationInd(PduHeaders headers) { 46 super(headers); 47 } 48 49 /** 50 * Get X-Mms-Content-Class Value. 51 * 52 * @return the value 53 */ 54 public int getContentClass() { 55 return mPduHeaders.getOctet(PduHeaders.CONTENT_CLASS); 56 } 57 58 /** 59 * Set X-Mms-Content-Class Value. 60 * 61 * @param value the value 62 * @throws InvalidHeaderValueException if the value is invalid. 63 * @throws RuntimeException if an undeclared error occurs. 64 */ 65 public void setContentClass(int value) throws InvalidHeaderValueException { 66 mPduHeaders.setOctet(value, PduHeaders.CONTENT_CLASS); 67 } 68 69 /** 70 * Get X-Mms-Content-Location value. 71 * When used in a PDU other than M-Mbox-Delete.conf and M-Delete.conf: 72 * Content-location-value = Uri-value 73 * 74 * @return the value 75 */ 76 public byte[] getContentLocation() { 77 return mPduHeaders.getTextString(PduHeaders.CONTENT_LOCATION); 78 } 79 80 /** 81 * Set X-Mms-Content-Location value. 82 * 83 * @param value the value 84 * @throws NullPointerException if the value is null. 85 * @throws RuntimeException if an undeclared error occurs. 86 */ 87 public void setContentLocation(byte[] value) { 88 mPduHeaders.setTextString(value, PduHeaders.CONTENT_LOCATION); 89 } 90 91 /** 92 * Get X-Mms-Expiry value. 93 * 94 * Expiry-value = Value-length 95 * (Absolute-token Date-value | Relative-token Delta-seconds-value) 96 * 97 * @return the value 98 */ 99 public long getExpiry() { 100 return mPduHeaders.getLongInteger(PduHeaders.EXPIRY); 101 } 102 103 /** 104 * Set X-Mms-Expiry value. 105 * 106 * @param value the value 107 * @throws RuntimeException if an undeclared error occurs. 108 */ 109 public void setExpiry(long value) { 110 mPduHeaders.setLongInteger(value, PduHeaders.EXPIRY); 111 } 112 113 /** 114 * Get From value. 115 * From-value = Value-length 116 * (Address-present-token Encoded-string-value | Insert-address-token) 117 * 118 * @return the value 119 */ 120 public EncodedStringValue getFrom() { 121 return mPduHeaders.getEncodedStringValue(PduHeaders.FROM); 122 } 123 124 /** 125 * Set From value. 126 * 127 * @param value the value 128 * @throws NullPointerException if the value is null. 129 * @throws RuntimeException if an undeclared error occurs. 130 */ 131 public void setFrom(EncodedStringValue value) { 132 mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM); 133 } 134 135 /** 136 * Get X-Mms-Message-Class value. 137 * Message-class-value = Class-identifier | Token-text 138 * Class-identifier = Personal | Advertisement | Informational | Auto 139 * 140 * @return the value 141 */ 142 public byte[] getMessageClass() { 143 return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 144 } 145 146 /** 147 * Set X-Mms-Message-Class value. 148 * 149 * @param value the value 150 * @throws NullPointerException if the value is null. 151 * @throws RuntimeException if an undeclared error occurs. 152 */ 153 public void setMessageClass(byte[] value) { 154 mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 155 } 156 157 /** 158 * Get X-Mms-Message-Size value. 159 * Message-size-value = Long-integer 160 * 161 * @return the value 162 */ 163 public long getMessageSize() { 164 return mPduHeaders.getLongInteger(PduHeaders.MESSAGE_SIZE); 165 } 166 167 /** 168 * Set X-Mms-Message-Size value. 169 * 170 * @param value the value 171 * @throws RuntimeException if an undeclared error occurs. 172 */ 173 public void setMessageSize(long value) { 174 mPduHeaders.setLongInteger(value, PduHeaders.MESSAGE_SIZE); 175 } 176 177 /** 178 * Get subject. 179 * 180 * @return the value 181 */ 182 public EncodedStringValue getSubject() { 183 return mPduHeaders.getEncodedStringValue(PduHeaders.SUBJECT); 184 } 185 186 /** 187 * Set subject. 188 * 189 * @param value the value 190 * @throws NullPointerException if the value is null. 191 * @throws RuntimeException if an undeclared error occurs. 192 */ 193 public void setSubject(EncodedStringValue value) { 194 mPduHeaders.setEncodedStringValue(value, PduHeaders.SUBJECT); 195 } 196 197 /** 198 * Get X-Mms-Transaction-Id. 199 * 200 * @return the value 201 */ 202 public byte[] getTransactionId() { 203 return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 204 } 205 206 /** 207 * Set X-Mms-Transaction-Id. 208 * 209 * @param value the value 210 * @throws NullPointerException if the value is null. 211 * @throws RuntimeException if an undeclared error occurs. 212 */ 213 public void setTransactionId(byte[] value) { 214 mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 215 } 216 217 /** 218 * Get X-Mms-Delivery-Report Value. 219 * 220 * @return the value 221 */ 222 public int getDeliveryReport() { 223 return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 224 } 225 226 /** 227 * Set X-Mms-Delivery-Report Value. 228 * 229 * @param value the value 230 * @throws InvalidHeaderValueException if the value is invalid. 231 * @throws RuntimeException if an undeclared error occurs. 232 */ 233 public void setDeliveryReport(int value) throws InvalidHeaderValueException { 234 mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 235 } 236 237 /* 238 * Optional, not supported header fields: 239 * 240 * public byte[] getApplicId() {return null;} 241 * public void setApplicId(byte[] value) {} 242 * 243 * public byte[] getAuxApplicId() {return null;} 244 * public void getAuxApplicId(byte[] value) {} 245 * 246 * public byte getDrmContent() {return 0x00;} 247 * public void setDrmContent(byte value) {} 248 * 249 * public byte getDistributionIndicator() {return 0x00;} 250 * public void setDistributionIndicator(byte value) {} 251 * 252 * public ElementDescriptorValue getElementDescriptor() {return null;} 253 * public void getElementDescriptor(ElementDescriptorValue value) {} 254 * 255 * public byte getPriority() {return 0x00;} 256 * public void setPriority(byte value) {} 257 * 258 * public byte getRecommendedRetrievalMode() {return 0x00;} 259 * public void setRecommendedRetrievalMode(byte value) {} 260 * 261 * public byte getRecommendedRetrievalModeText() {return 0x00;} 262 * public void setRecommendedRetrievalModeText(byte value) {} 263 * 264 * public byte[] getReplaceId() {return 0x00;} 265 * public void setReplaceId(byte[] value) {} 266 * 267 * public byte[] getReplyApplicId() {return 0x00;} 268 * public void setReplyApplicId(byte[] value) {} 269 * 270 * public byte getReplyCharging() {return 0x00;} 271 * public void setReplyCharging(byte value) {} 272 * 273 * public byte getReplyChargingDeadline() {return 0x00;} 274 * public void setReplyChargingDeadline(byte value) {} 275 * 276 * public byte[] getReplyChargingId() {return 0x00;} 277 * public void setReplyChargingId(byte[] value) {} 278 * 279 * public long getReplyChargingSize() {return 0;} 280 * public void setReplyChargingSize(long value) {} 281 * 282 * public byte getStored() {return 0x00;} 283 * public void setStored(byte value) {} 284 */ 285 } 286