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
20/**
21 * M-Retrive.conf Pdu.
22 */
23public class RetrieveConf extends MultimediaMessagePdu {
24    /**
25     * Empty constructor.
26     * Since the Pdu corresponding to this class is constructed
27     * by the Proxy-Relay server, this class is only instantiated
28     * by the Pdu Parser.
29     *
30     * @throws InvalidHeaderValueException if error occurs.
31     */
32    public RetrieveConf() throws InvalidHeaderValueException {
33        super();
34        setMessageType(PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF);
35    }
36
37    /**
38     * Constructor with given headers.
39     *
40     * @param headers Headers for this PDU.
41     */
42    RetrieveConf(PduHeaders headers) {
43        super(headers);
44    }
45
46    /**
47     * Constructor with given headers and body
48     *
49     * @param headers Headers for this PDU.
50     * @param body Body of this PDu.
51     */
52    RetrieveConf(PduHeaders headers, PduBody body) {
53        super(headers, body);
54    }
55
56    /**
57     * Get CC value.
58     *
59     * @return the value
60     */
61    public EncodedStringValue[] getCc() {
62        return mPduHeaders.getEncodedStringValues(PduHeaders.CC);
63    }
64
65    /**
66     * Add a "CC" value.
67     *
68     * @param value the value
69     * @throws NullPointerException if the value is null.
70     */
71    public void addCc(EncodedStringValue value) {
72        mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC);
73    }
74
75    /**
76     * Get Content-type value.
77     *
78     * @return the value
79     */
80    public byte[] getContentType() {
81        return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE);
82    }
83
84    /**
85     * Set Content-type value.
86     *
87     * @param value the value
88     * @throws NullPointerException if the value is null.
89     */
90    public void setContentType(byte[] value) {
91        mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE);
92    }
93
94    /**
95     * Get X-Mms-Delivery-Report value.
96     *
97     * @return the value
98     */
99    public int getDeliveryReport() {
100        return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT);
101    }
102
103    /**
104     * Set X-Mms-Delivery-Report value.
105     *
106     * @param value the value
107     * @throws InvalidHeaderValueException if the value is invalid.
108     */
109    public void setDeliveryReport(int value) throws InvalidHeaderValueException {
110        mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT);
111    }
112
113    /**
114     * Get From value.
115     * From-value = Value-length
116     *      (Address-present-token Encoded-string-value | Insert-address-token)
117     *
118     * @return the value
119     */
120    public EncodedStringValue getFrom() {
121       return mPduHeaders.getEncodedStringValue(PduHeaders.FROM);
122    }
123
124    /**
125     * Set From value.
126     *
127     * @param value the value
128     * @throws NullPointerException if the value is null.
129     */
130    public void setFrom(EncodedStringValue value) {
131        mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM);
132    }
133
134    /**
135     * Get X-Mms-Message-Class value.
136     * Message-class-value = Class-identifier | Token-text
137     * Class-identifier = Personal | Advertisement | Informational | Auto
138     *
139     * @return the value
140     */
141    public byte[] getMessageClass() {
142        return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS);
143    }
144
145    /**
146     * Set X-Mms-Message-Class value.
147     *
148     * @param value the value
149     * @throws NullPointerException if the value is null.
150     */
151    public void setMessageClass(byte[] value) {
152        mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS);
153    }
154
155    /**
156     * Get Message-ID value.
157     *
158     * @return the value
159     */
160    public byte[] getMessageId() {
161        return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
162    }
163
164    /**
165     * Set Message-ID value.
166     *
167     * @param value the value
168     * @throws NullPointerException if the value is null.
169     */
170    public void setMessageId(byte[] value) {
171        mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
172    }
173
174    /**
175     * Get X-Mms-Read-Report value.
176     *
177     * @return the value
178     */
179    public int getReadReport() {
180        return mPduHeaders.getOctet(PduHeaders.READ_REPORT);
181    }
182
183    /**
184     * Set X-Mms-Read-Report value.
185     *
186     * @param value the value
187     * @throws InvalidHeaderValueException if the value is invalid.
188     */
189    public void setReadReport(int value) throws InvalidHeaderValueException {
190        mPduHeaders.setOctet(value, PduHeaders.READ_REPORT);
191    }
192
193    /**
194     * Get X-Mms-Retrieve-Status value.
195     *
196     * @return the value
197     */
198    public int getRetrieveStatus() {
199        return mPduHeaders.getOctet(PduHeaders.RETRIEVE_STATUS);
200    }
201
202    /**
203     * Set X-Mms-Retrieve-Status value.
204     *
205     * @param value the value
206     * @throws InvalidHeaderValueException if the value is invalid.
207     */
208    public void setRetrieveStatus(int value) throws InvalidHeaderValueException {
209        mPduHeaders.setOctet(value, PduHeaders.RETRIEVE_STATUS);
210    }
211
212    /**
213     * Get X-Mms-Retrieve-Text value.
214     *
215     * @return the value
216     */
217    public EncodedStringValue getRetrieveText() {
218        return mPduHeaders.getEncodedStringValue(PduHeaders.RETRIEVE_TEXT);
219    }
220
221    /**
222     * Set X-Mms-Retrieve-Text value.
223     *
224     * @param value the value
225     * @throws NullPointerException if the value is null.
226     */
227    public void setRetrieveText(EncodedStringValue value) {
228        mPduHeaders.setEncodedStringValue(value, PduHeaders.RETRIEVE_TEXT);
229    }
230
231    /**
232     * Get X-Mms-Transaction-Id.
233     *
234     * @return the value
235     */
236    public byte[] getTransactionId() {
237        return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID);
238    }
239
240    /**
241     * Set X-Mms-Transaction-Id.
242     *
243     * @param value the value
244     * @throws NullPointerException if the value is null.
245     */
246    public void setTransactionId(byte[] value) {
247        mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID);
248    }
249
250    /*
251     * Optional, not supported header fields:
252     *
253     *     public byte[] getApplicId() {return null;}
254     *     public void setApplicId(byte[] value) {}
255     *
256     *     public byte[] getAuxApplicId() {return null;}
257     *     public void getAuxApplicId(byte[] value) {}
258     *
259     *     public byte getContentClass() {return 0x00;}
260     *     public void setApplicId(byte value) {}
261     *
262     *     public byte getDrmContent() {return 0x00;}
263     *     public void setDrmContent(byte value) {}
264     *
265     *     public byte getDistributionIndicator() {return 0x00;}
266     *     public void setDistributionIndicator(byte value) {}
267     *
268     *     public PreviouslySentByValue getPreviouslySentBy() {return null;}
269     *     public void setPreviouslySentBy(PreviouslySentByValue value) {}
270     *
271     *     public PreviouslySentDateValue getPreviouslySentDate() {}
272     *     public void setPreviouslySentDate(PreviouslySentDateValue value) {}
273     *
274     *     public MmFlagsValue getMmFlags() {return null;}
275     *     public void setMmFlags(MmFlagsValue value) {}
276     *
277     *     public MmStateValue getMmState() {return null;}
278     *     public void getMmState(MmStateValue value) {}
279     *
280     *     public byte[] getReplaceId() {return 0x00;}
281     *     public void setReplaceId(byte[] value) {}
282     *
283     *     public byte[] getReplyApplicId() {return 0x00;}
284     *     public void setReplyApplicId(byte[] value) {}
285     *
286     *     public byte getReplyCharging() {return 0x00;}
287     *     public void setReplyCharging(byte value) {}
288     *
289     *     public byte getReplyChargingDeadline() {return 0x00;}
290     *     public void setReplyChargingDeadline(byte value) {}
291     *
292     *     public byte[] getReplyChargingId() {return 0x00;}
293     *     public void setReplyChargingId(byte[] value) {}
294     *
295     *     public long getReplyChargingSize() {return 0;}
296     *     public void setReplyChargingSize(long value) {}
297     */
298}
299