List of usage examples for org.springframework.jdbc.support.incrementer AbstractColumnMaxValueIncrementer setIncrementerName
public void setIncrementerName(String incrementerName)
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. *///from w w w .j a v a 2 s . co 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; }