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