001package org.kuali.ole.batch.impl;
002
003import org.apache.log4j.Logger;
004import org.kuali.ole.batch.delete.BatchProcessDeleteData;
005import org.kuali.ole.batch.export.BatchProcessExportData;
006import org.kuali.ole.batch.ingest.BatchProcessInvoiceIngest;
007import org.kuali.ole.batch.ingest.BatchProcessLocationIngest;
008import org.kuali.ole.batch.ingest.BatchProcessOrderIngest;
009import org.kuali.ole.batch.ingest.BatchProcessPatronIngest;
010import org.kuali.ole.batch.ingest.BatchProcessBibImport;
011
012/**
013 * Created with IntelliJ IDEA.
014 * User: meenrajd
015 * Date: 7/8/13
016 * Time: 4:39 PM
017 * To change this template use File | Settings | File Templates.
018 */
019public class BatchProcessFactory {
020    private static final Logger LOG = Logger.getLogger(BatchProcessFactory.class);
021
022    /**
023     * Factory method to create and return the batch process based on the process type in the job
024     *
025     * @param processType
026     * @return
027     */
028    public static OLEBatchProcess createProcess(String processType) {
029        if (processType == null) {
030            LOG.error("::Process Type is NULL Cannot create Batch process::");
031            throw new RuntimeException("::Process Type is NULL Cannot create Batch process::");
032        }
033        if (processType.equalsIgnoreCase("Location Import")) {
034            return new BatchProcessLocationIngest();
035        } else if (processType.equals("Patron Import")) {
036            return new BatchProcessPatronIngest();
037        } else if (processType.equals("Order Record Import")) {
038            return new BatchProcessOrderIngest();
039        } else if (processType.equals("Batch Export")) {
040            return new BatchProcessExportData();
041        } else if (processType.equals("Invoice Import")) {
042            return new BatchProcessInvoiceIngest();
043        } else if (processType.equals("Batch Delete")) {
044            return new BatchProcessDeleteData();
045        } else if (processType.equals("Bib Import")) {
046            return new BatchProcessBibImport();
047        } else {
048            return null;
049        }
050    }
051}