1 /* 2 * @(#)IAttributeInfo.java 3 * 4 * Copyright (C) 2002-2003 Matt Albrecht 5 * groboclown@users.sourceforge.net 6 * http://groboutils.sourceforge.net 7 * 8 * Part of the GroboUtils package at: 9 * http://groboutils.sourceforge.net 10 * 11 * Permission is hereby granted, free of charge, to any person obtaining a 12 * copy of this software and associated documentation files (the "Software"), 13 * to deal in the Software without restriction, including without limitation 14 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 15 * and/or sell copies of the Software, and to permit persons to whom the 16 * Software is furnished to do so, subject to the following conditions: 17 * 18 * The above copyright notice and this permission notice shall be included in 19 * all copies or substantial portions of the Software. 20 * 21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 24 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 27 * DEALINGS IN THE SOFTWARE. 28 */ 29 package net.sourceforge.groboutils.pmti.v1; 30 31 32 33 /** 34 * Describes a particular attribute. Note that since attributes may be 35 * shared among issue types, this cannot describe the particulars of the 36 * real attribute's type. 37 * 38 * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a> 39 * @version $Date: 2003/02/10 22:51:54 $ 40 * @since July 12, 2002 41 */ 42 public interface IAttributeInfo 43 { 44 /** 45 * Returns the identifying name of this attribute. This cannot be 46 * <tt>null</tt>. 47 */ 48 public String getName(); 49 50 51 /** 52 * Returns a human-readable description of this attribute. This may 53 * be <tt>null</tt>. 54 */ 55 public String getDescription(); 56 57 58 /** 59 * Returns a list of the acceptable types (baseclasses and 60 * interfaces) for the values stored with this attribute. Implementations 61 * should return a minimal but most descriptive set of classes 62 * (that is, only returning <tt>java.lang.Object</tt> is not descriptive; 63 * likewise if there are many known implementations of an inferface, 64 * only the interface need to be returned). This is a convenience method, 65 * and should not be relied upon to generate input values. 66 */ 67 public Class[] getValueTypes(); 68 } 69 70