001 /** 002 * Copyright 2005-2014 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 */ 016 package org.kuali.rice.kim.framework.group; 017 018 import java.util.Map; 019 020 import org.kuali.rice.kim.api.group.GroupContract; 021 import org.kuali.rice.krad.bo.ExternalizableBusinessObject; 022 023 /** 024 * TODO: Likely should remove all methods from this interface after KULRICE-7170 is fixed 025 */ 026 public interface GroupEbo extends GroupContract, ExternalizableBusinessObject { 027 028 /** 029 * This is the namespace code for the Group. 030 * 031 * <p> 032 * This is a namespace code assigned to a Group. Together with name, it makes up another unique identifier for Group 033 * </p> 034 * 035 * @return namespaceCode 036 */ 037 String getNamespaceCode(); 038 039 /** 040 * This is the name for the Group. 041 * 042 * <p> 043 * This is a name assigned to a Group. Together with NamespaceCode, it makes up another unique identifier for Group 044 * </p> 045 * 046 * @return name 047 */ 048 String getName(); 049 050 /** 051 * This a description for the Group. 052 * 053 * <p> 054 * This is a description assigned to a Group. 055 * </p> 056 * 057 * @return description 058 */ 059 String getDescription(); 060 061 /** 062 * This a Kim Type Id for the Group. 063 * 064 * <p> 065 * This links a Kim Type to the Group to allow custom types of Groups. 066 * </p> 067 * 068 * @return description 069 */ 070 String getKimTypeId(); 071 072 /** 073 * This is a set of Attributes for a Group. 074 * 075 * <p> 076 * This is a set of attributes which are key-label pairs that are defined by the Group's Kim Type. 077 * </p> 078 * 079 * @return attributes 080 */ 081 Map<String, String> getAttributes(); 082 083 /** 084 * The unique identifier for an object. This can be null. 085 * 086 * @return the id 087 */ 088 String getId(); 089 090 /** 091 * Returns the version number for this object. In general, this value should only 092 * be null if the object has not yet been stored to a persistent data store. 093 * This version number is generally used for the purposes of optimistic locking. 094 * 095 * @return the version number, or null if one has not been assigned yet 096 */ 097 Long getVersionNumber(); 098 099 /** 100 * Return the globally unique object id of this object. In general, this value should only 101 * be null if the object has not yet been stored to a persistent data store. 102 * 103 * @return the objectId of this object, or null if it has not been set yet 104 */ 105 String getObjectId(); 106 107 /** 108 * The active indicator for an object. 109 * 110 * @return true if active false if not. 111 */ 112 boolean isActive(); 113 }