19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 Esmertec AG. 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18a87afd07c0093cab638e9ef9bc2c53c8200ca711Tom Taylorpackage com.google.android.mms.pdu; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 20a87afd07c0093cab638e9ef9bc2c53c8200ca711Tom Taylorimport com.google.android.mms.InvalidHeaderValueException; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ReadRecInd extends GenericPdu { 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructor, used when composing a M-ReadRec.ind pdu. 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param from the from value 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param messageId the message ID value 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mmsVersion current viersion of mms 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param readStatus the read status value 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param to the to value 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws InvalidHeaderValueException if parameters are invalid. 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * NullPointerException if messageId or to is null. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ReadRecInd(EncodedStringValue from, 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] messageId, 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mmsVersion, 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int readStatus, 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EncodedStringValue[] to) throws InvalidHeaderValueException { 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMessageType(PduHeaders.MESSAGE_TYPE_READ_REC_IND); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setFrom(from); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMessageId(messageId); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMmsVersion(mmsVersion); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setTo(to); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setReadStatus(readStatus); 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructor with given headers. 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param headers Headers for this PDU. 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ReadRecInd(PduHeaders headers) { 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(headers); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get Date value. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public long getDate() { 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getLongInteger(PduHeaders.DATE); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set Date value. 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setDate(long value) { 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setLongInteger(value, PduHeaders.DATE); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get Message-ID value. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getMessageId() { 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set Message-ID value. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setMessageId(byte[] value) { 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID); 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get To value. 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EncodedStringValue[] getTo() { 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getEncodedStringValues(PduHeaders.TO); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set To value. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setTo(EncodedStringValue[] value) { 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setEncodedStringValues(value, PduHeaders.TO); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-MMS-Read-status value. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getReadStatus() { 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getOctet(PduHeaders.READ_STATUS); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-MMS-Read-status value. 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws InvalidHeaderValueException if the value is invalid. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setReadStatus(int value) throws InvalidHeaderValueException { 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setOctet(value, PduHeaders.READ_STATUS); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Optional, not supported header fields: 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getApplicId() {return null;} 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setApplicId(byte[] value) {} 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getAuxApplicId() {return null;} 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void getAuxApplicId(byte[] value) {} 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getReplyApplicId() {return 0x00;} 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyApplicId(byte[] value) {} 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 145