1/*
2 * Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 *     * Redistributions of source code must retain the above copyright
8 *       notice, this list of conditions and the following disclaimer.
9 *     * Redistributions in binary form must reproduce the above
10 *       copyright notice, this list of conditions and the following
11 *       disclaimer in the documentation and/or other materials provided
12 *       with the distribution.
13 *     * Neither the name of The Linux Foundation nor the names of its
14 *       contributors may be used to endorse or promote products derived
15 *       from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30package com.android.internal.telephony;
31
32import java.util.Arrays;
33
34/**
35 * Class holding a list of subscriptions
36 */
37public class SubscriptionData {
38    public Subscription [] subscription;
39
40    public SubscriptionData(int numSub) {
41        subscription = new Subscription[numSub];
42        for (int i = 0; i < numSub; i++) {
43            subscription[i] = new Subscription();
44        }
45    }
46
47    public int getLength() {
48        if (subscription != null) {
49            return subscription.length;
50        }
51        return 0;
52    }
53
54    public SubscriptionData copyFrom(SubscriptionData from) {
55        if (from != null) {
56            subscription = new Subscription[from.getLength()];
57            for (int i = 0; i < from.getLength(); i++) {
58                subscription[i] = new Subscription();
59                subscription[i].copyFrom(from.subscription[i]);
60            }
61        }
62        return this;
63    }
64
65    public String getIccId() {
66        if (subscription.length > 0 && subscription[0] != null) {
67            return subscription[0].iccId;
68        }
69        return null;
70    }
71
72    public boolean hasSubscription(Subscription sub){
73        for (int i = 0; i < subscription.length; i++) {
74            if (subscription[i].isSame(sub)) {
75                return true;
76            }
77        }
78        return false;
79    }
80
81    public Subscription getSubscription(Subscription sub){
82        for (int i = 0; i < subscription.length; i++) {
83            if (subscription[i].isSame(sub)) {
84                return subscription[i];
85            }
86        }
87        return null;
88    }
89
90    public String toString() {
91        return Arrays.toString(subscription);
92    }
93}
94