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.bo.ui;
017    
018    import java.sql.Date;
019    import java.sql.Timestamp;
020    
021    import javax.persistence.Column;
022    import javax.persistence.MappedSuperclass;
023    import javax.persistence.Transient;
024    
025    import org.hibernate.annotations.Type;
026    
027    /**
028     * This is a description of what this class does - shyu don't forget to fill this in. 
029     * 
030     * @author Kuali Rice Team (rice.collab@kuali.org)
031     *
032     */
033    @MappedSuperclass
034    public class KimDocumentBoActivatableToFromBase  extends KimDocumentBoBase {
035        private static final long serialVersionUID = 9042706897191231671L;
036    
037            @Column(name="ACTV_FRM_DT")
038            protected Timestamp activeFromDate;
039            @Column(name="ACTV_TO_DT")
040            protected Timestamp activeToDate;
041    
042            @Type(type="yes_no")
043            @Column(name="ACTV_IND")
044        protected boolean active = true;
045    
046            @Transient
047            protected boolean edit;
048    
049            public void setActive(boolean active) {
050                    this.active = active;
051            }
052    
053            /**
054             * @return the activeFromDate
055             */
056            public Timestamp getActiveFromDate() {
057                    return this.activeFromDate;
058            }
059    
060            /**
061             * @param activeFromDate the activeFromDate to set
062             */
063            public void setActiveFromDate(Timestamp activeFromDate) {
064                    this.activeFromDate = activeFromDate;
065            }
066    
067            /**
068             * @return the activeToDate
069             */
070            public Timestamp getActiveToDate() {
071                    return this.activeToDate;
072            }
073    
074            /**
075             * @param activeToDate the activeToDate to set
076             */
077            public void setActiveToDate(Timestamp activeToDate) {
078                    this.activeToDate = activeToDate;
079            }
080    
081            public boolean isActive() {
082                    long now = System.currentTimeMillis();          
083                    return (activeFromDate == null || now > activeFromDate.getTime()) && (activeToDate == null || now < activeToDate.getTime());
084            }
085    
086            /**
087             * @return the edit
088             */
089            public boolean isEdit() {
090                    return this.edit;
091            }
092    
093            /**
094             * @param edit the edit to set
095             */
096            public void setEdit(boolean edit) {
097                    this.edit = edit;
098            }
099    }