1e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta/*
2e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Copyright (C) 2013 The Android Open Source Project
3e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta *
4e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Licensed under the Apache License, Version 2.0 (the "License");
5e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * you may not use this file except in compliance with the License.
6e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * You may obtain a copy of the License at
7e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta *
8e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta *      http://www.apache.org/licenses/LICENSE-2.0
9e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta *
10e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Unless required by applicable law or agreed to in writing, software
11e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * distributed under the License is distributed on an "AS IS" BASIS,
12e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * See the License for the specific language governing permissions and
14e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * limitations under the License.
15e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta */
16e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
17e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptapackage com.android.layoutlib.bridge.impl.binding;
18e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
19e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.ArrayList;
20e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.Collections;
21e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.List;
22e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
23e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport com.android.ide.common.rendering.api.DataBindingItem;
24e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
25e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta/**
26e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * This is the items provided by the adapter. They are dynamically generated.
27e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta */
28e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptafinal class AdapterItem {
29e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    private final DataBindingItem mItem;
30e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    private final int mType;
31e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    private final int mFullPosition;
32e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    private final int mPositionPerType;
33e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    private List<AdapterItem> mChildren;
34e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
35e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    protected AdapterItem(DataBindingItem item, int type, int fullPosition,
36e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta            int positionPerType) {
37e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        mItem = item;
38e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        mType = type;
39e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        mFullPosition = fullPosition;
40e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        mPositionPerType = positionPerType;
41e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
42e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
43e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    void addChild(AdapterItem child) {
44e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        if (mChildren == null) {
45e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta            mChildren = new ArrayList<AdapterItem>();
46e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        }
47e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
48e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        mChildren.add(child);
49e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
50e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
51e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    List<AdapterItem> getChildren() {
52e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        if (mChildren != null) {
53e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta            return mChildren;
54e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        }
55e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
56e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        return Collections.emptyList();
57e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
58e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
59e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    int getType() {
60e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        return mType;
61e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
62e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
63e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    int getFullPosition() {
64e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        return mFullPosition;
65e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
66e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
67e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    int getPositionPerType() {
68e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        return mPositionPerType;
69e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
70e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta
71e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    DataBindingItem getDataBindingItem() {
72e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta        return mItem;
73e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta    }
74e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta}
75