use of io.micronaut.starter.feature.database.DatabaseDriverFeature in project micronaut-starter by micronaut-projects.
the class CreateRepositoryCommand method call.
@Override
public Integer call() throws Exception {
Project project = getProject(repositoryName);
boolean jdbcRepository = config.getFeatures().contains("data-jdbc");
String idTypeImport = null;
if (idType.contains(".")) {
idTypeImport = idType;
} else if (!VALID_NO_PKG_ID_TYPES.contains(idType)) {
throw new IllegalArgumentException("Code generation not supported for the specified id type: " + idType + ". Please specify the fully qualified class name.");
}
TemplateRenderer templateRenderer = getTemplateRenderer(project);
String dialect = jdbcRepository ? config.getFeatures().stream().map(name -> {
for (DatabaseDriverFeature feature : driverFeatures) {
if (feature.getName().equals(name)) {
return feature;
}
}
return null;
}).filter(Objects::nonNull).findFirst().map(DatabaseDriverFeature::getDataDialect).orElse(null) : null;
RenderResult renderResult = null;
if (config.getSourceLanguage() == Language.JAVA) {
renderResult = templateRenderer.render(new RockerTemplate("src/main/java/{packagePath}/{className}Repository.java", javaRepository.template(project, idTypeImport, idType, jdbcRepository, dialect)), overwrite);
} else if (config.getSourceLanguage() == Language.GROOVY) {
renderResult = templateRenderer.render(new RockerTemplate("src/main/groovy/{packagePath}/{className}Repository.groovy", groovyRepository.template(project, idTypeImport, idType, jdbcRepository, dialect)), overwrite);
} else if (config.getSourceLanguage() == Language.KOTLIN) {
renderResult = templateRenderer.render(new RockerTemplate("src/main/kotlin/{packagePath}/{className}Repository.kt", kotlinRepository.template(project, idTypeImport, idType, jdbcRepository, dialect)), overwrite);
}
if (renderResult != null) {
if (renderResult.isSuccess()) {
out("@|blue ||@ Rendered repository to " + renderResult.getPath());
} else if (renderResult.isSkipped()) {
warning("Rendering skipped for " + renderResult.getPath() + " because it already exists. Run again with -f to overwrite.");
} else if (renderResult.getError() != null) {
throw renderResult.getError();
}
}
return 0;
}
Aggregations