19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * License for the specific language governing permissions and limitations under 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage java.beans; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Collections; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Enumeration; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashMap; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.LinkedList; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Map; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Common base class for Descriptors. 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class FeatureDescriptor { 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Map<String, Object> values; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean preferred, hidden, expert; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String shortDescription; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String name; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String displayName; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs an instance. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public FeatureDescriptor() { 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.values = new HashMap<String, Object>(); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the value for the named attribute. 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param attributeName 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The name of the attribute to set a value with. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The value to set. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setValue(String attributeName, Object value) { 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (attributeName == null || value == null) { 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new NullPointerException(); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.put(attributeName, value); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the value associated with the named attribute. 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param attributeName 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The name of the attribute to get a value for. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The attribute's value. 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object getValue(String attributeName) { 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object result = null; 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (attributeName != null) { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project result = values.get(attributeName); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enumerates the attribute names. 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return An instance of {@link Enumeration}. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Enumeration<String> attributeNames() { 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Create a new list, so that the references are copied 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Collections.enumeration(new LinkedList<String>(values.keySet())); 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the short description. 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param text 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The description to set. 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setShortDescription(String text) { 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.shortDescription = text; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the name. 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The name to set. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setName(String name) { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.name = name; 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the display name. 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param displayName 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The display name to set. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setDisplayName(String displayName) { 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.displayName = displayName; 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the short description or {@link #getDisplayName()} if not set. 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The description. 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getShortDescription() { 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return shortDescription == null ? getDisplayName() : shortDescription; 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the name. 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The name. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getName() { 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return name; 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the display name or {@link #getName()} if not set. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The display name. 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getDisplayName() { 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return displayName == null ? getName() : displayName; 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the preferred indicator. 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param preferred 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <code>true</code> if preferred, <code>false</code> 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * otherwise. 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setPreferred(boolean preferred) { 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.preferred = preferred; 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the hidden indicator. 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param hidden 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <code>true</code> if hidden, <code>false</code> otherwise. 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setHidden(boolean hidden) { 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.hidden = hidden; 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the expert indicator. 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param expert 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <code>true</code> if expert, <code>false</code> otherwise. 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setExpert(boolean expert) { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.expert = expert; 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Indicates if this feature is preferred. 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return <code>true</code> if preferred, <code>false</code> otherwise. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isPreferred() { 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return preferred; 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Indicates if this feature is hidden. 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return <code>true</code> if hidden, <code>false</code> otherwise. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isHidden() { 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return hidden; 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Indicates if this feature is an expert feature. 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </p> 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return <code>true</code> if hidden, <code>false</code> otherwise. 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isExpert() { 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return expert; 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 235