1ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/*
2ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Copyright (C) 2010 The Android Open Source Project
3ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
4ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * you may not use this file except in compliance with the License.
6ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * You may obtain a copy of the License at
7ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
8ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
10ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Unless required by applicable law or agreed to in writing, software
11ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * See the License for the specific language governing permissions and
14ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * limitations under the License.
15ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */
16ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
17ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipackage com.android.layoutlib.bridge.android;
18ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
19ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport com.android.layoutlib.bridge.BridgeConstants;
20ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
21ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport android.util.AttributeSet;
22ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
23ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport java.util.Map;
24ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
25ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/**
26ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * An implementation of the {@link AttributeSet} interface on top of a map of attribute in the form
27ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * of (name, value).
28ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
29ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * This is meant to be called only from {@link BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)}
30ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * in the case of LayoutParams and therefore isn't a full implementation.
31ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */
32ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipublic class BridgeLayoutParamsMapAttributes implements AttributeSet {
33ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
34ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    private final Map<String, String> mAttributes;
35ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
36ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public BridgeLayoutParamsMapAttributes(Map<String, String> attributes) {
37ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        mAttributes = attributes;
38ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
39ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
40ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
41ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getAttributeValue(String namespace, String name) {
42ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        if (BridgeConstants.NS_RESOURCES.equals(namespace)) {
43ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            return mAttributes.get(name);
44ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        }
45ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
46ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        return null;
47ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
48ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
49ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // ---- the following methods are not called from
50ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)
51ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // Should they ever be called, we'll just implement them on a need basis.
52ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
53ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
54ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeCount() {
55ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
56ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
57ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
58ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
595e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn    public String getAttributeNamespace(int index) {
605e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn        throw new UnsupportedOperationException();
615e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn    }
625e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn
635e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn    @Override
64ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getAttributeName(int index) {
65ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
66ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
67ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
68ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
69ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getAttributeValue(int index) {
70ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
71ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
72ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
73ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
74ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getPositionDescription() {
75ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
76ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
77ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
78ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
79ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeNameResource(int index) {
80ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
81ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
82ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
83ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
84ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeListValue(String namespace, String attribute,
85ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            String[] options, int defaultValue) {
86ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
87ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
88ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
89ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
90ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public boolean getAttributeBooleanValue(String namespace, String attribute,
91ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            boolean defaultValue) {
92ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
93ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
94ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
95ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
96ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeResourceValue(String namespace, String attribute,
97ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            int defaultValue) {
98ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
99ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
100ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
101ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
102ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeIntValue(String namespace, String attribute,
103ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            int defaultValue) {
104ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
105ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
106ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
107ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
108ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeUnsignedIntValue(String namespace, String attribute,
109ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            int defaultValue) {
110ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
111ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
112ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
113ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
114ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public float getAttributeFloatValue(String namespace, String attribute,
115ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            float defaultValue) {
116ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
117ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
118ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
119ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
120ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeListValue(int index,
121ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            String[] options, int defaultValue) {
122ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
123ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
124ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
125ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
126ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public boolean getAttributeBooleanValue(int index, boolean defaultValue) {
127ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
128ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
129ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
130ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
131ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeResourceValue(int index, int defaultValue) {
132ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
133ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
134ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
135ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
136ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeIntValue(int index, int defaultValue) {
137ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
138ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
139ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
140ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
141ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getAttributeUnsignedIntValue(int index, int defaultValue) {
142ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
143ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
144ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
145ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
146ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public float getAttributeFloatValue(int index, float defaultValue) {
147ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
148ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
149ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
150ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
151ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getIdAttribute() {
152ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
153ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
154ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
155ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
156ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public String getClassAttribute() {
157ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
158ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
159ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
160ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
161ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getIdAttributeResourceValue(int defaultValue) {
162ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
163ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
164ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
165ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @Override
166ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int getStyleAttribute() {
167ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        throw new UnsupportedOperationException();
168ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
169ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski}
170