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 Saville/** 23d02a064168ae5c916b977182b764580e601cb084Wink Saville * Multimedia message PDU. 24d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 25d02a064168ae5c916b977182b764580e601cb084Wink Savillepublic class MultimediaMessagePdu extends GenericPdu{ 26d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 27d02a064168ae5c916b977182b764580e601cb084Wink Saville * The body. 28d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 29d02a064168ae5c916b977182b764580e601cb084Wink Saville private PduBody mMessageBody; 30d02a064168ae5c916b977182b764580e601cb084Wink Saville 31d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 32d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor. 33d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 34d02a064168ae5c916b977182b764580e601cb084Wink Saville public MultimediaMessagePdu() { 35d02a064168ae5c916b977182b764580e601cb084Wink Saville super(); 36d02a064168ae5c916b977182b764580e601cb084Wink Saville } 37d02a064168ae5c916b977182b764580e601cb084Wink Saville 38d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 39d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor. 40d02a064168ae5c916b977182b764580e601cb084Wink Saville * 41d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param header the header of this PDU 42d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param body the body of this PDU 43d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 44d02a064168ae5c916b977182b764580e601cb084Wink Saville public MultimediaMessagePdu(PduHeaders header, PduBody body) { 45d02a064168ae5c916b977182b764580e601cb084Wink Saville super(header); 46d02a064168ae5c916b977182b764580e601cb084Wink Saville mMessageBody = body; 47d02a064168ae5c916b977182b764580e601cb084Wink Saville } 48d02a064168ae5c916b977182b764580e601cb084Wink Saville 49d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 50d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor with given headers. 51d02a064168ae5c916b977182b764580e601cb084Wink Saville * 52d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param headers Headers for this PDU. 53d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 54d02a064168ae5c916b977182b764580e601cb084Wink Saville MultimediaMessagePdu(PduHeaders headers) { 55d02a064168ae5c916b977182b764580e601cb084Wink Saville super(headers); 56d02a064168ae5c916b977182b764580e601cb084Wink Saville } 57d02a064168ae5c916b977182b764580e601cb084Wink Saville 58d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 59d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get body of the PDU. 60d02a064168ae5c916b977182b764580e601cb084Wink Saville * 61d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the body 62d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 63d02a064168ae5c916b977182b764580e601cb084Wink Saville public PduBody getBody() { 64d02a064168ae5c916b977182b764580e601cb084Wink Saville return mMessageBody; 65d02a064168ae5c916b977182b764580e601cb084Wink Saville } 66d02a064168ae5c916b977182b764580e601cb084Wink Saville 67d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 68d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set body of the PDU. 69d02a064168ae5c916b977182b764580e601cb084Wink Saville * 70d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param body the body 71d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 72d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setBody(PduBody body) { 73d02a064168ae5c916b977182b764580e601cb084Wink Saville mMessageBody = body; 74d02a064168ae5c916b977182b764580e601cb084Wink Saville } 75d02a064168ae5c916b977182b764580e601cb084Wink Saville 76d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 77d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get subject. 78d02a064168ae5c916b977182b764580e601cb084Wink Saville * 79d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 80d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 81d02a064168ae5c916b977182b764580e601cb084Wink Saville public EncodedStringValue getSubject() { 82d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getEncodedStringValue(PduHeaders.SUBJECT); 83d02a064168ae5c916b977182b764580e601cb084Wink Saville } 84d02a064168ae5c916b977182b764580e601cb084Wink Saville 85d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 86d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set subject. 87d02a064168ae5c916b977182b764580e601cb084Wink Saville * 88d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 89d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws NullPointerException if the value is null. 90d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 91d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setSubject(EncodedStringValue value) { 92d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setEncodedStringValue(value, PduHeaders.SUBJECT); 93d02a064168ae5c916b977182b764580e601cb084Wink Saville } 94d02a064168ae5c916b977182b764580e601cb084Wink Saville 95d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 96d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get To value. 97d02a064168ae5c916b977182b764580e601cb084Wink Saville * 98d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 99d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 100d02a064168ae5c916b977182b764580e601cb084Wink Saville public EncodedStringValue[] getTo() { 101d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getEncodedStringValues(PduHeaders.TO); 102d02a064168ae5c916b977182b764580e601cb084Wink Saville } 103d02a064168ae5c916b977182b764580e601cb084Wink Saville 104d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 105d02a064168ae5c916b977182b764580e601cb084Wink Saville * Add a "To" value. 106d02a064168ae5c916b977182b764580e601cb084Wink Saville * 107d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 108d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws NullPointerException if the value is null. 109d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 110d02a064168ae5c916b977182b764580e601cb084Wink Saville public void addTo(EncodedStringValue value) { 111d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.appendEncodedStringValue(value, PduHeaders.TO); 112d02a064168ae5c916b977182b764580e601cb084Wink Saville } 113d02a064168ae5c916b977182b764580e601cb084Wink Saville 114d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 115d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get X-Mms-Priority value. 116d02a064168ae5c916b977182b764580e601cb084Wink Saville * 117d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 118d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 119d02a064168ae5c916b977182b764580e601cb084Wink Saville public int getPriority() { 120d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getOctet(PduHeaders.PRIORITY); 121d02a064168ae5c916b977182b764580e601cb084Wink Saville } 122d02a064168ae5c916b977182b764580e601cb084Wink Saville 123d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 124d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set X-Mms-Priority value. 125d02a064168ae5c916b977182b764580e601cb084Wink Saville * 126d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 127d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws InvalidHeaderValueException if the value is invalid. 128d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 129d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setPriority(int value) throws InvalidHeaderValueException { 130d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setOctet(value, PduHeaders.PRIORITY); 131d02a064168ae5c916b977182b764580e601cb084Wink Saville } 132d02a064168ae5c916b977182b764580e601cb084Wink Saville 133d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 134d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get Date value. 135d02a064168ae5c916b977182b764580e601cb084Wink Saville * 136d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 137d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 138d02a064168ae5c916b977182b764580e601cb084Wink Saville public long getDate() { 139d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getLongInteger(PduHeaders.DATE); 140d02a064168ae5c916b977182b764580e601cb084Wink Saville } 141d02a064168ae5c916b977182b764580e601cb084Wink Saville 142d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 143d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set Date value in seconds. 144d02a064168ae5c916b977182b764580e601cb084Wink Saville * 145d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 146d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 147d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setDate(long value) { 148d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setLongInteger(value, PduHeaders.DATE); 149d02a064168ae5c916b977182b764580e601cb084Wink Saville } 150d02a064168ae5c916b977182b764580e601cb084Wink Saville} 151