001    /**
002     * Copyright 2010 The Kuali Foundation Licensed under the
003     * Educational Community License, Version 2.0 (the "License"); you may
004     * not use this file except in compliance with the License. You may
005     * obtain a copy of the License at
006     *
007     * http://www.osedu.org/licenses/ECL-2.0
008     *
009     * Unless required by applicable law or agreed to in writing,
010     * software distributed under the License is distributed on an "AS IS"
011     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012     * or implied. See the License for the specific language governing
013     * permissions and limitations under the License.
014     */
015    
016    package org.kuali.student.r2.lum.lo.entity;
017    
018    import java.util.Date;
019    import java.util.List;
020    
021    import javax.persistence.CascadeType;
022    import javax.persistence.Column;
023    import javax.persistence.Entity;
024    import javax.persistence.JoinColumn;
025    import javax.persistence.ManyToOne;
026    import javax.persistence.OneToMany;
027    import javax.persistence.Table;
028    import javax.persistence.Temporal;
029    import javax.persistence.TemporalType;
030    
031    import org.kuali.student.r1.common.entity.AttributeOwner;
032    import org.kuali.student.r1.common.entity.MetaEntity;
033    
034    @Entity
035    @Table(name = "KSLO_LO_RELTN")
036    public class LoLoRelation extends MetaEntity implements AttributeOwner<LoLoRelationAttribute> {
037            
038            @ManyToOne
039            @JoinColumn(name="LO_ID")
040            private Lo lo;
041            
042            @ManyToOne
043            @JoinColumn(name="RELATED_LO_ID")
044            private Lo relatedLo;
045            
046            @ManyToOne
047            @JoinColumn(name="LO_LO_RELATION_TYPE_ID")
048            private LoLoRelationType loLoRelationType;
049            
050            @Column(name = "ST")
051            private String state;
052            
053            @Temporal(TemporalType.TIMESTAMP)
054            @Column(name = "EFF_DT")
055            private Date effectiveDate;
056    
057            @Temporal(TemporalType.TIMESTAMP)
058            @Column(name = "EXPIR_DT")
059            private Date expirationDate;
060    
061            @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
062            private List<LoLoRelationAttribute> attributes;
063    
064            public void setLo(Lo lo) {
065                    this.lo = lo;
066            }
067    
068            public Lo getLo() {
069                    return lo;
070            }
071    
072            public void setRelatedLo(Lo relatedLo) {
073                    this.relatedLo = relatedLo;
074            }
075    
076            public Lo getRelatedLo() {
077                    return relatedLo;
078            }
079    
080            /**
081             * @param effectiveDate the effectiveDate to set
082             */
083            public void setEffectiveDate(Date effectiveDate) {
084                    this.effectiveDate = effectiveDate;
085            }
086    
087            /**
088             * @return the effectiveDate
089             */
090            public Date getEffectiveDate() {
091                    return effectiveDate;
092            }
093    
094            /**
095             * @param expirationDate the expirationDate to set
096             */
097            public void setExpirationDate(Date expirationDate) {
098                    this.expirationDate = expirationDate;
099            }
100    
101            /**
102             * @return the expirationDate
103             */
104            public Date getExpirationDate() {
105                    return expirationDate;
106            }
107    
108            @Override
109            public List<LoLoRelationAttribute> getAttributes() {
110                    return attributes;
111            }
112    
113            @Override
114            public void setAttributes(List<LoLoRelationAttribute> attributes) {
115                    this.attributes = attributes;
116            }
117    
118            public void setLoLoRelationType(LoLoRelationType loLoRelationType) {
119                    this.loLoRelationType = loLoRelationType;
120            }
121    
122            public LoLoRelationType getLoLoRelationType() {
123                    return loLoRelationType;
124            }
125    
126            public void setState(String state) {
127                    this.state = state;
128            }
129    
130            public String getState() {
131                    return state;
132            }
133    }