001/** 002 * Copyright 2005-2016 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krms.api.repository.type; 017 018import org.kuali.rice.core.api.mo.common.Identifiable; 019import org.kuali.rice.core.api.mo.common.Versioned; 020import org.kuali.rice.core.api.mo.common.active.Inactivatable; 021 022/** 023 * Defines the contract for a KRMS Attribute Definition. An attribute definition contract 024 * describes an attribute and how to find the attribute for krad purposes. 025 * It has a name, namespace, label, description and associated ui component. 026 */ 027public interface KrmsAttributeDefinitionContract extends Identifiable, Inactivatable, Versioned { 028 029 /** 030 * Returns the name of this attribute definition. 031 * 032 * <p> 033 * All attribute definitions have a name and namespace, so this value can 034 * not be null or blank. The combination of name and namespace must be unique within the 035 * entire KRMS system. 036 * </p> 037 * @return name for this attribute definition 038 */ 039 public String getName(); 040 041 /** 042 * Returns the namespace of this attribute definition. 043 * 044 * <p> 045 * The namespace provides scope of the the attribute definition. All attribute definition 046 * have a name and namespace, so this field may not be null or blank. The combination 047 * of name and namespace must be unique within the entire KRMS system. 048 * </p> 049 * @return the namespace of this attribute definition 050 */ 051 public String getNamespace(); 052 053 /** 054 * Returns the label of this attribute definition. 055 * <p>This is an optional 056 * field and may be null or blank.</p> 057 * 058 * @return the label to be used when displaying the attribute 059 */ 060 public String getLabel(); 061 062 /** 063 * Returns the description of the attribute. 064 * <p>This is an option field and may be null or blank.</p> 065 * @return a text description of the attribute 066 */ 067 public String getDescription(); 068 069 /** 070 * Returns the name of the component used to display the attribute. 071 * 072 * @return the component name of the of the attribute 073 */ 074 public String getComponentName(); 075}