
com.cmeza.sdgenerator.plugin.CommonsMojo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-data-generator Show documentation
Show all versions of spring-data-generator Show documentation
Spring Data Generator for JPA repositories and managers.
The newest version!
package com.cmeza.sdgenerator.plugin;
import com.cmeza.sdgenerator.util.*;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* Created by carlos on 01/05/17.
*/
public abstract class CommonsMojo extends AbstractMojo {
@Parameter(name = Constants.ENTITY_PACKAGE)
protected String[] entityPackage;
@Parameter(name = Constants.REPOSITORY_PACKAGE)
protected String repositoryPackage;
@Parameter(name = Constants.REPOSITORY_POSTFIX, defaultValue = "Repository")
protected String repositoryPostfix;
@Parameter(name = Constants.MAGANER_PACKAGE)
protected String managerPackage;
@Parameter(name = Constants.MANAGER_POSTFIX, defaultValue = "Manager")
protected String managerPostfix;
@Parameter(name = Constants.ONLY_ANNOTATIONS, defaultValue = "false")
protected Boolean onlyAnnotations;
@Parameter(name = Constants.OVERWRITE, defaultValue = "false")
protected Boolean overwrite;
@Parameter(name = Constants.LOMBOK_ANOTATIONS, defaultValue = "false")
protected Boolean lombokAnnotations;
@Parameter(name = Constants.WITH_COMMENTS, defaultValue = "true")
protected Boolean withComments;
@Parameter(name = Constants.WITH_JPASPECIFICATIONEXECUTOR, defaultValue = "true")
protected Boolean withJpaSpecificationExecutor;
@Parameter(name = Constants.EXTENDS)
protected String[] additionalExtends;
@Component
protected MavenProject project;
protected Set additionalExtendsList = new LinkedHashSet<>();
public void validateField(String parameter) throws SDMojoException {
boolean errorFound = Boolean.FALSE;
switch (parameter) {
case Constants.ENTITY_PACKAGE:
if (entityPackage == null) {
errorFound = Boolean.TRUE;
}
break;
case Constants.REPOSITORY_PACKAGE:
if (repositoryPackage == null) {
errorFound = Boolean.TRUE;
}
break;
case Constants.REPOSITORY_POSTFIX:
if (repositoryPostfix == null) {
errorFound = Boolean.TRUE;
}
break;
case Constants.MAGANER_PACKAGE:
if (managerPackage == null) {
errorFound = Boolean.TRUE;
}
break;
case Constants.MANAGER_POSTFIX:
if (managerPostfix == null) {
errorFound = Boolean.TRUE;
}
break;
case Constants.EXTENDS:
if (additionalExtends != null) {
this.validateExtends();
}
break;
default:
SDLogger.addError( String.format("%s configuration parameter not found!", parameter));
throw new SDMojoException();
}
if (errorFound) {
SDLogger.addError( String.format("%s configuration not found!", parameter));
throw new SDMojoException();
}
}
private void validateExtends() throws SDMojoException {
String extendTemporal;
boolean errorValidate = Boolean.FALSE;
for (int i = 0; i < additionalExtends.length; i++) {
extendTemporal = additionalExtends[i];
SDLogger.addAdditionalExtend(extendTemporal);
if (extendTemporal.contains(".")){
additionalExtendsList.add(extendTemporal);
} else {
errorValidate = Boolean.TRUE;
SDLogger.addError( String.format("'%s' is not a valid object!", extendTemporal));
}
}
if (errorValidate) {
throw new SDMojoException();
}
}
protected GeneratorProperties buildProperties() {
return GeneratorProperties.builder()
.entityPackage(entityPackage)
.repositoryPackage(repositoryPackage)
.repositoryPostfix(repositoryPostfix)
.managerPackage(managerPackage)
.managerPostfix(managerPostfix)
.onlyAnnotations(onlyAnnotations)
.overwrite(overwrite)
.lombokAnnotations(lombokAnnotations)
.withComments(withComments)
.withJpaSpecificationExecutor(withJpaSpecificationExecutor)
.additionalExtendsList(additionalExtendsList)
.project(project)
.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy