Example usage for org.springframework.jdbc.support.incrementer AbstractColumnMaxValueIncrementer setColumnName

List of usage examples for org.springframework.jdbc.support.incrementer AbstractColumnMaxValueIncrementer setColumnName

Introduction

In this page you can find the example usage for org.springframework.jdbc.support.incrementer AbstractColumnMaxValueIncrementer setColumnName.

Prototype

public void setColumnName(String columnName) 

Source Link

Document

Set the name of the column in the sequence table.

Usage

From source file:org.kuali.rice.krad.data.platform.MaxValueIncrementerFactory.java

/**
 * Checks the config file for any references to
 * {@code rice.krad.data.platform.incrementer.(DATASOURCE, ex mysql, oracle).(VERSION optional)}.
 *
 * <p>If matching one found attempts to instantiate it to return back to factory for use.</p>
 *
 * @param platformInfo the {@link DatabasePlatformInfo}.
 * @param dataSource the {@link DataSource} for which to retrieve the incrementer.
 * @param incrementerName the name of the incrementer.
 * @param columnName the name of the column to increment.
 * @return a config set customized incrementer that matches and can be used to generate the next incremented value
 *         for the given incrementer against the specified {@link DataSource}
 * @throws InstantiationError if cannot instantiate passed in class.
 *//*ww  w .  j a  va  2  s  .  c  o  m*/
private static DataFieldMaxValueIncrementer getCustomizedIncrementer(DatabasePlatformInfo platformInfo,
        DataSource dataSource, String incrementerName, String columnName) {
    if (platformInfo == null) {
        throw new IllegalArgumentException("DataSource platform must not be null");
    }
    if (ConfigContext.getCurrentContextConfig() == null) {
        return null;
    }
    Map<String, String> incrementerPropToIncrementer = ConfigContext.getCurrentContextConfig()
            .getPropertiesWithPrefix(PLATFORM_INCREMENTER_PREFIX, true);
    String platformNameVersion = platformInfo.getName().toLowerCase() + "." + platformInfo.getMajorVersion();
    String incrementerClassName = "";

    if (incrementerPropToIncrementer.containsKey(platformNameVersion)) {
        incrementerClassName = incrementerPropToIncrementer.get(platformNameVersion);
    } else if (incrementerPropToIncrementer.containsKey(platformInfo.getName().toLowerCase())) {
        incrementerClassName = incrementerPropToIncrementer.get(platformInfo.getName().toLowerCase());
    }

    if (StringUtils.isNotBlank(incrementerClassName)) {
        try {
            Class incrementerClass = Class.forName(incrementerClassName);
            if (AbstractSequenceMaxValueIncrementer.class.isAssignableFrom(incrementerClass)) {
                AbstractSequenceMaxValueIncrementer abstractSequenceMaxValueIncrementer = (AbstractSequenceMaxValueIncrementer) incrementerClass
                        .newInstance();
                abstractSequenceMaxValueIncrementer.setDataSource(dataSource);
                abstractSequenceMaxValueIncrementer.setIncrementerName(incrementerName);
                return abstractSequenceMaxValueIncrementer;

            } else if (AbstractColumnMaxValueIncrementer.class.isAssignableFrom(incrementerClass)) {
                AbstractColumnMaxValueIncrementer abstractColumnMaxValueIncrementer = (AbstractColumnMaxValueIncrementer) incrementerClass
                        .newInstance();
                abstractColumnMaxValueIncrementer.setDataSource(dataSource);
                abstractColumnMaxValueIncrementer.setIncrementerName(incrementerName);
                abstractColumnMaxValueIncrementer.setColumnName(columnName);
                return abstractColumnMaxValueIncrementer;
            } else {
                throw new InstantiationError(
                        "Cannot create incrementer class " + incrementerClassName + " it has to extend "
                                + "AbstractSequenceMaxValueIncrementer or AbstractColumnMaxValueIncrementer");
            }
        } catch (Exception e) {
            throw new InstantiationError("Could not instantiate custom incrementer " + incrementerClassName);
        }
    }
    return null;
}