1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/*
2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2010 The Android Open Source Project
3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License.
6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at
7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software
11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and
14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License.
15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */
16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage com.android.layoutlib.bridge.android;
18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport com.android.layoutlib.bridge.BridgeConstants;
20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.util.AttributeSet;
22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.Map;
24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/**
26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * An implementation of the {@link AttributeSet} interface on top of a map of attribute in the form
27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * of (name, value).
28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * This is meant to be called only from {@link BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)}
30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * in the case of LayoutParams and therefore isn't a full implementation.
31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */
32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic class BridgeLayoutParamsMapAttributes implements AttributeSet {
33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    private final Map<String, String> mAttributes;
35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public BridgeLayoutParamsMapAttributes(Map<String, String> attributes) {
37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        mAttributes = attributes;
38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getAttributeValue(String namespace, String name) {
42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        if (BridgeConstants.NS_RESOURCES.equals(namespace)) {
43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            return mAttributes.get(name);
44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        }
45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        return null;
47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    // ---- the following methods are not called from
50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    // BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)
51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    // Should they ever be called, we'll just implement them on a need basis.
52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeCount() {
55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getAttributeName(int index) {
60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getAttributeValue(int index) {
65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getPositionDescription() {
70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeNameResource(int index) {
75282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
76282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
77282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
78282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
79282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeListValue(String namespace, String attribute,
80282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            String[] options, int defaultValue) {
81282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
82282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
83282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
84282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
85282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public boolean getAttributeBooleanValue(String namespace, String attribute,
86282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            boolean defaultValue) {
87282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
88282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
89282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
90282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
91282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeResourceValue(String namespace, String attribute,
92282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            int defaultValue) {
93282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
94282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
95282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
96282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
97282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeIntValue(String namespace, String attribute,
98282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            int defaultValue) {
99282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
100282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
101282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
102282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
103282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeUnsignedIntValue(String namespace, String attribute,
104282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            int defaultValue) {
105282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
106282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
107282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
108282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
109282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public float getAttributeFloatValue(String namespace, String attribute,
110282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            float defaultValue) {
111282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
112282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
113282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
114282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
115282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeListValue(int index,
116282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski            String[] options, int defaultValue) {
117282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
118282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
119282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
120282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
121282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public boolean getAttributeBooleanValue(int index, boolean defaultValue) {
122282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
123282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
124282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
125282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
126282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeResourceValue(int index, int defaultValue) {
127282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
128282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
129282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
130282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
131282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeIntValue(int index, int defaultValue) {
132282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
133282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
134282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
135282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
136282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getAttributeUnsignedIntValue(int index, int defaultValue) {
137282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
138282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
139282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
140282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
141282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public float getAttributeFloatValue(int index, float defaultValue) {
142282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
143282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
144282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
145282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
146282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getIdAttribute() {
147282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
148282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
149282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
150282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
151282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public String getClassAttribute() {
152282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
153282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
154282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
155282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
156282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getIdAttributeResourceValue(int defaultValue) {
157282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
158282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
159282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
160282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    @Override
161282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public int getStyleAttribute() {
162282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        throw new UnsupportedOperationException();
163282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
164282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski}
165