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    }