/* SVN FILE: $Id: IrsCountryLoader.java 8016 2013-09-11 15:52:46Z emh1 $ */ package edu.psu.iam.cpr.utility; /** * This class implements ... * * This work is licensed under the Creative Commons * Attribution-NonCommercial-NoDerivs 3.0 United States License. To view a copy * of this license, visit [http://creativecommons.org/licenses/by-nc-nd/3.0/us/] * or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain * View, California, 94041, USA. * * @package put the correct package name here. * @author $Author: emh1 $ * @version $Rev: 8016 $ * @lastrevision $Date: 2013-09-11 11:52:46 -0400 (Wed, 11 Sep 2013) $ * */ import java.io.BufferedReader; import java.io.FileReader; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.hibernate.Query; import org.hibernate.Session; import edu.psu.iam.cpr.core.database.Database; import edu.psu.iam.cpr.core.database.SessionFactoryUtil; import edu.psu.iam.cpr.utility.beans.IrsCountry; public class IrsCountryLoader implements BeanLoader { @Override public void loadTable(Database db, String primeDirectory, String tableName) { BufferedReader bufferedReader = null; try { Date d = new Date(); String requestor = "SYSTEM"; db.openSession(SessionFactoryUtil.getSessionFactory()); Session session = db.getSession(); // Remove all of the records from the database table. String sqlQuery = "delete from " + tableName; Query query = session.createQuery(sqlQuery); query.executeUpdate(); // Read in the first record containing the column headers. bufferedReader = new BufferedReader(new FileReader(primeDirectory + System.getProperty("file.separator") + tableName)); String[] columns = bufferedReader.readLine().split("[|]"); String line; // Read and process the file. while ((line = bufferedReader.readLine()) != null) { String[] fields = line.split("[|]"); IrsCountry bean = new IrsCountry(); bean.setCreatedBy(requestor); bean.setCreatedOn(d); bean.setLastUpdateBy(requestor); bean.setLastUpdateOn(d); // country_key|irs_country_code|start_date|end_date for (int i = 0; i < columns.length; ++i) { if (columns[i].equals("country_key")) { bean.setCountryKey(new Long(fields[i])); } else if (columns[i].equals("irs_country_code")) { bean.setIrsCountryCode(fields[i]); } else if (columns[i].equals("start_date")) { if (fields[i].equals("NULL")) { bean.setStartDate(null); } else { DateFormat formatter = new SimpleDateFormat("MMddyyyy"); bean.setStartDate(formatter.parse(fields[i])); } } else if (columns[i].equals("end_date")) { if (fields[i].equals("NULL")) { bean.setEndDate(null); } else { DateFormat formatter = new SimpleDateFormat("MMddyyyy"); bean.setEndDate(formatter.parse(fields[i])); } } } session.save(bean); } db.closeSession(); } catch (Exception e) { e.printStackTrace(); db.rollbackSession(); } finally { try { bufferedReader.close(); } catch (Exception e) { } } } }