1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/*
2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007 Esmertec AG.
3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007 The Android Open Source Project
4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Licensed under the Apache License, Version 2.0 (the "License");
6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * you may not use this file except in compliance with the License.
7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * You may obtain a copy of the License at
8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *      http://www.apache.org/licenses/LICENSE-2.0
10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Unless required by applicable law or agreed to in writing, software
12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * distributed under the License is distributed on an "AS IS" BASIS,
13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * See the License for the specific language governing permissions and
15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * limitations under the License.
16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */
17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpackage android.support.v7.mms.pdu;
19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
20d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class ReadOrigInd extends GenericPdu {
21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Empty constructor.
23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Since the Pdu corresponding to this class is constructed
24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * by the Proxy-Relay server, this class is only instantiated
25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * by the Pdu Parser.
26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws InvalidHeaderValueException if error occurs.
28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public ReadOrigInd() throws InvalidHeaderValueException {
30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        super();
31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setMessageType(PduHeaders.MESSAGE_TYPE_READ_ORIG_IND);
32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Constructor with given headers.
36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param headers Headers for this PDU.
38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    ReadOrigInd(PduHeaders headers) {
40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        super(headers);
41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get Date value.
45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public long getDate() {
49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getLongInteger(PduHeaders.DATE);
50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set Date value.
54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setDate(long value) {
58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setLongInteger(value, PduHeaders.DATE);
59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get From value.
63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * From-value = Value-length
64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *      (Address-present-token Encoded-string-value | Insert-address-token)
65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public EncodedStringValue getFrom() {
69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd       return mPduHeaders.getEncodedStringValue(PduHeaders.FROM);
70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set From value.
74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws NullPointerException if the value is null.
77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setFrom(EncodedStringValue value) {
79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM);
80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get Message-ID value.
84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public byte[] getMessageId() {
88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
91d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
92d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set Message-ID value.
93d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
94d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
95d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws NullPointerException if the value is null.
96d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
97d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setMessageId(byte[] value) {
98d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
99d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
100d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
101d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
102d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get X-MMS-Read-status value.
103d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
104d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
105d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
106d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public int getReadStatus() {
107d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getOctet(PduHeaders.READ_STATUS);
108d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
109d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
110d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
111d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set X-MMS-Read-status value.
112d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
113d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
114d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws InvalidHeaderValueException if the value is invalid.
115d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
116d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setReadStatus(int value) throws InvalidHeaderValueException {
117d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setOctet(value, PduHeaders.READ_STATUS);
118d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
119d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
120d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
121d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get To value.
122d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
123d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
124d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
125d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public EncodedStringValue[] getTo() {
126d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getEncodedStringValues(PduHeaders.TO);
127d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
128d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
129d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
130d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set To value.
131d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
132d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
133d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws NullPointerException if the value is null.
134d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
135d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setTo(EncodedStringValue[] value) {
136d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setEncodedStringValues(value, PduHeaders.TO);
137d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
138d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
139d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /*
140d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Optional, not supported header fields:
141d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
142d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getApplicId() {return null;}
143d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void setApplicId(byte[] value) {}
144d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
145d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getAuxApplicId() {return null;}
146d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void getAuxApplicId(byte[] value) {}
147d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
148d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getReplyApplicId() {return 0x00;}
149d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void setReplyApplicId(byte[] value) {}
150d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
151d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd}
152