jdbc.setUrl(properties.getProperty("jdbc.URL"));
jdbc.setUser(properties.getProperty("jdbc.User"));
jdbc.setPassword(properties.getProperty("jdbc.Password"));
jdbc.setSchema(properties.getProperty("jdbc.Schema"));
Strategy strategy = new Strategy();
strategy.setName(properties.containsKey("generator.strategy") ? properties.getProperty("generator.strategy") : null);
List<MasterDataTable> masterDataTables = new ArrayList<MasterDataTable>();
for (String name : defaultString(properties.getProperty("generator.generate.master-data-tables")).split(",")) {
if (isBlank(name)) continue;
MasterDataTable table = new MasterDataTable();
table.setName(name);
table.setLiteral(properties.getProperty("generator.generate.master-data-table-literal." + name));
table.setDescription(properties.getProperty("generator.generate.master-data-table-description." + name));
masterDataTables.add(table);
}
List<EnumType> enumTypes = new ArrayList<EnumType>();
for (String property : properties.stringPropertyNames()) {
if (property.startsWith("generator.database.enum-type.")) {
String name = property.replace("generator.database.enum-type.", "");
EnumType type = new EnumType();
type.setName(name);
type.setLiterals(properties.getProperty(property));
enumTypes.add(type);
}
}
List<ForcedType> forcedTypes = new ArrayList<ForcedType>();
for (String property : properties.stringPropertyNames()) {
if (property.startsWith("generator.database.forced-type.")) {
String name = property.replace("generator.database.forced-type.", "");
ForcedType type = new ForcedType();
type.setName(name);
type.setExpressions(properties.getProperty(property));
forcedTypes.add(type);
}
}
org.jooq.util.jaxb.Database database = new org.jooq.util.jaxb.Database();
database.setName(properties.getProperty("generator.database"));
database.setIncludes(properties.containsKey("generator.database.includes") ? properties.getProperty("generator.database.includes") : null);
database.setExcludes(properties.containsKey("generator.database.excludes") ? properties.getProperty("generator.database.excludes") : null);
database.setDateAsTimestamp("true".equalsIgnoreCase(properties.getProperty("generator.database.date-as-timestamp")));
database.setUnsignedTypes(!"false".equalsIgnoreCase(properties.getProperty("generator.generate.unsigned-types")));
database.setInputSchema(properties.containsKey("generator.database.input-schema") ? properties.getProperty("generator.database.input-schema") : null);
database.setOutputSchema(properties.containsKey("generator.database.output-schema") ? properties.getProperty("generator.database.output-schema") : null);
// Avoid creating these empty elements when migrating
if (!masterDataTables.isEmpty())
database.getMasterDataTables().addAll(masterDataTables);
if (!enumTypes.isEmpty())
database.getEnumTypes().addAll(enumTypes);
if (!forcedTypes.isEmpty())
database.getForcedTypes().addAll(forcedTypes);
Target target = new Target();
target.setPackageName(properties.getProperty("generator.target.package"));
target.setDirectory(properties.getProperty("generator.target.directory"));
Generate generate = new Generate();
generate.setRelations("true".equalsIgnoreCase(properties.getProperty("generator.generate.relations")));
generate.setDeprecated(!"false".equalsIgnoreCase(properties.getProperty("generator.generate.deprecated")));
generate.setInstanceFields(!"false".equalsIgnoreCase(properties.getProperty("generator.generate.instance-fields")));
generate.setGeneratedAnnotation(!"false".equalsIgnoreCase(properties.getProperty("generator.generate.generated-annotation")));
generate.setPojos("true".equalsIgnoreCase(properties.getProperty("generator.generate.pojos")));
generate.setRecords(!"false".equalsIgnoreCase(properties.getProperty("generator.generate.records")));
generate.setJpaAnnotations("true".equalsIgnoreCase(properties.getProperty("generator.generate.jpa-annotations")));
org.jooq.util.jaxb.Generator generator = new org.jooq.util.jaxb.Generator();
if (!isBlank(strategy.getName()))
generator.setStrategy(strategy);
generator.setDatabase(database);
generator.setTarget(target);
generator.setGenerate(generate);