Coverage Report - net.sourceforge.addam.ddlrun.runners.DeploymentRunnerFactory
 
Classes in this File Line Coverage Branch Coverage Complexity
DeploymentRunnerFactory
0%
0/25
N/A
1
 
 1  
 /*
 2  
  * Copyright (c) 2004 International Decision Systems, Inc.  All Rights Reserved.
 3  
  *
 4  
  * By using this Software, You acknowledge that the Software is a valuable asset
 5  
  * and trade secret of either International Decision Systems, Inc. ("IDSI") or a
 6  
  * third party supplier of IDSI and constitutes confidential and proprietary
 7  
  * information.
 8  
  *
 9  
  * NEITHER IDSI NOR ANY AGENT OR PERSON ACTING FOR OR WITH IDSI HAS MADE OR DOES
 10  
  * MAKE ANY STATEMENTS, AFFIRMATIONS, REPRESENTATIONS OR WARRANTIES WHATSOEVER
 11  
  * TO YOU, WHETHER EXPRESS OR IMPLIED, AS TO THE SOFTWARE, THE QUALITY OR
 12  
  * CONDITION OF THE SOFTWARE, OR THE OPERATING CHARACTERISTICS OR RELIABILITY OF
 13  
  * THE SOFTWARE, OR ITS SUITABILITY FOR ANY GENERAL OR PARTICULAR PURPOSE, OR AS
 14  
  * TO ANY OTHER MATTER WHATSOEVER; ANY AND ALL OTHER WARRANTIES INCLUDING
 15  
  * WITHOUT LIMITATION ANY WARRANTIES IMPLIED BY LAW, SUCH AS THE IMPLIED
 16  
  * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND TITLE,
 17  
  * USE AND NON-INFRINGEMENT; ARE HEREBY EXPRESSLY DISCLAIMED AND EXCLUDED.
 18  
 */
 19  
 package net.sourceforge.addam.ddlrun.runners;
 20  
 
 21  
 
 22  
 import java.sql.Connection;
 23  
 import java.sql.SQLException;
 24  
 import java.util.Collection;
 25  
 import java.util.HashMap;
 26  
 
 27  
 import net.sourceforge.addam.ddlrun.custom.IDSRunLogger;
 28  
 import net.sourceforge.addam.ddlrun.filters.DifferenceFilter;
 29  
 import net.sourceforge.addam.ddlrun.filters.SelectAllFilter;
 30  
 import net.sourceforge.addam.ddlrun.filters.StartPointFilter;
 31  
 import net.sourceforge.addam.ddlrun.grammars.ScriptGrammar;
 32  
 import net.sourceforge.addam.ddlrun.utils.CompletedScriptRetriever;
 33  
 import net.sourceforge.addam.ddlrun.utils.ResourceReaderFactory;
 34  
 import net.sourceforge.addam.ddlrun.utils.RunLogger;
 35  
 import net.sourceforge.addam.ddlrun.utils.StartFolderRetriever;
 36  
 
 37  
 /**
 38  
  * Used to easily create DeploymentRunners for install and upgrade.
 39  
  *
 40  
  * @author TIM3
 41  
  * @since Mar 25, 2005
 42  
  */
 43  0
 public class DeploymentRunnerFactory {
 44  
 
 45  
     static public DeploymentRunnerFactory getInstance() {
 46  0
         return new DeploymentRunnerFactory();
 47  
     }
 48  
 
 49  
     public DeploymentRunner getInstallRunner(ResourceReaderFactory readerFactory,
 50  
                                              Connection connection,
 51  
                                              ScriptGrammar grammar) {
 52  0
         HashMap scriptRunnerMap = new HashMap();
 53  0
         Runner statementRunner = new JDBCStatementRunner(connection);
 54  0
         Runner scriptRunner = new JDBCScriptRunner(readerFactory, grammar, statementRunner);
 55  0
         scriptRunnerMap.put("sql", scriptRunner);
 56  
 
 57  0
         DeploymentRunner runner = new DeploymentRunner(readerFactory,
 58  0
                 new SelectAllFilter(), // group filter
 59  0
                 new SelectAllFilter(), // script filter
 60  0
                 scriptRunnerMap, // maps sql to JDBCScriptRunner
 61  0
                 null);
 62  
 
 63  0
         return runner;
 64  
     }
 65  
 
 66  
     /**
 67  
      * @param readerFactory
 68  
      * @param connection
 69  
      * @param grammar
 70  
      * @param startFolderRetriever
 71  
      * @param completedScriptRetriever
 72  
      * @return
 73  
      * @throws SQLException if there is a problem selecting the start folder or completed scripts
 74  
      */
 75  
     public DeploymentRunner getUpgradeRunner(ResourceReaderFactory readerFactory,
 76  
                                              Connection connection,
 77  
                                              ScriptGrammar grammar,
 78  
                                              StartFolderRetriever startFolderRetriever,
 79  
                                              CompletedScriptRetriever completedScriptRetriever) throws SQLException {
 80  
         DeploymentRunner runner;
 81  0
         HashMap scriptRunnerMap = new HashMap();
 82  0
         Runner statementRunner = new JDBCStatementRunner(connection);
 83  0
         Runner scriptRunner = new JDBCScriptRunner(readerFactory, grammar, statementRunner);
 84  0
         RunLogger runLogger = new IDSRunLogger(connection, null);
 85  0
         scriptRunnerMap.put("sql", scriptRunner);
 86  
 
 87  0
         String startFolder = startFolderRetriever.getStartFolder();
 88  0
         Collection completedScripts = completedScriptRetriever.getCompletedScripts();
 89  0
         runner = new DeploymentRunner(readerFactory,
 90  0
                 new StartPointFilter(startFolder), // group filter
 91  0
                 new DifferenceFilter(completedScripts, true), // script filter
 92  0
                 scriptRunnerMap,
 93  0
                 null);
 94  0
         return runner;
 95  
     }
 96  
 
 97  
 }