1 /* 2 3 dsh-identify Lightweight components for identifiable beans. 4 Copyright (c) 2003-2019 held jointly by the individual authors. 5 6 This library is free software; you can redistribute it and/or modify it 7 under the terms of the GNU Lesser General Public License as published 8 by the Free Software Foundation; either version 3 of the License, or (at 9 your option) any later version. 10 11 This library is distributed in the hope that it will be useful, but WITHOUT 12 ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 14 License for more details. 15 16 You should have received a copy of the GNU Lesser General Public License 17 along with this library; if not, write to the Free Software Foundation, 18 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 19 20 > http://www.fsf.org/licensing/licenses/lgpl.html 21 > http://www.opensource.org/licenses/lgpl-license.php 22 23 */ 24 package org.dishevelled.identify; 25 26 import java.beans.BeanDescriptor; 27 28 import org.dishevelled.iconbundle.IconBundle; 29 30 /** 31 * Abstract BeanDescriptor which provides for discovery of the 32 * name property and icon bundle for a bean through introspection. 33 * 34 * @author Michael Heuer 35 */ 36 public abstract class IdentifiableBeanDescriptor 37 extends BeanDescriptor 38 { 39 40 /** 41 * Create a new abstract BeanDescriptor for an identifiable 42 * bean with the specified class. 43 * 44 * @param beanClass class of the identifiable bean 45 */ 46 protected IdentifiableBeanDescriptor(final Class beanClass) 47 { 48 super(beanClass); 49 } 50 51 /** 52 * Create a new abstract BeanDescriptor for an identifiable 53 * bean with the specified class and customizer class. 54 * 55 * @param beanClass class of the identifiable bean 56 * @param customizerClass class of the customizer to use for the 57 * identifiable bean 58 */ 59 protected IdentifiableBeanDescriptor(final Class beanClass, 60 final Class customizerClass) 61 { 62 super(beanClass, customizerClass); 63 } 64 65 66 /** 67 * Return the index of the name property descriptor, or 68 * <code>-1</code> if one does not exist. 69 * 70 * @return the index of the name property descriptor, or 71 * <code>-1</code> if one does not exist 72 */ 73 public abstract int getNamePropertyIndex(); 74 75 /** 76 * Return an icon bundle to use for all instances of the 77 * identifiable bean class this descriptor describes. 78 * 79 * @return an icon bundle to use for all instances of the 80 * identifiable bean class this descriptor describes 81 */ 82 public abstract IconBundle getIconBundle(); 83 }