001 /* 002 * Copyright 2011 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.kfs.coa.dataaccess.impl; 017 018 import org.apache.ojb.broker.metadata.MetadataManager; 019 import org.kuali.kfs.coa.businessobject.Organization; 020 import org.kuali.kfs.coa.businessobject.PriorYearOrganization; 021 import org.kuali.kfs.coa.dataaccess.PriorYearOrganizationDao; 022 import org.kuali.rice.kns.dao.jdbc.PlatformAwareDaoBaseJdbc; 023 024 /** 025 * This class performs actions against the database through direct SQL command calls. 026 */ 027 public class PriorYearOrganizationDaoJdbc extends PlatformAwareDaoBaseJdbc implements PriorYearOrganizationDao { 028 029 /** Constant used to retrieve row counts for tables. Obj_Id value exists in all tables in DB. */ 030 private static final String OBJ_ID = "OBJ_ID"; 031 032 /** 033 * This method purges all records in the Prior Year Organization table in the DB. 034 * 035 * @return Number of records that were purged. 036 * @see org.kuali.kfs.coa.dataaccess.PriorYearOrganizationDao#purgePriorYearOrganizations() 037 */ 038 public int purgePriorYearOrganizations() { 039 String priorYrOrgTableName = MetadataManager.getInstance().getGlobalRepository().getDescriptorFor(PriorYearOrganization.class).getFullTableName(); 040 041 // 1. Count how many rows are currently in the prior year org table 042 int count = getSimpleJdbcTemplate().queryForInt("SELECT COUNT(" + OBJ_ID + ") from " + priorYrOrgTableName); 043 044 // 2. Purge all the rows from the prior year org table 045 getSimpleJdbcTemplate().update("DELETE from " + priorYrOrgTableName); 046 047 return count; 048 } 049 050 /** 051 * This method copies all organization records from the current Org table to the Prior Year Organization table. 052 * 053 * @return Number of records that were copied. 054 * @see org.kuali.kfs.coa.dataaccess.PriorYearOrganizationDao#copyCurrentOrganizationsToPriorYearTable() 055 */ 056 public int copyCurrentOrganizationsToPriorYearTable() { 057 String priorYrOrgTableName = MetadataManager.getInstance().getGlobalRepository().getDescriptorFor(PriorYearOrganization.class).getFullTableName(); 058 String orgTableName = MetadataManager.getInstance().getGlobalRepository().getDescriptorFor(Organization.class).getFullTableName(); 059 060 // 1. Copy all the rows from the current org table to the prior year org table 061 getSimpleJdbcTemplate().update("INSERT into " + priorYrOrgTableName + " SELECT * from " + orgTableName); 062 063 // 2. Count how many rows are currently in the prior year org table 064 return getSimpleJdbcTemplate().queryForInt("SELECT COUNT(" + OBJ_ID + ") from " + priorYrOrgTableName); 065 } 066 067 }