1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.r2.lum.lu.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.JoinColumn;
25 import javax.persistence.ManyToOne;
26 import javax.persistence.NamedQueries;
27 import javax.persistence.NamedQuery;
28 import javax.persistence.OneToMany;
29 import javax.persistence.Table;
30 import javax.persistence.Temporal;
31 import javax.persistence.TemporalType;
32
33 import org.kuali.student.r1.common.entity.AttributeOwner;
34 import org.kuali.student.r1.common.entity.MetaEntity;
35
36 @Entity
37 @Table(name = "KSLU_CLUCLU_RELTN")
38 @NamedQueries({
39 @NamedQuery(name="CluCluRelation.getCluCluRelation", query="SELECT rel FROM CluCluRelation rel WHERE rel.clu.id = :cluId or rel.relatedClu.id = :cluId"),
40 @NamedQuery(name="CluCluRelation.getRelatedCluIdsByCluId", query="SELECT rel.relatedClu.id FROM CluCluRelation rel WHERE rel.clu.id = :cluId AND rel.luLuRelationType.id = :luLuRelationTypeId"),
41 @NamedQuery(name="CluCluRelation.getCluIdsByRelatedCluId", query = "SELECT rel.clu.id FROM CluCluRelation rel WHERE rel.relatedClu.id = :relatedCluId AND rel.luLuRelationType.id = :luLuRelationTypeId"),
42 @NamedQuery(name="CluCluRelation.getRelationTypeByCluId", query="SELECT distinct rel.luLuRelationType.id FROM CluCluRelation rel WHERE rel.clu.id = :cluId AND rel.relatedClu.id = :relatedCluId"),
43 @NamedQuery(name="CluCluRelation.getRelatedClusByCluId", query="SELECT rel.relatedClu FROM CluCluRelation rel WHERE rel.clu.id = :cluId AND rel.luLuRelationType.id = :luLuRelationTypeId"),
44 @NamedQuery(name="CluCluRelation.getClusByRelatedCluId", query="SELECT rel.clu FROM CluCluRelation rel WHERE rel.relatedClu.id = :relatedCluId AND rel.luLuRelationType.id = :luLuRelationTypeId"),
45 @NamedQuery(name="CluCluRelation.getRelatedClusByCluIdSt", query="SELECT rel.relatedClu FROM CluCluRelation rel WHERE rel.clu.id = :cluId AND rel.luLuRelationType.id = :luLuRelationTypeId AND rel.relatedClu.state in (:luStateList)"),
46 @NamedQuery(name="CluCluRelation.getClusByRelatedCluIdSt", query="SELECT rel.clu FROM CluCluRelation rel WHERE rel.relatedClu.id = :relatedCluId AND rel.luLuRelationType.id = :luLuRelationTypeId AND rel.clu.state in (:luStateList)")
47 })
48 public class CluCluRelation extends MetaEntity implements
49 AttributeOwner<CluCluRelationAttribute> {
50
51 @ManyToOne
52 @JoinColumn(name="CLU_ID")
53 private Clu clu;
54
55 @ManyToOne
56 @JoinColumn(name="RELATED_CLU_ID")
57 private Clu relatedClu;
58
59 @ManyToOne
60 @JoinColumn(name="LU_RELTN_TYPE_ID")
61 private LuLuRelationType luLuRelationType;
62
63 @Column(name = "CLU_RELTN_REQ")
64 private boolean cluRelationRequired;
65
66 @Temporal(TemporalType.TIMESTAMP)
67 @Column(name = "EFF_DT")
68 private Date effectiveDate;
69
70 @Temporal(TemporalType.TIMESTAMP)
71 @Column(name = "EXPIR_DT")
72 private Date expirationDate;
73
74 @Column(name = "ST")
75 private String state;
76
77 @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
78 private List<CluCluRelationAttribute> attributes;
79
80 public Clu getClu() {
81 return clu;
82 }
83
84 public void setClu(Clu clu) {
85 this.clu = clu;
86 }
87
88 public Clu getRelatedClu() {
89 return relatedClu;
90 }
91
92 public void setRelatedClu(Clu relatedClu) {
93 this.relatedClu = relatedClu;
94 }
95
96 public LuLuRelationType getLuLuRelationType() {
97 return luLuRelationType;
98 }
99
100 public void setLuLuRelationType(LuLuRelationType luLuRelationType) {
101 this.luLuRelationType = luLuRelationType;
102 }
103
104 public boolean isCluRelationRequired() {
105 return cluRelationRequired;
106 }
107
108 public void setCluRelationRequired(boolean cluRelationRequired) {
109 this.cluRelationRequired = cluRelationRequired;
110 }
111
112 public Date getEffectiveDate() {
113 return effectiveDate;
114 }
115
116 public void setEffectiveDate(Date effectiveDate) {
117 this.effectiveDate = effectiveDate;
118 }
119
120 public Date getExpirationDate() {
121 return expirationDate;
122 }
123
124 public void setExpirationDate(Date expirationDate) {
125 this.expirationDate = expirationDate;
126 }
127
128 public String getState() {
129 return state;
130 }
131
132 public void setState(String state) {
133 this.state = state;
134 }
135
136 @Override
137 public List<CluCluRelationAttribute> getAttributes() {
138 return attributes;
139 }
140
141 @Override
142 public void setAttributes(List<CluCluRelationAttribute> attributes) {
143 this.attributes = attributes;
144 }
145 }