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