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