View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.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.core.entity.AttributeOwner;
34  import org.kuali.student.core.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  })
45  public class CluCluRelation extends MetaEntity implements
46  		AttributeOwner<CluCluRelationAttribute> {
47  	
48  	@ManyToOne
49  	@JoinColumn(name="CLU_ID")
50  	private Clu clu;
51  	
52  	@ManyToOne
53  	@JoinColumn(name="RELATED_CLU_ID")
54  	private Clu relatedClu;
55  	
56  	@ManyToOne
57  	@JoinColumn(name="LU_RELTN_TYPE_ID")
58  	private LuLuRelationType luLuRelationType;
59  	
60  	@Column(name = "CLU_RELTN_REQ")
61  	private boolean cluRelationRequired;
62  
63  	@Temporal(TemporalType.TIMESTAMP)
64  	@Column(name = "EFF_DT")
65      private Date effectiveDate;
66  
67  	@Temporal(TemporalType.TIMESTAMP)
68  	@Column(name = "EXPIR_DT")
69  	private Date expirationDate;
70  
71  	@Column(name = "ST")
72  	private String state;
73  
74  	@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
75  	private List<CluCluRelationAttribute> attributes;
76  	
77  	public Clu getClu() {
78  		return clu;
79  	}
80  
81  	public void setClu(Clu clu) {
82  		this.clu = clu;
83  	}
84  
85  	public Clu getRelatedClu() {
86  		return relatedClu;
87  	}
88  
89  	public void setRelatedClu(Clu relatedClu) {
90  		this.relatedClu = relatedClu;
91  	}
92  
93  	public LuLuRelationType getLuLuRelationType() {
94  		return luLuRelationType;
95  	}
96  
97  	public void setLuLuRelationType(LuLuRelationType luLuRelationType) {
98  		this.luLuRelationType = luLuRelationType;
99  	}
100 
101 	public boolean isCluRelationRequired() {
102 		return cluRelationRequired;
103 	}
104 
105 	public void setCluRelationRequired(boolean cluRelationRequired) {
106 		this.cluRelationRequired = cluRelationRequired;
107 	}
108 
109 	public Date getEffectiveDate() {
110 		return effectiveDate;
111 	}
112 
113 	public void setEffectiveDate(Date effectiveDate) {
114 		this.effectiveDate = effectiveDate;
115 	}
116 
117 	public Date getExpirationDate() {
118 		return expirationDate;
119 	}
120 
121 	public void setExpirationDate(Date expirationDate) {
122 		this.expirationDate = expirationDate;
123 	}
124 
125 	public String getState() {
126 		return state;
127 	}
128 
129 	public void setState(String state) {
130 		this.state = state;
131 	}
132 	
133 	@Override
134     public List<CluCluRelationAttribute> getAttributes() {
135 		return attributes;
136 	}
137 
138 	@Override
139     public void setAttributes(List<CluCluRelationAttribute> attributes) {
140 		this.attributes = attributes;
141 	}
142 }