001    /**
002     * Copyright 2004-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.hr.time.timeblock.dao;
017    
018    import java.util.List;
019    
020    import org.apache.ojb.broker.query.Criteria;
021    import org.apache.ojb.broker.query.Query;
022    import org.apache.ojb.broker.query.QueryFactory;
023    import org.kuali.hr.time.timeblock.TimeBlockHistoryDetail;
024    import org.kuali.hr.time.timeblock.TimeHourDetail;
025    import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb;
026    
027    public class TimeBlockHistoryDetailDaoSpringOjbImpl extends PlatformAwareDaoBaseOjb implements TimeBlockHistoryDetailDao {
028    
029            @Override
030            public void saveOrUpdate(TimeBlockHistoryDetail timeBlockHistoryDetail) {
031                    this.getPersistenceBrokerTemplate().store(timeBlockHistoryDetail);
032            }
033    
034            @Override
035            public void saveOrUpdate(List<TimeBlockHistoryDetail> timeBlockHistoryDetails) {
036                    if (timeBlockHistoryDetails != null) {
037                            for (TimeBlockHistoryDetail timeHourDetail : timeBlockHistoryDetails) {
038                                    this.getPersistenceBrokerTemplate().store(timeHourDetail);
039                            }
040                    }
041            }
042    
043            @Override
044            public TimeBlockHistoryDetail getTimeBlockHistoryDetail(String timeBlockHistoryDetailId) {
045                    Criteria currentRecordCriteria = new Criteria();
046                    currentRecordCriteria.addEqualTo("timeBlockHistoryDetailId",
047                                    timeBlockHistoryDetailId);
048    
049                    return (TimeBlockHistoryDetail) this.getPersistenceBrokerTemplate()
050                                    .getObjectByQuery(
051                                                    QueryFactory.newQuery(TimeBlockHistoryDetail.class,
052                                                                    currentRecordCriteria));
053            }
054    
055            @SuppressWarnings("unchecked")
056            @Override
057            public List<TimeBlockHistoryDetail> getTimeBlockHistoryDetailsForTimeBlockHistory(String timeBlockHistoryId) {
058                    Criteria currentRecordCriteria = new Criteria();
059                    currentRecordCriteria.addEqualTo("tkTimeBlockHistoryId",
060                                    timeBlockHistoryId);
061                    Query query = QueryFactory.newQuery(TimeHourDetail.class,
062                                    currentRecordCriteria);
063                    return (List<TimeBlockHistoryDetail>) this.getPersistenceBrokerTemplate().getCollectionByQuery(query);
064            }
065    
066            public void remove(Long timeBlockHistoryId) {
067                    Criteria removalCriteria = new Criteria();
068                    removalCriteria.addEqualTo("tkTimeBlockHistoryId", timeBlockHistoryId);
069    
070                    this.getPersistenceBrokerTemplate().deleteByQuery(
071                                    QueryFactory.newQuery(TimeHourDetail.class, removalCriteria));
072            }
073    
074    }