001/**
002 * Copyright 2004-2014 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 */
016package org.kuali.kpme.core.block;
017
018import java.math.BigDecimal;
019import java.sql.Timestamp;
020import java.util.Date;
021
022import javax.persistence.Transient;
023
024import org.kuali.kpme.core.api.block.CalendarBlockContract;
025import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
026
027public abstract class CalendarBlockBase extends PersistableBusinessObjectBase implements CalendarBlockContract {
028
029        private static final long serialVersionUID = -4067369587522388260L;
030        
031        @Transient
032        protected String hrCalendarBlockId;
033        protected String principalId;
034        protected String userPrincipalId;
035        protected String documentId;
036        protected Timestamp beginTimestamp;
037        protected Timestamp endTimestamp;
038        protected Timestamp timestamp;
039        protected boolean lunchDeleted;
040        protected BigDecimal hours;
041        protected BigDecimal amount;
042        protected String overtimePref;
043        protected String earnCode;
044        protected Long workArea;
045        protected Long jobNumber;
046        protected Long task;
047        @Transient
048        protected String concreteBlockType;
049        @Transient
050        protected String concreteBlockId;
051        
052        public CalendarBlockBase() {
053                this.concreteBlockType = this.getClass().getName();
054        }
055        
056        public abstract String getConcreteBlockType();
057        
058        
059        public abstract void setConcreteBlockType(String concreteBlockType);
060
061        
062        public abstract String getConcreteBlockId();
063
064        
065        public abstract void setConcreteBlockId(String concreteBlockId);
066        
067        public String getHrCalendarBlockId() {
068                return hrCalendarBlockId;
069        }
070        
071        public void setHrCalendarBlockId(String hrCalendarBlockId) {
072                this.hrCalendarBlockId = hrCalendarBlockId;
073        }
074
075}