Source:
<code>public DataFieldMaxValueIncrementer getIncrementer(String incrementerType, String incrementerName) { DatabaseType databaseType = DatabaseType.valueOf(incrementerType.toUpperCase()); switch (databaseType) { case DB2: case DB2AS400: return new DB2SequenceMaxValueIncrementer(dataSource, incrementerName); case DB2ZOS: return new DB2MainframeSequenceMaxValueIncrementer(dataSource, incrementerName); case DERBY: return new DerbyMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); case H2: return new H2SequenceMaxValueIncrementer(dataSource, incrementerName); case HSQL: return new HsqlMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); case MYSQL: return new MySQLMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); case ORACLE: return new OracleSequenceMaxValueIncrementer(dataSource, incrementerName); case POSTGRES: return new PostgreSQLSequenceMaxValueIncrementer(dataSource, incrementerName); case SQLITE: return new SqliteMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); case SQLSERVER: return new SqlServerMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); case SYBASE: return new SybaseMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); <START> case DB2VSE: <END> default: throw new IllegalArgumentException(databaseType.name() + " was not on the approved list"); } }</code><technical_language>leave out if implementation work</technical_language>

Target:
public DataFieldMaxValueIncrementer getIncrementer(String incrementerType, String incrementerName) { DatabaseType databaseType = DatabaseType.valueOf(incrementerType.toUpperCase()); if (databaseType == DB2 || databaseType == DB2AS400) { return new DB2SequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == DB2ZOS) { return new DB2MainframeSequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == DERBY) { return new DerbyMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } else if (databaseType == HSQL) { return new HsqlMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } else if (databaseType == H2) { return new H2SequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == MYSQL) { DataFieldMaxValueIncrementer incr = new MySQLMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); Method m = ReflectionUtils.findMethod(incr.getClass(), "setUseNewConnection", boolean.class); if (m != null) { ReflectionUtils.makeAccessible(m); ReflectionUtils.invokeMethod(m, incr, true); } return incr; } else if (databaseType == ORACLE) { return new OracleSequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == POSTGRES) { return new PostgreSQLSequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == SQLITE) { return new SqliteMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } else if (databaseType == SQLSERVER) { return new SqlServerMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } else if (databaseType == SYBASE) { return new SybaseMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } throw new IllegalArgumentException("databaseType argument was not on the approved list"); }