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.android.messaging.mmslib.pdu;
19
20import java.util.Vector;
21
22public class PduBody {
23    private Vector<PduPart> mParts = null;
24
25    /**
26     * Constructor.
27     */
28    public PduBody() {
29        mParts = new Vector<PduPart>();
30    }
31
32    /**
33     * Appends the specified part to the end of this body.
34     *
35     * @param part part to be appended
36     * @return true when success, false when fail
37     * @throws NullPointerException when part is null
38     */
39    public boolean addPart(PduPart part) {
40        if (null == part) {
41            throw new NullPointerException();
42        }
43
44        return mParts.add(part);
45    }
46
47    /**
48     * Inserts the specified part at the specified position.
49     *
50     * @param index index at which the specified part is to be inserted
51     * @param part  part to be inserted
52     * @throws NullPointerException when part is null
53     */
54    public void addPart(int index, PduPart part) {
55        if (null == part) {
56            throw new NullPointerException();
57        }
58
59        mParts.add(index, part);
60    }
61
62    /**
63     * Remove all of the parts.
64     */
65    public void removeAll() {
66        mParts.clear();
67    }
68
69    /**
70     * Get the part at the specified position.
71     *
72     * @param index index of the part to return
73     * @return part at the specified index
74     */
75    public PduPart getPart(int index) {
76        return mParts.get(index);
77    }
78
79    /**
80     * Get the number of parts.
81     *
82     * @return the number of parts
83     */
84    public int getPartsNum() {
85        return mParts.size();
86    }
87}
88