001 /**
002 * Copyright 2005-2013 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.impl.group;
017
018 import org.kuali.rice.kim.api.group.Group;
019 import org.kuali.rice.kim.api.identity.Person;
020 import org.kuali.rice.kim.api.services.KimApiServiceLocator;
021 import org.kuali.rice.kim.framework.group.GroupEbo;
022 import org.kuali.rice.kim.impl.type.KimTypeBo;
023 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
024 import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter;
025
026 import javax.persistence.Column;
027 import javax.persistence.MappedSuperclass;
028 import javax.persistence.Transient;
029 import java.util.List;
030 import java.util.Map;
031
032 @MappedSuperclass
033 public abstract class GroupBase extends PersistableBusinessObjectBase implements GroupEbo {
034 private static final long serialVersionUID = 1L;
035
036 @Column(name="GRP_NM")
037 private String name;
038
039 @Column(name="GRP_DESC",length=4000)
040 private String description;
041
042 @Column(name="ACTV_IND")
043 @javax.persistence.Convert(converter=BooleanYNConverter.class)
044 private boolean active;
045
046 @Column(name="KIM_TYP_ID")
047 private String kimTypeId;
048
049 @Column(name="NMSPC_CD")
050 private String namespaceCode;
051
052 @Transient
053 private List<Person> memberPersons;
054
055 @Transient
056 private List<Group> memberGroups;
057
058 @Transient
059 protected Map<String,String> attributes;
060
061
062 @Override
063 public Map<String,String> getAttributes() {
064 return attributes;
065 }
066
067 public void setAttributes(Map<String, String> attributes) {
068 this.attributes = attributes;
069 }
070
071 @Override
072 public String getName() {
073 return name;
074 }
075
076 public void setName(String name) {
077 this.name = name;
078 }
079
080 @Override
081 public String getDescription() {
082 return description;
083 }
084
085 public void setDescription(String description) {
086 this.description = description;
087 }
088
089 @Override
090 public boolean isActive() {
091 return active;
092 }
093
094 public void setActive(boolean active) {
095 this.active = active;
096 }
097
098 @Override
099 public String getKimTypeId() {
100 return kimTypeId;
101 }
102
103 public void setKimTypeId(String kimTypeId) {
104 this.kimTypeId = kimTypeId;
105 }
106
107 @Override
108 public String getNamespaceCode() {
109 return namespaceCode;
110 }
111
112 public void setNamespaceCode(String namespaceCode) {
113 this.namespaceCode = namespaceCode;
114 }
115
116 public KimTypeBo getKimTypeInfo() {
117 return KimTypeBo.from(KimApiServiceLocator.getKimTypeInfoService().getKimType(this.kimTypeId));
118 }
119 }