1526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen/* 2526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Copyright (C) 2007-2008 Esmertec AG. 3526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Copyright (C) 2007-2008 The Android Open Source Project 4526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 5526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Licensed under the Apache License, Version 2.0 (the "License"); 6526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * you may not use this file except in compliance with the License. 7526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * You may obtain a copy of the License at 8526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 9526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * http://www.apache.org/licenses/LICENSE-2.0 10526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 11526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Unless required by applicable law or agreed to in writing, software 12526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * distributed under the License is distributed on an "AS IS" BASIS, 13526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * See the License for the specific language governing permissions and 15526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * limitations under the License. 16526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 17526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 18526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wenpackage com.google.android.mms.pdu; 19526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 20526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wenimport android.util.Log; 21526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 22526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wenimport com.google.android.mms.InvalidHeaderValueException; 23526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 24526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wenpublic class SendReq extends MultimediaMessagePdu { 25526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen private static final String TAG = "SendReq"; 26526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 27526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public SendReq() { 28526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen super(); 29526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 30526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen try { 31526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 32526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setMmsVersion(PduHeaders.CURRENT_MMS_VERSION); 33526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen // FIXME: Content-type must be decided according to whether 34526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen // SMIL part present. 35526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setContentType("application/vnd.wap.multipart.related".getBytes()); 36526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setFrom(new EncodedStringValue(PduHeaders.FROM_INSERT_ADDRESS_TOKEN_STR.getBytes())); 37526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setTransactionId(generateTransactionId()); 38526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } catch (InvalidHeaderValueException e) { 39526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen // Impossible to reach here since all headers we set above are valid. 40526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen Log.e(TAG, "Unexpected InvalidHeaderValueException.", e); 41526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen throw new RuntimeException(e); 42526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 43526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 44526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 45526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen private byte[] generateTransactionId() { 46526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen String transactionId = "T" + Long.toHexString(System.currentTimeMillis()); 47526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return transactionId.getBytes(); 48526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 49526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 50526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 51526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Constructor, used when composing a M-Send.req pdu. 52526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 53526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param contentType the content type value 54526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param from the from value 55526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param mmsVersion current viersion of mms 56526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param transactionId the transaction-id value 57526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws InvalidHeaderValueException if parameters are invalid. 58526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * NullPointerException if contentType, form or transactionId is null. 59526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 60526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public SendReq(byte[] contentType, 61526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen EncodedStringValue from, 62526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen int mmsVersion, 63526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen byte[] transactionId) throws InvalidHeaderValueException { 64526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen super(); 65526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 66526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setContentType(contentType); 67526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setFrom(from); 68526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setMmsVersion(mmsVersion); 69526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen setTransactionId(transactionId); 70526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 71526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 72526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 73526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Constructor with given headers. 74526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 75526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param headers Headers for this PDU. 76526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 77526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen SendReq(PduHeaders headers) { 78526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen super(headers); 79526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 80526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 81526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 82526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Constructor with given headers and body 83526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 84526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param headers Headers for this PDU. 85526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param body Body of this PDu. 86526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 87526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen SendReq(PduHeaders headers, PduBody body) { 88526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen super(headers, body); 89526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 90526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 91526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 92526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get Bcc value. 93526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 94526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 95526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 96526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public EncodedStringValue[] getBcc() { 97526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getEncodedStringValues(PduHeaders.BCC); 98526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 99526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 100526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 101526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Add a "BCC" value. 102526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 103526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 104526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 105526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 106526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void addBcc(EncodedStringValue value) { 107526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.appendEncodedStringValue(value, PduHeaders.BCC); 108526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 109526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 110526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 111526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set "BCC" value. 112526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 113526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 114526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 115526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 116526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setBcc(EncodedStringValue[] value) { 117526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setEncodedStringValues(value, PduHeaders.BCC); 118526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 119526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 120526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 121526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get CC value. 122526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 123526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 124526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 125526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public EncodedStringValue[] getCc() { 126526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getEncodedStringValues(PduHeaders.CC); 127526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 128526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 129526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 130526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Add a "CC" value. 131526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 132526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 133526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 134526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 135526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void addCc(EncodedStringValue value) { 136526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC); 137526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 138526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 139526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 140526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set "CC" value. 141526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 142526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 143526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 144526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 145526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setCc(EncodedStringValue[] value) { 146526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setEncodedStringValues(value, PduHeaders.CC); 147526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 148526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 149526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 150526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get Content-type value. 151526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 152526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 153526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 154526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public byte[] getContentType() { 155526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE); 156526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 157526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 158526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 159526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set Content-type value. 160526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 161526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 162526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 163526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 164526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setContentType(byte[] value) { 165526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE); 166526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 167526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 168526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 169526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-Delivery-Report value. 170526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 171526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 172526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 173526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public int getDeliveryReport() { 174526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 175526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 176526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 177526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 178526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-Delivery-Report value. 179526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 180526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 181526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws InvalidHeaderValueException if the value is invalid. 182526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 183526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setDeliveryReport(int value) throws InvalidHeaderValueException { 184526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 185526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 186526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 187526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 188526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-Expiry value. 189526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 190526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Expiry-value = Value-length 191526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * (Absolute-token Date-value | Relative-token Delta-seconds-value) 192526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 193526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 194526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 195526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public long getExpiry() { 196526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getLongInteger(PduHeaders.EXPIRY); 197526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 198526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 199526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 200526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-Expiry value. 201526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 202526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 203526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 204526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setExpiry(long value) { 205526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setLongInteger(value, PduHeaders.EXPIRY); 206526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 207526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 208526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 209526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-MessageSize value. 210526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 211526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Expiry-value = size of message 212526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 213526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 214526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 215526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public long getMessageSize() { 216526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getLongInteger(PduHeaders.MESSAGE_SIZE); 217526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 218526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 219526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 220526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-MessageSize value. 221526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 222526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 223526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 224526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setMessageSize(long value) { 225526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setLongInteger(value, PduHeaders.MESSAGE_SIZE); 226526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 227526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 228526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 229526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-Message-Class value. 230526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Message-class-value = Class-identifier | Token-text 231526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Class-identifier = Personal | Advertisement | Informational | Auto 232526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 233526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 234526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 235526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public byte[] getMessageClass() { 236526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 237526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 238526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 239526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 240526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-Message-Class value. 241526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 242526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 243526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 244526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 245526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setMessageClass(byte[] value) { 246526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 247526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 248526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 249526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 250526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-Read-Report value. 251526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 252526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the value 253526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 254526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public int getReadReport() { 255526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getOctet(PduHeaders.READ_REPORT); 256526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 257526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 258526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 259526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-Read-Report value. 260526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 261526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 262526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws InvalidHeaderValueException if the value is invalid. 263526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 264526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setReadReport(int value) throws InvalidHeaderValueException { 265526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setOctet(value, PduHeaders.READ_REPORT); 266526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 267526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 268526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 269526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set "To" value. 270526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 271526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 272526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 273526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 274526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setTo(EncodedStringValue[] value) { 275526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setEncodedStringValues(value, PduHeaders.TO); 276526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 277526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 278526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 279526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Get X-Mms-Transaction-Id field value. 280526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 281526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @return the X-Mms-Report-Allowed value 282526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 283526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public byte[] getTransactionId() { 284526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 285526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 286526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 287526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /** 288526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Set X-Mms-Transaction-Id field value. 289526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 290526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @param value the value 291526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * @throws NullPointerException if the value is null. 292526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 293526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen public void setTransactionId(byte[] value) { 294526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 295526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen } 296526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen 297526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen /* 298526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * Optional, not supported header fields: 299526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 300526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getAdaptationAllowed() {return 0}; 301526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setAdaptationAllowed(btye value) {}; 302526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 303526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte[] getApplicId() {return null;} 304526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setApplicId(byte[] value) {} 305526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 306526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte[] getAuxApplicId() {return null;} 307526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void getAuxApplicId(byte[] value) {} 308526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 309526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getContentClass() {return 0x00;} 310526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setApplicId(byte value) {} 311526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 312526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public long getDeliveryTime() {return 0}; 313526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setDeliveryTime(long value) {}; 314526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 315526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getDrmContent() {return 0x00;} 316526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setDrmContent(byte value) {} 317526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 318526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public MmFlagsValue getMmFlags() {return null;} 319526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setMmFlags(MmFlagsValue value) {} 320526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 321526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public MmStateValue getMmState() {return null;} 322526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void getMmState(MmStateValue value) {} 323526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 324526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte[] getReplyApplicId() {return 0x00;} 325526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyApplicId(byte[] value) {} 326526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 327526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getReplyCharging() {return 0x00;} 328526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyCharging(byte value) {} 329526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 330526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getReplyChargingDeadline() {return 0x00;} 331526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyChargingDeadline(byte value) {} 332526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 333526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte[] getReplyChargingId() {return 0x00;} 334526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyChargingId(byte[] value) {} 335526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 336526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public long getReplyChargingSize() {return 0;} 337526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyChargingSize(long value) {} 338526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 339526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte[] getReplyApplicId() {return 0x00;} 340526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setReplyApplicId(byte[] value) {} 341526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * 342526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public byte getStore() {return 0x00;} 343526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen * public void setStore(byte value) {} 344526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen */ 345526ecd1799a2fc467cfce114eae3578b42ccb786Ye Wen} 346