1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.lum.lo.entity;
17
18 import java.util.Date;
19 import java.util.List;
20
21 import javax.persistence.CascadeType;
22 import javax.persistence.Column;
23 import javax.persistence.Entity;
24 import javax.persistence.FetchType;
25 import javax.persistence.JoinColumn;
26 import javax.persistence.JoinTable;
27 import javax.persistence.ManyToOne;
28 import javax.persistence.NamedQueries;
29 import javax.persistence.NamedQuery;
30 import javax.persistence.OneToMany;
31 import javax.persistence.Table;
32 import javax.persistence.Temporal;
33 import javax.persistence.TemporalType;
34
35 import org.kuali.student.common.entity.AttributeOwner;
36 import org.kuali.student.common.entity.MetaEntity;
37
38
39
40
41 @Entity
42 @Table(name = "KSLO_LO")
43 @NamedQueries( {
44 @NamedQuery(name = "Lo.getAllowedLoLoRelationTypes", query = "SELECT relType.relationTypeId FROM AllowedLoLoRelationType relType WHERE relType.loTypeId = :loTypeKey AND relType.relatedLoTypeId = :relatedLoTypeKey"),
45 @NamedQuery(name = "Lo.getRelatedLosByLoId", query = "SELECT rel.relatedLo FROM LoLoRelation rel WHERE rel.lo.id = :loId AND rel.loLoRelationType.id = :loLoRelationTypeId"),
46 @NamedQuery(name = "Lo.getLosByRelatedLoId", query = "SELECT rel.lo FROM LoLoRelation rel WHERE rel.relatedLo.id = :relatedLoId AND rel.loLoRelationType.id = :loLoRelationTypeId"),
47 @NamedQuery(name = "Lo.getLoCategories", query = "SELECT c FROM LoCategory c WHERE c.loRepository.id = :repositoryId"),
48 @NamedQuery(name = "Lo.findLosByIdList", query = "SELECT l FROM Lo l WHERE l.id IN (:idList)"),
49 @NamedQuery(name = "Lo.getLoCategoriesForLo", query = "SELECT j.loCategory FROM LoLoCategoryJoin j WHERE j.lo.id = :loId"),
50 @NamedQuery(name = "Lo.getLosByLoCategory", query = "SELECT j.lo FROM LoLoCategoryJoin j WHERE j.loCategory.id = :loCategoryId"),
51 @NamedQuery(name = "Lo.getLosByRepository", query = "SELECT l FROM Lo l WHERE l.loRepository.id = :loRepositoryId"),
52 @NamedQuery(name = "Lo.getLoLoRelationsByLoId", query = "SELECT llRel FROM LoLoRelation llRel WHERE llRel.lo.id = :loId OR llRel.relatedLo.id = :loId"),
53 @NamedQuery(name = "Lo.getLoCategoryJoin", query = "SELECT j FROM LoLoCategoryJoin j WHERE j.lo.id = :loId AND j.loCategory.id = :loCategoryId")
54 })
55 public class Lo extends MetaEntity implements AttributeOwner<LoAttribute> {
56
57 @Column(name = "NAME")
58 private
59 String name;
60
61 @ManyToOne(cascade = CascadeType.ALL)
62 @JoinColumn(name = "RT_DESCR_ID")
63 private LoRichText descr;
64
65 @ManyToOne
66 @JoinColumn(name = "LO_REPO_ID")
67 private LoRepository loRepository;
68
69 @Temporal(TemporalType.TIMESTAMP)
70 @Column(name = "EFF_DT")
71 private Date effectiveDate;
72
73 @Temporal(TemporalType.TIMESTAMP)
74 @Column(name = "EXPIR_DT")
75 private Date expirationDate;
76
77 @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
78 private List<LoAttribute> attributes;
79
80 @OneToMany(fetch=FetchType.LAZY, mappedBy="lo")
81 @JoinTable(
82 name="KSLO_LO_JN_LOCATEGORY",
83 joinColumns=@JoinColumn(name="LO_ID", insertable=false, updatable=false),
84 inverseJoinColumns=@JoinColumn(name="ID", insertable=false, updatable=false)
85 )
86 private List<LoLoCategoryJoin> categories;
87
88 @ManyToOne
89 @JoinColumn(name = "LOTYPE_ID")
90 private LoType loType;
91
92 @Column(name = "ST")
93 private String state;
94
95
96
97
98 public void setName(String name) {
99 this.name = name;
100 }
101
102
103
104
105 public String getName() {
106 return name;
107 }
108
109 public LoRichText getDescr() {
110 return descr;
111 }
112
113 public void setDescr(LoRichText descr) {
114 this.descr = descr;
115 }
116
117
118
119
120 public void setLoRepository(LoRepository loRepository) {
121 this.loRepository = loRepository;
122 }
123
124
125
126
127 public LoRepository getLoRepository() {
128 return loRepository;
129 }
130
131 public Date getEffectiveDate() {
132 return effectiveDate;
133 }
134
135 public void setEffectiveDate(Date effectiveDate) {
136 this.effectiveDate = effectiveDate;
137 }
138
139 public Date getExpirationDate() {
140 return expirationDate;
141 }
142
143 public void setExpirationDate(Date expirationDate) {
144 this.expirationDate = expirationDate;
145 }
146
147
148
149
150 @Override
151 public List<LoAttribute> getAttributes() {
152 return attributes;
153 }
154
155
156
157
158 @Override
159 public void setAttributes(List<LoAttribute> attributes) {
160 this.attributes = attributes;
161 }
162
163
164
165
166 public void setLoType(LoType loType) {
167 this.loType = loType;
168 }
169
170
171
172
173 public LoType getLoType() {
174 return loType;
175 }
176
177
178
179
180 public void setState(String state) {
181 this.state = state;
182 }
183
184
185
186
187 public String getState() {
188 return state;
189 }
190
191 public void setCategories(List<LoLoCategoryJoin> categories) {
192 this.categories = categories;
193 }
194
195 public List<LoLoCategoryJoin> getCategories() {
196 return categories;
197 }
198 }