All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unitils.dbmaintainer.util.DatabaseModuleConfigUtils Maven / Gradle / Ivy

There is a newer version: 3.4.6
Show newest version
/*
 * Copyright 2008,  Unitils.org
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.unitils.dbmaintainer.util;

import static org.unitils.core.util.ConfigUtils.getInstanceOf;

import java.util.Properties;

import org.unitils.core.dbsupport.SQLHandler;
import org.unitils.util.PropertyUtils;

/**
 * Class containing configuration utility methods specifically for the {@link org.unitils.database.DatabaseModule} and
 * related modules
 *
 * @author Filip Neven
 * @author Tim Ducheyne
 */
public class DatabaseModuleConfigUtils {

    /**
     * Property key of the SQL dialect of the underlying DBMS implementation
     */
    public static final String PROPKEY_DATABASE_DIALECT = "database.dialect";


    /**
     * Retrieves the concrete instance of the class with the given type as configured by the given Configuration.
     * The concrete instance must extend the class {@link DatabaseAccessing}.
     * 
     * @param               The type of the DatabaseTask 
     * @param databaseTaskType The type of the DatabaseTask, not null
     * @param configuration    The config, not null
     * @param sqlHandler       The sql handler, not null
     * @return The configured instance
     */
    @SuppressWarnings({"unchecked"})
    public static  T getConfiguredDatabaseTaskInstance(Class databaseTaskType, Properties configuration, SQLHandler sqlHandler) {
        String databaseDialect = PropertyUtils.getString(PROPKEY_DATABASE_DIALECT, configuration);
        DatabaseAccessing instance = getInstanceOf(databaseTaskType, configuration, databaseDialect);
        instance.init(configuration, sqlHandler);
        return (T) instance;
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy