1d02a064168ae5c916b977182b764580e601cb084Wink Saville/* 2d02a064168ae5c916b977182b764580e601cb084Wink Saville * Copyright (C) 2007 Esmertec AG. 3d02a064168ae5c916b977182b764580e601cb084Wink Saville * Copyright (C) 2007 The Android Open Source Project 4d02a064168ae5c916b977182b764580e601cb084Wink Saville * 5d02a064168ae5c916b977182b764580e601cb084Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 6d02a064168ae5c916b977182b764580e601cb084Wink Saville * you may not use this file except in compliance with the License. 7d02a064168ae5c916b977182b764580e601cb084Wink Saville * You may obtain a copy of the License at 8d02a064168ae5c916b977182b764580e601cb084Wink Saville * 9d02a064168ae5c916b977182b764580e601cb084Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 10d02a064168ae5c916b977182b764580e601cb084Wink Saville * 11d02a064168ae5c916b977182b764580e601cb084Wink Saville * Unless required by applicable law or agreed to in writing, software 12d02a064168ae5c916b977182b764580e601cb084Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 13d02a064168ae5c916b977182b764580e601cb084Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d02a064168ae5c916b977182b764580e601cb084Wink Saville * See the License for the specific language governing permissions and 15d02a064168ae5c916b977182b764580e601cb084Wink Saville * limitations under the License. 16d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 17d02a064168ae5c916b977182b764580e601cb084Wink Saville 18d02a064168ae5c916b977182b764580e601cb084Wink Savillepackage com.google.android.mms.pdu; 19d02a064168ae5c916b977182b764580e601cb084Wink Saville 20d02a064168ae5c916b977182b764580e601cb084Wink Savilleimport com.google.android.mms.InvalidHeaderValueException; 21d02a064168ae5c916b977182b764580e601cb084Wink Saville 22d02a064168ae5c916b977182b764580e601cb084Wink Savillepublic class GenericPdu { 23d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 24d02a064168ae5c916b977182b764580e601cb084Wink Saville * The headers of pdu. 25d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 26d02a064168ae5c916b977182b764580e601cb084Wink Saville PduHeaders mPduHeaders = null; 27d02a064168ae5c916b977182b764580e601cb084Wink Saville 28d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 29d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor. 30d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 31d02a064168ae5c916b977182b764580e601cb084Wink Saville public GenericPdu() { 32d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders = new PduHeaders(); 33d02a064168ae5c916b977182b764580e601cb084Wink Saville } 34d02a064168ae5c916b977182b764580e601cb084Wink Saville 35d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 36d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor. 37d02a064168ae5c916b977182b764580e601cb084Wink Saville * 38d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param headers Headers for this PDU. 39d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 40d02a064168ae5c916b977182b764580e601cb084Wink Saville GenericPdu(PduHeaders headers) { 41d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders = headers; 42d02a064168ae5c916b977182b764580e601cb084Wink Saville } 43d02a064168ae5c916b977182b764580e601cb084Wink Saville 44d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 45d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get the headers of this PDU. 46d02a064168ae5c916b977182b764580e601cb084Wink Saville * 47d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return A PduHeaders of this PDU. 48d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 49d02a064168ae5c916b977182b764580e601cb084Wink Saville PduHeaders getPduHeaders() { 50d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders; 51d02a064168ae5c916b977182b764580e601cb084Wink Saville } 52d02a064168ae5c916b977182b764580e601cb084Wink Saville 53d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 54d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get X-Mms-Message-Type field value. 55d02a064168ae5c916b977182b764580e601cb084Wink Saville * 56d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the X-Mms-Report-Allowed value 57d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 58d02a064168ae5c916b977182b764580e601cb084Wink Saville public int getMessageType() { 59d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getOctet(PduHeaders.MESSAGE_TYPE); 60d02a064168ae5c916b977182b764580e601cb084Wink Saville } 61d02a064168ae5c916b977182b764580e601cb084Wink Saville 62d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 63d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set X-Mms-Message-Type field value. 64d02a064168ae5c916b977182b764580e601cb084Wink Saville * 65d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 66d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws InvalidHeaderValueException if the value is invalid. 67d02a064168ae5c916b977182b764580e601cb084Wink Saville * RuntimeException if field's value is not Octet. 68d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 69d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setMessageType(int value) throws InvalidHeaderValueException { 70d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setOctet(value, PduHeaders.MESSAGE_TYPE); 71d02a064168ae5c916b977182b764580e601cb084Wink Saville } 72d02a064168ae5c916b977182b764580e601cb084Wink Saville 73d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 74d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get X-Mms-MMS-Version field value. 75d02a064168ae5c916b977182b764580e601cb084Wink Saville * 76d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the X-Mms-MMS-Version value 77d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 78d02a064168ae5c916b977182b764580e601cb084Wink Saville public int getMmsVersion() { 79d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getOctet(PduHeaders.MMS_VERSION); 80d02a064168ae5c916b977182b764580e601cb084Wink Saville } 81d02a064168ae5c916b977182b764580e601cb084Wink Saville 82d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 83d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set X-Mms-MMS-Version field value. 84d02a064168ae5c916b977182b764580e601cb084Wink Saville * 85d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 86d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws InvalidHeaderValueException if the value is invalid. 87d02a064168ae5c916b977182b764580e601cb084Wink Saville * RuntimeException if field's value is not Octet. 88d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 89d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setMmsVersion(int value) throws InvalidHeaderValueException { 90d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setOctet(value, PduHeaders.MMS_VERSION); 91d02a064168ae5c916b977182b764580e601cb084Wink Saville } 92d02a064168ae5c916b977182b764580e601cb084Wink Saville 93d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 94d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get From value. 95d02a064168ae5c916b977182b764580e601cb084Wink Saville * From-value = Value-length 96d02a064168ae5c916b977182b764580e601cb084Wink Saville * (Address-present-token Encoded-string-value | Insert-address-token) 97d02a064168ae5c916b977182b764580e601cb084Wink Saville * 98d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 99d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 100d02a064168ae5c916b977182b764580e601cb084Wink Saville public EncodedStringValue getFrom() { 101d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getEncodedStringValue(PduHeaders.FROM); 102d02a064168ae5c916b977182b764580e601cb084Wink Saville } 103d02a064168ae5c916b977182b764580e601cb084Wink Saville 104d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 105d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set From value. 106d02a064168ae5c916b977182b764580e601cb084Wink Saville * 107d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 108d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws NullPointerException if the value is null. 109d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 110d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setFrom(EncodedStringValue value) { 111d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM); 112d02a064168ae5c916b977182b764580e601cb084Wink Saville } 113d02a064168ae5c916b977182b764580e601cb084Wink Saville} 114