101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet/*
201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * Copyright (C) 2010 The Android Open Source Project
301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet *
401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License");
501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * you may not use this file except in compliance with the License.
601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * You may obtain a copy of the License at
701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet *
801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet *      http://www.apache.org/licenses/LICENSE-2.0
901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet *
1001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * Unless required by applicable law or agreed to in writing, software
1101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS,
1201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * See the License for the specific language governing permissions and
1401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * limitations under the License.
1501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet */
1601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
1701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohetpackage com.android.layoutlib.bridge.android;
1801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
1901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohetimport com.android.layoutlib.bridge.BridgeConstants;
2001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
2101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohetimport android.util.AttributeSet;
2201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
2301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohetimport java.util.Map;
2401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
2501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet/**
2601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * An implementation of the {@link AttributeSet} interface on top of a map of attribute in the form
2701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * of (name, value).
2801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet *
2901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * This is meant to be called only from {@link BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)}
3001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet * in the case of LayoutParams and therefore isn't a full implementation.
3101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet */
3201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohetpublic class BridgeLayoutParamsMapAttributes implements AttributeSet {
3301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
3401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    private final Map<String, String> mAttributes;
3501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
3601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public BridgeLayoutParamsMapAttributes(Map<String, String> attributes) {
3701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        mAttributes = attributes;
3801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
3901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
4046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
4101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getAttributeValue(String namespace, String name) {
4201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        if (BridgeConstants.NS_RESOURCES.equals(namespace)) {
4301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            return mAttributes.get(name);
4401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        }
4501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
4601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        return null;
4701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
4801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
4901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    // ---- the following methods are not called from
5001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    // BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)
5101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    // Should they ever be called, we'll just implement them on a need basis.
5201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
5346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
5401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeCount() {
5501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
5601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
5701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
5846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
5901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getAttributeName(int index) {
6001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
6101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
6201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
6346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
6401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getAttributeValue(int index) {
6501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
6601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
6701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
6846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
6901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getPositionDescription() {
7001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
7101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
7201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
7346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
7401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeNameResource(int index) {
7501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
7601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
7701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
7846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
7901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeListValue(String namespace, String attribute,
8001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            String[] options, int defaultValue) {
8101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
8201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
8301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
8446d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
8501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public boolean getAttributeBooleanValue(String namespace, String attribute,
8601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            boolean defaultValue) {
8701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
8801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
8901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
9046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
9101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeResourceValue(String namespace, String attribute,
9201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            int defaultValue) {
9301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
9401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
9501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
9646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
9701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeIntValue(String namespace, String attribute,
9801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            int defaultValue) {
9901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
10001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
10101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
10246d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
10301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeUnsignedIntValue(String namespace, String attribute,
10401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            int defaultValue) {
10501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
10601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
10701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
10846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
10901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public float getAttributeFloatValue(String namespace, String attribute,
11001811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            float defaultValue) {
11101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
11201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
11301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
11446d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
11501811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeListValue(int index,
11601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet            String[] options, int defaultValue) {
11701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
11801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
11901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
12046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
12101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public boolean getAttributeBooleanValue(int index, boolean defaultValue) {
12201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
12301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
12401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
12546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
12601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeResourceValue(int index, int defaultValue) {
12701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
12801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
12901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
13046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
13101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeIntValue(int index, int defaultValue) {
13201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
13301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
13401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
13546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
13601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getAttributeUnsignedIntValue(int index, int defaultValue) {
13701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
13801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
13901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
14046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
14101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public float getAttributeFloatValue(int index, float defaultValue) {
14201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
14301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
14401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
14546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
14601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getIdAttribute() {
14701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
14801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
14901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
15046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
15101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public String getClassAttribute() {
15201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
15301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
15401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
15546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
15601811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getIdAttributeResourceValue(int defaultValue) {
15701811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
15801811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
15901811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet
16046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
16101811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    public int getStyleAttribute() {
16201811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet        throw new UnsupportedOperationException();
16301811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet    }
16401811aa86279af1b341a4fff344d66c0ebdd63daXavier Ducrohet}
165