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
18package android.support.v7.mms.pdu;
19
20public class ReadOrigInd extends GenericPdu {
21    /**
22     * Empty constructor.
23     * Since the Pdu corresponding to this class is constructed
24     * by the Proxy-Relay server, this class is only instantiated
25     * by the Pdu Parser.
26     *
27     * @throws InvalidHeaderValueException if error occurs.
28     */
29    public ReadOrigInd() throws InvalidHeaderValueException {
30        super();
31        setMessageType(PduHeaders.MESSAGE_TYPE_READ_ORIG_IND);
32    }
33
34    /**
35     * Constructor with given headers.
36     *
37     * @param headers Headers for this PDU.
38     */
39    ReadOrigInd(PduHeaders headers) {
40        super(headers);
41    }
42
43    /**
44     * Get Date value.
45     *
46     * @return the value
47     */
48    public long getDate() {
49        return mPduHeaders.getLongInteger(PduHeaders.DATE);
50    }
51
52    /**
53     * Set Date value.
54     *
55     * @param value the value
56     */
57    public void setDate(long value) {
58        mPduHeaders.setLongInteger(value, PduHeaders.DATE);
59    }
60
61    /**
62     * Get From value.
63     * From-value = Value-length
64     *      (Address-present-token Encoded-string-value | Insert-address-token)
65     *
66     * @return the value
67     */
68    public EncodedStringValue getFrom() {
69       return mPduHeaders.getEncodedStringValue(PduHeaders.FROM);
70    }
71
72    /**
73     * Set From value.
74     *
75     * @param value the value
76     * @throws NullPointerException if the value is null.
77     */
78    public void setFrom(EncodedStringValue value) {
79        mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM);
80    }
81
82    /**
83     * Get Message-ID value.
84     *
85     * @return the value
86     */
87    public byte[] getMessageId() {
88        return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
89    }
90
91    /**
92     * Set Message-ID value.
93     *
94     * @param value the value
95     * @throws NullPointerException if the value is null.
96     */
97    public void setMessageId(byte[] value) {
98        mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
99    }
100
101    /**
102     * Get X-MMS-Read-status value.
103     *
104     * @return the value
105     */
106    public int getReadStatus() {
107        return mPduHeaders.getOctet(PduHeaders.READ_STATUS);
108    }
109
110    /**
111     * Set X-MMS-Read-status value.
112     *
113     * @param value the value
114     * @throws InvalidHeaderValueException if the value is invalid.
115     */
116    public void setReadStatus(int value) throws InvalidHeaderValueException {
117        mPduHeaders.setOctet(value, PduHeaders.READ_STATUS);
118    }
119
120    /**
121     * Get To value.
122     *
123     * @return the value
124     */
125    public EncodedStringValue[] getTo() {
126        return mPduHeaders.getEncodedStringValues(PduHeaders.TO);
127    }
128
129    /**
130     * Set To value.
131     *
132     * @param value the value
133     * @throws NullPointerException if the value is null.
134     */
135    public void setTo(EncodedStringValue[] value) {
136        mPduHeaders.setEncodedStringValues(value, PduHeaders.TO);
137    }
138
139    /*
140     * Optional, not supported header fields:
141     *
142     *     public byte[] getApplicId() {return null;}
143     *     public void setApplicId(byte[] value) {}
144     *
145     *     public byte[] getAuxApplicId() {return null;}
146     *     public void getAuxApplicId(byte[] value) {}
147     *
148     *     public byte[] getReplyApplicId() {return 0x00;}
149     *     public void setReplyApplicId(byte[] value) {}
150     */
151}
152