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 
18 package com.example.android.mmslib.pdu;
19 
20 import com.example.android.mmslib.InvalidHeaderValueException;
21 
22 public class GenericPdu {
23     /**
24      * The headers of pdu.
25      */
26     PduHeaders mPduHeaders = null;
27 
28     /**
29      * Constructor.
30      */
GenericPdu()31     public GenericPdu() {
32         mPduHeaders = new PduHeaders();
33     }
34 
35     /**
36      * Constructor.
37      *
38      * @param headers Headers for this PDU.
39      */
GenericPdu(PduHeaders headers)40     GenericPdu(PduHeaders headers) {
41         mPduHeaders = headers;
42     }
43 
44     /**
45      * Get the headers of this PDU.
46      *
47      * @return A PduHeaders of this PDU.
48      */
getPduHeaders()49     PduHeaders getPduHeaders() {
50         return mPduHeaders;
51     }
52 
53     /**
54      * Get X-Mms-Message-Type field value.
55      *
56      * @return the X-Mms-Report-Allowed value
57      */
getMessageType()58     public int getMessageType() {
59         return mPduHeaders.getOctet(PduHeaders.MESSAGE_TYPE);
60     }
61 
62     /**
63      * Set X-Mms-Message-Type field value.
64      *
65      * @param value the value
66      * @throws InvalidHeaderValueException if the value is invalid.
67      *         RuntimeException if field's value is not Octet.
68      */
setMessageType(int value)69     public void setMessageType(int value) throws InvalidHeaderValueException {
70         mPduHeaders.setOctet(value, PduHeaders.MESSAGE_TYPE);
71     }
72 
73     /**
74      * Get X-Mms-MMS-Version field value.
75      *
76      * @return the X-Mms-MMS-Version value
77      */
getMmsVersion()78     public int getMmsVersion() {
79         return mPduHeaders.getOctet(PduHeaders.MMS_VERSION);
80     }
81 
82     /**
83      * Set X-Mms-MMS-Version field value.
84      *
85      * @param value the value
86      * @throws InvalidHeaderValueException if the value is invalid.
87      *         RuntimeException if field's value is not Octet.
88      */
setMmsVersion(int value)89     public void setMmsVersion(int value) throws InvalidHeaderValueException {
90         mPduHeaders.setOctet(value, PduHeaders.MMS_VERSION);
91     }
92 
93     /**
94      * Get From value.
95      * From-value = Value-length
96      *      (Address-present-token Encoded-string-value | Insert-address-token)
97      *
98      * @return the value
99      */
getFrom()100     public EncodedStringValue getFrom() {
101        return mPduHeaders.getEncodedStringValue(PduHeaders.FROM);
102     }
103 
104     /**
105      * Set From value.
106      *
107      * @param value the value
108      * @throws NullPointerException if the value is null.
109      */
setFrom(EncodedStringValue value)110     public void setFrom(EncodedStringValue value) {
111         mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM);
112     }
113 }
114