Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ Or in Maven:
</plugin>
```

📋 **For a complete list of all available compiler arguments, see [`CompilerArgumentsEnum`](processor/src/main/java/org/javahelpers/simple/builders/processor/enums/CompilerArgumentsEnum.java).**
📋 **For a complete list of all available compiler arguments, see [`CompilerArgumentsEnum`](processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java).**

📖 **For complete documentation, examples, and all available options, see the [Configuration Guide](docs/CONFIGURATION.md).**

Expand Down
57 changes: 29 additions & 28 deletions docs/CUSTOMIZING.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,11 @@ A single generator can implement both field-level and builder-level functionalit
package com.yourpackage;

import org.javahelpers.simple.builders.processor.generators.MethodGenerator;
import org.javahelpers.simple.builders.processor.dtos.FieldDto;
import org.javahelpers.simple.builders.processor.dtos.MethodDto;
import org.javahelpers.simple.builders.processor.dtos.MethodParameterDto;
import org.javahelpers.simple.builders.processor.dtos.TypeName;
import org.javahelpers.simple.builders.processor.util.ProcessingContext;
import org.javahelpers.simple.builders.processor.model.core.FieldDto;
import org.javahelpers.simple.builders.processor.model.method.MethodDto;
import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

import java.util.List;

Expand Down Expand Up @@ -142,9 +142,9 @@ public class CustomValidationGenerator implements MethodGenerator {
package com.yourpackage;

import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer;
import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto;
import org.javahelpers.simple.builders.processor.dtos.TypeName;
import org.javahelpers.simple.builders.processor.util.ProcessingContext;
import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

public class CustomValidationEnhancer implements BuilderEnhancer {

Expand Down Expand Up @@ -261,31 +261,32 @@ compileJava {

| Generator | Purpose | Priority |
|-----------|---------|----------|
| [`BasicSetterGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BasicSetterGenerator.java) | Basic field setters | 100 |
| [`SupplierMethodGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SupplierMethodGenerator.java) | Supplier-based setters | 80 |
| [`FieldConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/FieldConsumerGenerator.java) | Consumer-based setters | 80 |
| [`BuilderConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java) | Builder consumer methods | 80 |
| [`MapConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MapConsumerGenerator.java) | Map consumer methods | 80 |
| [`ListConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ListConsumerGenerator.java) | List consumer methods | 80 |
| [`SetConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SetConsumerGenerator.java) | Set consumer methods | 80 |
| [`StringFormatHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringFormatHelperGenerator.java) | String.format helpers | 80 |
| [`VarArgsHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/VarArgsHelperGenerator.java) | Varargs helpers | 50 |
| [`AddToCollectionGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/AddToCollectionGenerator.java) | add2FieldName methods for List/Set | 30 |
| [`ArrayConversionGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayConversionGenerator.java) | Array-from-List conversion methods | 35 |
| [`ArrayBuilderConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayBuilderConsumerGenerator.java) | ArrayListBuilder consumer methods for arrays | 25 |
| [`BasicSetterGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java) | Basic field setters | 100 |
| [`OptionalHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/OptionalHelperGenerator.java) | Optional field helpers | 80 |
| [`FieldInstanceConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java) | Consumer-based setters | 80 |
| [`NestedBuilderConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java) | Builder consumer methods | 80 |
| [`MapConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java) | Map consumer methods | 80 |
| [`ListConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java) | List consumer methods | 80 |
| [`SetConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java) | Set consumer methods | 80 |
| [`StringFormatHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringFormatHelperGenerator.java) | String.format helpers | 80 |
| [`SupplierMethodGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SupplierMethodGenerator.java) | Supplier-based setters | 80 |
| [`VarArgsHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/VarArgsHelperGenerator.java) | Varargs helpers | 50 |
| [`AddToCollectionGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java) | add2FieldName methods for List/Set | 30 |
| [`ArrayConversionGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java) | Array-from-List conversion methods | 35 |
| [`ArrayBuilderConsumerGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java) | ArrayListBuilder consumer methods for arrays | 25 |

### Builder-Level Generators

| Generator | Purpose | Priority |
|----------|---------|----------|
| [`ConditionalEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ConditionalEnhancer.java) | Conditional logic methods | 100 |
| [`JacksonAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/JacksonAnnotationEnhancer.java) | Jackson annotations | 100 |
| [`CoreMethodsEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/CoreMethodsEnhancer.java) | Core builder methods (build, create, toString) | 100 |
| [`WithInterfaceEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/WithInterfaceEnhancer.java) | With interface implementation | 90 |
| [`InterfaceEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/InterfaceEnhancer.java) | Builder interface implementation | 90 |
| [`GeneratedAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratedAnnotationEnhancer.java) | @Generated annotation | 10 |
| [`BuilderImplementationAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderImplementationAnnotationEnhancer.java) | @BuilderImplementation annotation | 10 |
| [`ClassJavaDocEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ClassJavaDocEnhancer.java) | Class-level JavaDoc | 10 |
| [`ConditionalEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java) | Conditional logic methods | 100 |
| [`JacksonAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java) | Jackson annotations | 100 |
| [`CoreMethodsEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java) | Core builder methods (build, create, toString) | 100 |
| [`WithInterfaceEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java) | With interface implementation | 90 |
| [`InterfaceEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java) | Builder interface implementation | 90 |
| [`GeneratedAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java) | @Generated annotation | 10 |
| [`BuilderImplementationAnnotationEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java) | @BuilderImplementation annotation | 10 |
| [`ClassJavaDocEnhancer`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java) | Class-level JavaDoc | 10 |

## Best Practices

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@

import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.javahelpers.simple.builders.processor.dtos.FieldDto;
import org.javahelpers.simple.builders.processor.dtos.MethodDto;
import org.javahelpers.simple.builders.processor.dtos.TypeName;
import org.javahelpers.simple.builders.processor.model.core.FieldDto;
import org.javahelpers.simple.builders.processor.model.method.MethodDto;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.generators.MethodGenerator;
import org.javahelpers.simple.builders.processor.util.ProcessingContext;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

/**
* Custom generator that adds validation methods for String fields.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

package org.javahelpers.simple.builders.processor;

import static org.javahelpers.simple.builders.processor.util.BuilderDefinitionCreator.extractFromElement;
import static org.javahelpers.simple.builders.processor.processing.BuilderDefinitionCreator.extractFromElement;

import com.google.auto.service.AutoService;
import java.util.ArrayList;
Expand All @@ -42,16 +42,16 @@
import javax.lang.model.element.TypeElement;
import org.javahelpers.simple.builders.core.annotations.SimpleBuilder;
import org.javahelpers.simple.builders.core.annotations.SimpleBuilder.Template;
import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration;
import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto;
import org.javahelpers.simple.builders.processor.enums.CompilerArgumentsEnum;
import org.javahelpers.simple.builders.processor.classgen.javapoet.JavaCodeGenerator;
import org.javahelpers.simple.builders.processor.exceptions.BuilderException;
import org.javahelpers.simple.builders.processor.util.BuilderConfigurationReader;
import org.javahelpers.simple.builders.processor.util.CompilerArgumentsReader;
import org.javahelpers.simple.builders.processor.util.JacksonModuleGenerator;
import org.javahelpers.simple.builders.processor.util.JavaCodeGenerator;
import org.javahelpers.simple.builders.processor.util.ProcessingContext;
import org.javahelpers.simple.builders.processor.util.ProcessingLogger;
import org.javahelpers.simple.builders.processor.generators.integration.JacksonModuleGenerator;
import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration;
import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto;
import org.javahelpers.simple.builders.processor.processing.BuilderConfigurationReader;
import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsEnum;
import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsReader;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;
import org.javahelpers.simple.builders.processor.processing.ProcessingLogger;

/**
* BuilderProcessor is an annotation processor for execution in generate-sources phase. The
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* SOFTWARE.
*/

package org.javahelpers.simple.builders.processor.util;
package org.javahelpers.simple.builders.processor.analysis;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -35,8 +35,9 @@
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.DeclaredType;
import org.javahelpers.simple.builders.processor.dtos.AnnotationDto;
import org.javahelpers.simple.builders.processor.dtos.TypeName;
import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

/** Extractor for field annotations, converting them from Java model elements to DTOs. */
public final class FieldAnnotationExtractor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* SOFTWARE.
*/

package org.javahelpers.simple.builders.processor.util;
package org.javahelpers.simple.builders.processor.analysis;

import static javax.lang.model.element.Modifier.PRIVATE;
import static javax.lang.model.element.Modifier.STATIC;
Expand All @@ -42,6 +42,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.javahelpers.simple.builders.core.annotations.SimpleBuilderConstructor;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

/** Helperclass for extrating specific information from existing classes. */
public final class JavaLangAnalyser {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package org.javahelpers.simple.builders.processor.util;
package org.javahelpers.simple.builders.processor.analysis;

import static javax.lang.model.element.Modifier.DEFAULT;
import static javax.lang.model.element.Modifier.PROTECTED;
Expand All @@ -43,7 +43,18 @@
import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.TypeVariable;
import javax.lang.model.util.SimpleTypeVisitor14;
import org.javahelpers.simple.builders.processor.dtos.*;
import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto;
import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto;
import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.model.type.TypeNameArray;
import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric;
import org.javahelpers.simple.builders.processor.model.type.TypeNameList;
import org.javahelpers.simple.builders.processor.model.type.TypeNameMap;
import org.javahelpers.simple.builders.processor.model.type.TypeNamePrimitive;
import org.javahelpers.simple.builders.processor.model.type.TypeNameSet;
import org.javahelpers.simple.builders.processor.model.type.TypeNameVariable;
import org.javahelpers.simple.builders.processor.processing.ProcessingContext;

/** Helper functions to create simple builder types from java.lang types. */
public final class JavaLangMapper {
Expand Down Expand Up @@ -583,7 +594,7 @@
private static TypeName extractType(TypeMirror typeOfParameter, ProcessingContext context) {
TypeName typeName =
typeOfParameter.accept(
new SimpleTypeVisitor14<TypeName, Void>() {

Check warning on line 597 in processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

This class has 7 parents which is greater than 5 authorized.

See more on https://sonarcloud.io/project/issues?id=java-helpers_simple-builders&issues=AZzyc4F5P-CYkGMXuTGx&open=AZzyc4F5P-CYkGMXuTGx&pullRequest=136

@Override
public TypeName visitPrimitive(PrimitiveType t, Void p) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package org.javahelpers.simple.builders.processor.util;
package org.javahelpers.simple.builders.processor.analysis;

import org.apache.commons.lang3.Strings;
import org.javahelpers.simple.builders.processor.dtos.TypeName;
import org.javahelpers.simple.builders.processor.dtos.TypeNameGeneric;
import org.javahelpers.simple.builders.processor.model.type.TypeName;
import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric;

/** Helperclass to extract insights from TypeName. */
public class TypeNameAnalyser {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/**
* Package org.javahelpers.simple.builders.processor.analysis
*
* <p>Analysis components for the simple-builders processor.
*
* <p>This package contains classes that analyze and process source code elements, forming the
* foundation of the source code analysis pipeline. These components extract essential information
* from annotated DTOs for builder generation.
*
* <p>Key responsibilities include annotation extraction, Java language element analysis, type
* resolution, and mapping between source code structures and internal DTOs.
*/
package org.javahelpers.simple.builders.processor.analysis;
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
* SOFTWARE.
*/

package org.javahelpers.simple.builders.processor.util;
package org.javahelpers.simple.builders.processor.classgen.javapoet;

import static javax.lang.model.element.Modifier.PUBLIC;
import static org.javahelpers.simple.builders.processor.util.JavapoetMapper.*;
import static org.javahelpers.simple.builders.processor.classgen.javapoet.JavapoetMapper.*;

import com.palantir.javapoet.AnnotationSpec;
import com.palantir.javapoet.ClassName;
Expand All @@ -46,8 +46,18 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.javahelpers.simple.builders.core.util.TrackedValue;
import org.javahelpers.simple.builders.processor.dtos.*;
import org.javahelpers.simple.builders.processor.exceptions.BuilderException;
import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto;
import org.javahelpers.simple.builders.processor.model.annotation.InterfaceName;
import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto;
import org.javahelpers.simple.builders.processor.model.core.FieldDto;
import org.javahelpers.simple.builders.processor.model.integration.JacksonModuleDefinitionDto;
import org.javahelpers.simple.builders.processor.model.integration.JacksonModuleEntryDto;
import org.javahelpers.simple.builders.processor.model.method.MethodDto;
import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto;
import org.javahelpers.simple.builders.processor.model.type.NestedTypeDto;
import org.javahelpers.simple.builders.processor.model.type.TypeNameArray;
import org.javahelpers.simple.builders.processor.processing.ProcessingLogger;

/** JavaCodeGenerator generates with BuilderDefinitionDto JavaCode for the builder. */
public class JavaCodeGenerator {
Expand Down
Loading
Loading