From b80054bed6b4c730f184e6330eab6834cff773ad Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 12:44:53 +0100 Subject: [PATCH 01/11] Adding script for migration of filestructure --- git-mv-script.sh | 93 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 git-mv-script.sh diff --git a/git-mv-script.sh b/git-mv-script.sh new file mode 100755 index 00000000..e105162a --- /dev/null +++ b/git-mv-script.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +# Script to properly move files using git mv to preserve history +# This script should be executed from the project root directory + +echo "Starting git mv operations to preserve file history..." + +# Move model classes from dtos to model subpackages +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderConfiguration.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderDefinitionDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/FieldDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodParameterDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodePlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeStringPlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeTypePlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeName.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameArray.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameCollection.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameGeneric.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameList.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameMap.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNamePrimitive.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameSet.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameVariable.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/GenericParameterDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/NestedTypeDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleDefinitionDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleEntryDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/AnnotationDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/InterfaceName.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/" + +# Move generator classes to subpackages +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BasicSetterGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/FieldConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ListConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MapConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SetConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringBuilderConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/AddToCollectionGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayConversionGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayBuilderConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGeneratorUtil.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringFormatHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/OptionalHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SupplierMethodGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/VarArgsHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratedAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderImplementationAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/JacksonAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/InterfaceEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ClassJavaDocEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/CoreMethodsEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/WithInterfaceEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ConditionalEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" + +# Move util classes to appropriate packages +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderConfigurationReader.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderDefinitionCreator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/CompilerArgumentsReader.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingContext.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingLogger.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangAnalyser.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangMapper.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/FieldAnnotationExtractor.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/TypeNameAnalyser.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/AnnotationValidator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/validation/" + +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaCodeGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" + +# Move exceptions +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/JavapoetMapperException.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" + +# Move enums +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/enums/CompilerArgumentsEnum.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" + +# Move ComponentFilter to generators package +git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ComponentFilter.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/" + +echo "All git mv operations completed!" +echo "Now you can commit these changes to preserve the file history." From b8d139b46167b6ae4d00662966baef2a26c64a72 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 12:46:24 +0100 Subject: [PATCH 02/11] Moving files to new project structure --- git-mv-script.sh | 16 +++++++++++++ .../FieldAnnotationExtractor.java | 0 .../{util => analysis}/JavaLangAnalyser.java | 0 .../{util => analysis}/JavaLangMapper.java | 0 .../{util => analysis}/TypeNameAnalyser.java | 0 .../javapoet}/BuilderException.java | 0 .../javapoet}/JavaCodeGenerator.java | 0 .../javapoet}/JavapoetMapper.java | 0 .../javapoet}/JavapoetMapperException.java | 0 .../classgen/javapoet/package-info.java | 19 +++++++++++++++ .../processor/generators/BuilderEnhancer.java | 9 +++---- .../{util => generators}/ComponentFilter.java | 0 ...ilderImplementationAnnotationEnhancer.java | 0 .../{ => builder}/ClassJavaDocEnhancer.java | 0 .../{ => builder}/ConditionalEnhancer.java | 0 .../{ => builder}/CoreMethodsEnhancer.java | 0 .../GeneratedAnnotationEnhancer.java | 0 .../{ => builder}/InterfaceEnhancer.java | 0 .../JacksonAnnotationEnhancer.java | 0 .../{ => builder}/WithInterfaceEnhancer.java | 0 .../{ => field}/AddToCollectionGenerator.java | 0 .../ArrayBuilderConsumerGenerator.java | 0 .../{ => field}/ArrayConversionGenerator.java | 0 .../{ => field}/BasicSetterGenerator.java | 0 .../{ => field}/FieldConsumerGenerator.java | 0 .../{ => field}/ListConsumerGenerator.java | 0 .../{ => field}/MapConsumerGenerator.java | 0 .../{ => field}/MethodGeneratorUtil.java | 0 .../{ => field}/SetConsumerGenerator.java | 0 .../StringBuilderConsumerGenerator.java | 0 .../{ => helper}/OptionalHelperGenerator.java | 0 .../StringFormatHelperGenerator.java | 0 .../{ => helper}/SupplierMethodGenerator.java | 0 .../{ => helper}/VarArgsHelperGenerator.java | 0 .../processor/generators/package-info.java | 24 +++++++++++++++++++ .../annotation}/AnnotationDto.java | 0 .../annotation}/InterfaceName.java | 0 .../core}/BuilderConfiguration.java | 0 .../core}/BuilderDefinitionDto.java | 0 .../{dtos => model/core}/FieldDto.java | 0 .../processor/model/core/package-info.java | 18 ++++++++++++++ .../JacksonModuleDefinitionDto.java | 0 .../integration}/JacksonModuleEntryDto.java | 0 .../{dtos => model/method}/MethodCodeDto.java | 0 .../method}/MethodCodePlaceholder.java | 0 .../method}/MethodCodeStringPlaceholder.java | 0 .../method}/MethodCodeTypePlaceholder.java | 0 .../{dtos => model/method}/MethodDto.java | 0 .../method}/MethodParameterDto.java | 0 .../type}/GenericParameterDto.java | 0 .../{dtos => model/type}/NestedTypeDto.java | 0 .../{dtos => model/type}/TypeName.java | 0 .../{dtos => model/type}/TypeNameArray.java | 0 .../type}/TypeNameCollection.java | 0 .../{dtos => model/type}/TypeNameGeneric.java | 0 .../{dtos => model/type}/TypeNameList.java | 0 .../{dtos => model/type}/TypeNameMap.java | 0 .../type}/TypeNamePrimitive.java | 0 .../{dtos => model/type}/TypeNameSet.java | 0 .../type}/TypeNameVariable.java | 0 .../BuilderConfigurationReader.java | 0 .../BuilderDefinitionCreator.java | 0 .../CompilerArgumentsEnum.java | 0 .../CompilerArgumentsReader.java | 0 .../ProcessingContext.java | 0 .../ProcessingLogger.java | 0 .../AnnotationValidator.java | 0 67 files changed, 82 insertions(+), 4 deletions(-) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => analysis}/FieldAnnotationExtractor.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => analysis}/JavaLangAnalyser.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => analysis}/JavaLangMapper.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => analysis}/TypeNameAnalyser.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{exceptions => classgen/javapoet}/BuilderException.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => classgen/javapoet}/JavaCodeGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => classgen/javapoet}/JavapoetMapper.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{exceptions => classgen/javapoet}/JavapoetMapperException.java (100%) create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => generators}/ComponentFilter.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/BuilderImplementationAnnotationEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/ClassJavaDocEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/ConditionalEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/CoreMethodsEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/GeneratedAnnotationEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/InterfaceEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/JacksonAnnotationEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => builder}/WithInterfaceEnhancer.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/AddToCollectionGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/ArrayBuilderConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/ArrayConversionGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/BasicSetterGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/FieldConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/ListConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/MapConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/MethodGeneratorUtil.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/SetConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => field}/StringBuilderConsumerGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => helper}/OptionalHelperGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => helper}/StringFormatHelperGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => helper}/SupplierMethodGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => helper}/VarArgsHelperGenerator.java (100%) create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/annotation}/AnnotationDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/annotation}/InterfaceName.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/core}/BuilderConfiguration.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/core}/BuilderDefinitionDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/core}/FieldDto.java (100%) create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/package-info.java rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/integration}/JacksonModuleDefinitionDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/integration}/JacksonModuleEntryDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodCodeDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodCodePlaceholder.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodCodeStringPlaceholder.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodCodeTypePlaceholder.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/method}/MethodParameterDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/GenericParameterDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/NestedTypeDto.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeName.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameArray.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameCollection.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameGeneric.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameList.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameMap.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNamePrimitive.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameSet.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{dtos => model/type}/TypeNameVariable.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => processing}/BuilderConfigurationReader.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => processing}/BuilderDefinitionCreator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{enums => processing}/CompilerArgumentsEnum.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => processing}/CompilerArgumentsReader.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => processing}/ProcessingContext.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => processing}/ProcessingLogger.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => validation}/AnnotationValidator.java (100%) diff --git a/git-mv-script.sh b/git-mv-script.sh index e105162a..e0df00ea 100755 --- a/git-mv-script.sh +++ b/git-mv-script.sh @@ -5,6 +5,22 @@ echo "Starting git mv operations to preserve file history..." +# Create destination directories first +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/processing" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/validation" +mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet" + +echo "Created destination directories" + # Move model classes from dtos to model subpackages git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderConfiguration.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderDefinitionDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/FieldAnnotationExtractor.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/FieldAnnotationExtractor.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangAnalyser.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangAnalyser.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangMapper.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/TypeNameAnalyser.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/TypeNameAnalyser.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaCodeGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaCodeGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/JavapoetMapperException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/JavapoetMapperException.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java new file mode 100644 index 00000000..30dc4d1a --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java @@ -0,0 +1,19 @@ +/** + * Package org.javahelpers.simple.builders.processor.classgen.javapoet + * + *

JavaPoet-based code generation infrastructure for simple-builders. + * + *

This package contains the code generation components that use JavaPoet to generate Java source + * code from the builder definition DTOs: + * + *

+ * + *

This package isolates JavaPoet-specific code, making it easier to replace the code generation + * library in the future if needed. + */ +package org.javahelpers.simple.builders.processor.classgen.javapoet; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java index b4b5aea2..05ca663f 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java @@ -21,11 +21,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; -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.generators.Generator; +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; /** * Interface for enhancing or modifying generated builders beyond the basic field-based methods. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ComponentFilter.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/ComponentFilter.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderImplementationAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderImplementationAnnotationEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ClassJavaDocEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ClassJavaDocEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ConditionalEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ConditionalEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/CoreMethodsEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/CoreMethodsEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratedAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratedAnnotationEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/InterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/InterfaceEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/JacksonAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/JacksonAnnotationEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/WithInterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/WithInterfaceEnhancer.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/AddToCollectionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/AddToCollectionGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayBuilderConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayConversionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayConversionGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BasicSetterGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BasicSetterGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/FieldConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/FieldConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ListConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ListConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MapConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MapConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGeneratorUtil.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGeneratorUtil.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SetConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SetConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringBuilderConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/OptionalHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/OptionalHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringFormatHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringFormatHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SupplierMethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SupplierMethodGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/VarArgsHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/VarArgsHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java new file mode 100644 index 00000000..ef39c85d --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java @@ -0,0 +1,24 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators + * + *

Generator framework for the simple-builders processor. + * + *

This package contains the core generator interfaces and registry: + * + *

+ * + *

Generators are organized into subpackages by their scope: + * + *

+ */ +package org.javahelpers.simple.builders.processor.generators; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/AnnotationDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/AnnotationDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/InterfaceName.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/InterfaceName.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderConfiguration.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderConfiguration.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderDefinitionDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderDefinitionDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/FieldDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/FieldDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/package-info.java new file mode 100644 index 00000000..b8aa49e2 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/package-info.java @@ -0,0 +1,18 @@ +/** + * Package org.javahelpers.simple.builders.processor.model.core + * + *

Core model classes for the simple-builders processor. + * + *

This package contains the fundamental data transfer objects (DTOs) that represent the main + * building blocks of the builder generation process: + * + *

+ * + *

These classes form the core data model that flows through the entire processor pipeline from + * analysis to code generation. + */ +package org.javahelpers.simple.builders.processor.model.core; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleDefinitionDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleDefinitionDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleEntryDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleEntryDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodePlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodePlaceholder.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeStringPlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeStringPlaceholder.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeTypePlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeTypePlaceholder.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodParameterDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodParameterDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/GenericParameterDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/GenericParameterDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/NestedTypeDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/NestedTypeDto.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeName.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeName.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameArray.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameArray.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameCollection.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameCollection.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameGeneric.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameGeneric.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameList.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameList.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameMap.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameMap.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNamePrimitive.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNamePrimitive.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameSet.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameSet.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameVariable.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameVariable.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderConfigurationReader.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderConfigurationReader.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderDefinitionCreator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/enums/CompilerArgumentsEnum.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/enums/CompilerArgumentsEnum.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/CompilerArgumentsReader.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/CompilerArgumentsReader.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingContext.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingContext.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingLogger.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingLogger.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/AnnotationValidator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/AnnotationValidator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java From 519d4f9aed7f1659018fc5e844280e292a047d8a Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 15:14:37 +0100 Subject: [PATCH 03/11] Updating Imports because of package restructure --- .../custom/StringValidationGenerator.java | 8 +- .../builders/processor/BuilderProcessor.java | 20 ++-- .../analysis/FieldAnnotationExtractor.java | 7 +- .../processor/analysis/JavaLangAnalyser.java | 3 +- .../processor/analysis/JavaLangMapper.java | 15 ++- .../processor/analysis/TypeNameAnalyser.java | 6 +- .../classgen/javapoet/BuilderException.java | 2 +- .../classgen/javapoet/JavaCodeGenerator.java | 17 ++- .../classgen/javapoet/JavapoetMapper.java | 30 +++-- .../javapoet/JavapoetMapperException.java | 2 +- .../generators/BuilderConsumerGenerator.java | 7 +- .../processor/generators/BuilderEnhancer.java | 3 +- .../processor/generators/ComponentFilter.java | 5 +- .../generators/GeneratorRegistry.java | 11 +- .../processor/generators/MethodGenerator.java | 8 +- ...ilderImplementationAnnotationEnhancer.java | 13 +- .../builder/ClassJavaDocEnhancer.java | 9 +- .../builder/ConditionalEnhancer.java | 18 +-- .../builder/CoreMethodsEnhancer.java | 35 +++--- .../builder/GeneratedAnnotationEnhancer.java | 13 +- .../generators/builder/InterfaceEnhancer.java | 12 +- .../builder/JacksonAnnotationEnhancer.java | 11 +- .../builder/WithInterfaceEnhancer.java | 22 ++-- .../field/AddToCollectionGenerator.java | 14 ++- .../field/ArrayBuilderConsumerGenerator.java | 16 ++- .../field/ArrayConversionGenerator.java | 16 ++- .../field/BasicSetterGenerator.java | 11 +- .../field/FieldConsumerGenerator.java | 14 ++- .../field/ListConsumerGenerator.java | 14 ++- .../field/MapConsumerGenerator.java | 15 ++- .../generators/field/MethodGeneratorUtil.java | 19 ++- .../field/SetConsumerGenerator.java | 13 +- .../field/StringBuilderConsumerGenerator.java | 18 ++- .../helper/OptionalHelperGenerator.java | 13 +- .../helper/StringFormatHelperGenerator.java | 21 ++-- .../helper/SupplierMethodGenerator.java | 19 +-- .../helper/VarArgsHelperGenerator.java | 15 ++- .../model/annotation/AnnotationDto.java | 3 +- .../model/annotation/InterfaceName.java | 3 +- .../model/core/BuilderConfiguration.java | 2 +- .../model/core/BuilderDefinitionDto.java | 8 +- .../processor/model/core/FieldDto.java | 6 +- .../JacksonModuleDefinitionDto.java | 2 +- .../integration/JacksonModuleEntryDto.java | 4 +- .../processor/model/method/MethodCodeDto.java | 3 +- .../model/method/MethodCodePlaceholder.java | 2 +- .../method/MethodCodeStringPlaceholder.java | 2 +- .../method/MethodCodeTypePlaceholder.java | 4 +- .../processor/model/method/MethodDto.java | 8 +- .../model/method/MethodParameterDto.java | 4 +- .../model/type/GenericParameterDto.java | 2 +- .../processor/model/type/NestedTypeDto.java | 3 +- .../processor/model/type/TypeName.java | 3 +- .../processor/model/type/TypeNameArray.java | 2 +- .../model/type/TypeNameCollection.java | 2 +- .../processor/model/type/TypeNameGeneric.java | 2 +- .../processor/model/type/TypeNameList.java | 2 +- .../processor/model/type/TypeNameMap.java | 2 +- .../model/type/TypeNamePrimitive.java | 2 +- .../processor/model/type/TypeNameSet.java | 2 +- .../model/type/TypeNameVariable.java | 2 +- .../BuilderConfigurationReader.java | 6 +- .../processing/BuilderDefinitionCreator.java | 22 ++-- .../processing/CompilerArgumentsEnum.java | 2 +- .../processing/CompilerArgumentsReader.java | 5 +- .../processing/ProcessingContext.java | 6 +- .../processing/ProcessingLogger.java | 3 +- .../util/JacksonModuleGenerator.java | 9 +- .../validation/AnnotationValidator.java | 4 +- ...le.builders.processor.generators.Generator | 42 +++---- .../CompilerArgumentsReaderTest.java | 6 +- .../ConfigurationProcessingTest.java | 2 +- .../CustomizingDocumentationTest.java | 111 ++++++++++-------- .../processor/JavaLangAnalyserTest.java | 2 +- 74 files changed, 474 insertions(+), 316 deletions(-) diff --git a/example-custom-generator/src/main/java/org/javahelpers/simple/builders/example/custom/StringValidationGenerator.java b/example-custom-generator/src/main/java/org/javahelpers/simple/builders/example/custom/StringValidationGenerator.java index cd9fdb34..2e523ec7 100644 --- a/example-custom-generator/src/main/java/org/javahelpers/simple/builders/example/custom/StringValidationGenerator.java +++ b/example-custom-generator/src/main/java/org/javahelpers/simple/builders/example/custom/StringValidationGenerator.java @@ -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. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java index 3bb117f4..0c11812a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java @@ -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; @@ -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.exceptions.BuilderException; -import org.javahelpers.simple.builders.processor.util.BuilderConfigurationReader; -import org.javahelpers.simple.builders.processor.util.CompilerArgumentsReader; +import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.classgen.javapoet.JavaCodeGenerator; +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; 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; /** * BuilderProcessor is an annotation processor for execution in generate-sources phase. The diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java index d28a9e81..82904bf8 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/FieldAnnotationExtractor.java @@ -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; @@ -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 { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java index 9435de77..56a30ce6 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangAnalyser.java @@ -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; @@ -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 { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java index 36187c8d..346ce59e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java @@ -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; @@ -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 { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java index 167f12a6..c8106828 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/TypeNameAnalyser.java @@ -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 { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java index 87f48b88..2813acc2 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.exceptions; +package org.javahelpers.simple.builders.processor.classgen.javapoet; import javax.lang.model.element.Element; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java index 6b2a0ed5..7585c2b7 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java @@ -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; @@ -46,8 +46,17 @@ 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 { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java index dd5339e9..6c1b031c 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.classgen.javapoet; import com.palantir.javapoet.AnnotationSpec; import com.palantir.javapoet.ArrayTypeName; @@ -38,8 +38,15 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.javahelpers.simple.builders.core.enums.AccessModifier; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.exceptions.JavapoetMapperException; +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.method.MethodCodePlaceholder; +import org.javahelpers.simple.builders.processor.model.method.MethodCodeStringPlaceholder; +import org.javahelpers.simple.builders.processor.model.method.MethodCodeTypePlaceholder; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; +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.TypeNamePrimitive; /** Helper functions to create JavaPoet types from DTOs of simple builder. */ public final class JavapoetMapper { @@ -54,9 +61,9 @@ private JavapoetMapper() {} * @return array of JavaPoet TypeName instances */ public static TypeName[] map2TypeArgumentsArray( - List typeArguments) { + List typeArguments) { java.util.List args = new java.util.ArrayList<>(typeArguments.size()); - for (org.javahelpers.simple.builders.processor.dtos.TypeName tn : typeArguments) { + for (org.javahelpers.simple.builders.processor.model.type.TypeName tn : typeArguments) { TypeName mapped = map2ParameterType(tn); if (mapped.isPrimitive()) { mapped = mapped.box(); @@ -73,10 +80,11 @@ public static TypeName[] map2TypeArgumentsArray( * @return javapoet TypeName */ public static TypeName map2ParameterType( - org.javahelpers.simple.builders.processor.dtos.TypeName parameterType) { + org.javahelpers.simple.builders.processor.model.type.TypeName parameterType) { TypeName typeName; if (parameterType - instanceof org.javahelpers.simple.builders.processor.dtos.TypeNameVariable typeVariable) { + instanceof + org.javahelpers.simple.builders.processor.model.type.TypeNameVariable typeVariable) { typeName = TypeVariableName.get(typeVariable.getClassName()); } else if (parameterType instanceof TypeNamePrimitive parameterTypePrim) { typeName = mapPrimitive(parameterTypePrim); @@ -124,7 +132,7 @@ private static TypeName mapGeneric(TypeNameGeneric param) { * @return javapoet TypeName */ public static ClassName map2ClassName( - org.javahelpers.simple.builders.processor.dtos.TypeName typeName) { + org.javahelpers.simple.builders.processor.model.type.TypeName typeName) { if (StringUtils.isNoneEmpty(typeName.getPackageName())) { return ClassName.get(typeName.getPackageName(), typeName.getClassName()); } else { @@ -140,7 +148,7 @@ public static ClassName map2ClassName( * @return a ParameterizedTypeName with the given type parameters */ public static ParameterizedTypeName map2ParameterizedTypeName( - org.javahelpers.simple.builders.processor.dtos.TypeName baseType, + org.javahelpers.simple.builders.processor.model.type.TypeName baseType, List builderGenerics) { ClassName baseTypeClassName = map2ClassName(baseType); return ParameterizedTypeName.get( @@ -158,7 +166,7 @@ public static List map2TypeVariables( List javapoetGenerics = new ArrayList<>(); for (GenericParameterDto g : builderGenerics) { List bounds = new ArrayList<>(); - for (org.javahelpers.simple.builders.processor.dtos.TypeName b : g.getUpperBounds()) { + for (org.javahelpers.simple.builders.processor.model.type.TypeName b : g.getUpperBounds()) { bounds.add(map2ParameterType(b)); } TypeVariableName tv = @@ -177,7 +185,7 @@ public static List map2TypeVariables( * @return {@code CodeBlock} of javapoet */ public static CodeBlock map2CodeBlock( - org.javahelpers.simple.builders.processor.dtos.MethodCodeDto codeDto) { + org.javahelpers.simple.builders.processor.model.method.MethodCodeDto codeDto) { Map arguments = codeDto.getCodeArguments().stream() .collect( diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java index 200451c6..254d8a49 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.exceptions; +package org.javahelpers.simple.builders.processor.classgen.javapoet; /** Special exception for errors in mapping to Javapoet classes. */ public class JavapoetMapperException extends RuntimeException { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java index d5bc9f01..bae89dd3 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java @@ -28,8 +28,11 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +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.processing.ProcessingContext; /** * Generates Consumer-based methods for fields whose type has a @SimpleBuilder annotation. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java index 05ca663f..70c0e106 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java @@ -21,9 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.builder; +package org.javahelpers.simple.builders.processor.generators; -import org.javahelpers.simple.builders.processor.generators.Generator; 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; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java index b9de3d73..05a831d9 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.generators; import java.util.Arrays; import java.util.HashSet; @@ -30,7 +30,8 @@ import java.util.stream.Collectors; import javax.annotation.processing.ProcessingEnvironment; import org.apache.commons.lang3.StringUtils; -import org.javahelpers.simple.builders.processor.enums.CompilerArgumentsEnum; +import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsEnum; +import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsReader; /** * Utility class for filtering generators and enhancers based on deactivation patterns. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java index d7417a26..a268481e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java @@ -30,12 +30,11 @@ import java.util.ServiceLoader; import javax.annotation.processing.ProcessingEnvironment; import org.apache.commons.collections4.CollectionUtils; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -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.util.ComponentFilter; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +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.method.MethodDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Unified registry that manages all generators (both method generators and builder enhancers). diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGenerator.java index 0c87e793..c6e90652 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGenerator.java @@ -25,10 +25,10 @@ package org.javahelpers.simple.builders.processor.generators; import java.util.List; -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.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.type.TypeName; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Service Provider Interface (SPI) for generating builder methods for fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java index 5f6965aa..8ba61843 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/BuilderImplementationAnnotationEnhancer.java @@ -21,14 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; import org.javahelpers.simple.builders.core.annotations.BuilderImplementation; -import org.javahelpers.simple.builders.processor.dtos.AnnotationDto; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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; /** * Enhancer that adds the @BuilderImplementation annotation to generated builder classes. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java index d84d8ea4..19b0f510 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ClassJavaDocEnhancer.java @@ -22,13 +22,14 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; import com.palantir.javapoet.ClassName; import com.palantir.javapoet.CodeBlock; -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.generators.BuilderEnhancer; +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; /** * Enhancer that adds class-level JavaDoc to generated builder classes. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java index 16b7eb64..4cd90624 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java @@ -21,15 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; import java.util.function.BooleanSupplier; import javax.lang.model.element.Modifier; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.MethodDto; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; +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; /** * Enhancer that adds conditional methods to generated builders. @@ -189,8 +192,7 @@ private void addConditionalPositiveOnlyParameters(MethodDto method, TypeName bui /** Adds a parameter to the method. */ private void addParameter(MethodDto method, String name, TypeName type) { - org.javahelpers.simple.builders.processor.dtos.MethodParameterDto parameter = - new org.javahelpers.simple.builders.processor.dtos.MethodParameterDto(); + MethodParameterDto parameter = new MethodParameterDto(); parameter.setParameterName(name); parameter.setParameterTypeName(type); method.addParameter(parameter); diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java index dbbdb338..c2328c96 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java @@ -21,19 +21,21 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; import java.util.ArrayList; import java.util.List; import javax.lang.model.element.Modifier; -import org.javahelpers.simple.builders.processor.dtos.AnnotationDto; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.FieldDto; -import org.javahelpers.simple.builders.processor.dtos.GenericParameterDto; -import org.javahelpers.simple.builders.processor.dtos.MethodDto; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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.method.MethodDto; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Enhancer that adds core builder methods (build, create, toString). @@ -121,8 +123,7 @@ protected MethodDto createBuildMethod(BuilderDefinitionDto builderDto) { // Add @Override annotation only if implementing IBuilderBase interface if (builderDto.getConfiguration().shouldImplementBuilderBase()) { - org.javahelpers.simple.builders.processor.dtos.AnnotationDto overrideAnnotation = - new org.javahelpers.simple.builders.processor.dtos.AnnotationDto(); + AnnotationDto overrideAnnotation = new AnnotationDto(); overrideAnnotation.setAnnotationType(JavaLangMapper.map2TypeName(Override.class)); method.addAnnotation(overrideAnnotation); } @@ -237,10 +238,7 @@ protected MethodDto createStaticCreateMethod(BuilderDefinitionDto builderDto) { /** Creates the toString() method. */ protected MethodDto createToStringMethod(BuilderDefinitionDto builderDto) { - MethodDto method = - new MethodDto( - "toString", - new org.javahelpers.simple.builders.processor.dtos.TypeName("java.lang", "String")); + MethodDto method = new MethodDto("toString", new TypeName("java.lang", "String")); method.setOrdering(ORDERING_TO_STRING); method.setPriority(MethodDto.PRIORITY_HIGHEST); method.setModifier(Modifier.PUBLIC); @@ -256,13 +254,10 @@ protected MethodDto createToStringMethod(BuilderDefinitionDto builderDto) { // Add template arguments for code generation method.addArgument( - "toStringBuilder", - new org.javahelpers.simple.builders.processor.dtos.TypeName( - "org.apache.commons.lang3.builder", "ToStringBuilder")); + "toStringBuilder", new TypeName("org.apache.commons.lang3.builder", "ToStringBuilder")); method.addArgument( "toStringStyle", - new org.javahelpers.simple.builders.processor.dtos.TypeName( - "org.javahelpers.simple.builders.core.util", "BuilderToStringStyle")); + new TypeName("org.javahelpers.simple.builders.core.util", "BuilderToStringStyle")); method.setJavadoc( """ diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java index 3af7530d..d8fe379a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/GeneratedAnnotationEnhancer.java @@ -21,14 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; import javax.annotation.processing.Generated; -import org.javahelpers.simple.builders.processor.dtos.AnnotationDto; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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; /** * Enhancer that adds the @Generated annotation to generated builder classes. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java index 2d8df22d..0059d09b 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java @@ -21,12 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.InterfaceName; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +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.type.TypeName; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Enhancer that adds the IBuilderBase interface to generated builder classes. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java index 06a3a155..8cf7b8dd 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/JacksonAnnotationEnhancer.java @@ -21,12 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.builder; -import org.javahelpers.simple.builders.processor.dtos.AnnotationDto; -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.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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; /** * Enhancer that adds the @JsonPOJOBuilder annotation to generated builder classes. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java index 1f5b5c57..2aeeb726 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java @@ -21,16 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; - -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.MethodDto; -import org.javahelpers.simple.builders.processor.dtos.MethodParameterDto; -import org.javahelpers.simple.builders.processor.dtos.NestedTypeDto; -import org.javahelpers.simple.builders.processor.dtos.TypeName; -import org.javahelpers.simple.builders.processor.dtos.TypeNameGeneric; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +package org.javahelpers.simple.builders.processor.generators.builder; + +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; +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.TypeName; +import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Enhancer that adds the "With" interface to generated builders. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java index 209d719f..886dfde6 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java @@ -22,15 +22,21 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameList; +import org.javahelpers.simple.builders.processor.model.type.TypeNameSet; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates add2FieldName helper methods for List and Set fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java index 0b78ed4d..c58a76de 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java @@ -22,15 +22,21 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.List; import org.javahelpers.simple.builders.core.builders.ArrayListBuilder; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameArray; +import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates ArrayListBuilder consumer methods for array fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java index 8e448752..f1ce8b37 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java @@ -22,14 +22,20 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.List; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameArray; +import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates array-from-List conversion methods for array fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java index 000076e0..1a0a383a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java @@ -22,14 +22,15 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; import java.util.Collections; import java.util.List; -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.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.processing.ProcessingContext; /** * Generates basic setter methods for all fields of the builder. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java index 70f0f29a..1bf63aac 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java @@ -22,14 +22,20 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameList; +import org.javahelpers.simple.builders.processor.model.type.TypeNameMap; +import org.javahelpers.simple.builders.processor.model.type.TypeNameSet; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Consumer-based methods for fields with concrete classes that have empty constructors. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java index 849778e7..a1ebdd05 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java @@ -22,9 +22,10 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; @@ -32,8 +33,13 @@ import java.util.Optional; import org.javahelpers.simple.builders.core.builders.ArrayListBuilder; import org.javahelpers.simple.builders.core.builders.ArrayListBuilderWithElementBuilders; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.model.type.TypeNameList; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Consumer-based methods for List fields with collection builder support. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java index 8428f4c5..1a37677e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java @@ -22,16 +22,23 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; import java.util.Map; import org.javahelpers.simple.builders.core.builders.HashMapBuilder; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; +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.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.model.type.TypeNameMap; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Consumer-based methods for Map fields with map builder support. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java index 28509835..35447eb0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java @@ -22,17 +22,26 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; import java.util.List; import java.util.Map; import java.util.function.Consumer; import javax.lang.model.element.Modifier; import org.apache.commons.lang3.StringUtils; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.JavaLangMapper; -import org.javahelpers.simple.builders.processor.util.JavapoetMapper; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.classgen.javapoet.JavapoetMapper; +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.GenericParameterDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; +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.TypeNameSet; +import org.javahelpers.simple.builders.processor.model.type.TypeNameVariable; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Utility class providing common functionality for method generators. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java index f7f13159..fe0bf85c 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java @@ -22,9 +22,9 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; import java.util.Collections; import java.util.List; @@ -32,8 +32,13 @@ import java.util.Optional; import org.javahelpers.simple.builders.core.builders.HashSetBuilder; import org.javahelpers.simple.builders.core.builders.HashSetBuilderWithElementBuilders; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.model.type.TypeNameSet; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Consumer-based methods for Set fields with collection builder support. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java index 7d4bc3c3..59af3d51 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java @@ -22,15 +22,21 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.util.TypeNameAnalyser.*; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.*; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.List; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameArray; +import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Consumer-based methods for String and {@code Optional} fields using diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java index 0a0f487f..8c3456bc 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java @@ -22,15 +22,20 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.helper; -import static org.javahelpers.simple.builders.processor.util.TypeNameAnalyser.isParameterizedOptional; +import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; import java.util.Collections; import java.util.List; import org.apache.commons.collections4.CollectionUtils; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +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.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates unboxed Optional helper methods for {@code Optional} fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java index 1739213e..c649cd4d 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java @@ -22,18 +22,25 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.helper; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.util.TypeNameAnalyser.isParameterizedOptional; -import static org.javahelpers.simple.builders.processor.util.TypeNameAnalyser.isString; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; +import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isString; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.ArrayList; import java.util.List; import org.apache.commons.collections4.CollectionUtils; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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.model.type.TypeNameArray; +import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates String.format helper methods for String and {@code Optional} fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java index 510171e7..2a33239b 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java @@ -22,20 +22,21 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.helper; -import static org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; import java.util.function.Supplier; -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.dtos.TypeNameGeneric; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +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.model.type.TypeNameGeneric; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates Supplier-based methods for builder fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java index 77dbcb49..60377e9a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java @@ -22,12 +22,21 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.helper; import java.util.Collections; import java.util.List; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.util.ProcessingContext; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +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.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.TypeNameSet; +import org.javahelpers.simple.builders.processor.processing.ProcessingContext; /** * Generates varargs helper methods for List, Set, and Map fields. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java index 418eab01..4df62235 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/AnnotationDto.java @@ -22,12 +22,13 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.annotation; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * DTO representing an annotation to be copied from the target class field to the builder class diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java index 779d7c6d..c39d40e0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/InterfaceName.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.annotation; import static java.util.Objects.requireNonNull; @@ -30,6 +30,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * InterfaceName represents a Java interface type with package and class name information. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java index d8ae9b4e..75ce1129 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderConfiguration.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.core; import static org.javahelpers.simple.builders.core.enums.AccessModifier.*; import static org.javahelpers.simple.builders.core.enums.OptionState.*; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java index 749e6cbf..614709a0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/BuilderDefinitionDto.java @@ -22,12 +22,18 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.core; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; +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.method.MethodDto; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; +import org.javahelpers.simple.builders.processor.model.type.NestedTypeDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** BuilderDefinitionDto holds all information for generating a builder. */ public class BuilderDefinitionDto { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java index 8fdefe8a..0a1df9ed 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/FieldDto.java @@ -22,12 +22,16 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.core; import java.util.ArrayList; import java.util.List; import java.util.Optional; import org.apache.commons.lang3.StringUtils; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +import org.javahelpers.simple.builders.processor.model.method.MethodDto; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * Definition of a field. Containing all information to generate methods in builder to set or modify diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java index f0926541..e5457987 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleDefinitionDto.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.integration; import java.util.Collection; import java.util.HashSet; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java index 0f0ee3d0..926a8af2 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/JacksonModuleEntryDto.java @@ -22,7 +22,9 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.integration; + +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * Represents an entry for a Jackson module registration. Maps a DTO type to its builder type. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java index 30f64396..ca29e2a5 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeDto.java @@ -22,10 +22,11 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; import java.util.ArrayList; import java.util.List; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** DTO for holding information of code implementation. */ public class MethodCodeDto { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java index 4ac214e7..f3cb7155 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodePlaceholder.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; /** * Interface for supported placeholder value types. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java index 2cbf74df..7bb8f11c 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeStringPlaceholder.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; /** * Placeholder value for text contents.Implements {@code MethodCodePlaceholder} to support a generic diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java index 090d2fe0..460a7357 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodCodeTypePlaceholder.java @@ -22,7 +22,9 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; + +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * Placeholder value for type contents.Implements {@code MethodCodePlaceholder} to support a generic diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java index 0a02cc41..5a4b54eb 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodDto.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; import java.util.ArrayList; import java.util.LinkedList; @@ -30,6 +30,9 @@ import java.util.Optional; import javax.lang.model.element.Modifier; import org.apache.commons.lang3.StringUtils; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** MethodDto containing all information to generate a method in builder. */ public class MethodDto { @@ -350,8 +353,7 @@ public List getAnnotations() { * * @param annotation the annotation to add */ - public void addAnnotation( - org.javahelpers.simple.builders.processor.dtos.AnnotationDto annotation) { + public void addAnnotation(AnnotationDto annotation) { this.annotations.add(annotation); } diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java index 76abc62e..d22088e2 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/MethodParameterDto.java @@ -22,10 +22,12 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.method; import java.util.ArrayList; import java.util.List; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** MethodParameterDto contains all information for generating parameters in method headers. */ public class MethodParameterDto { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java index 88b06341..07fb7c5e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/GenericParameterDto.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.LinkedList; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java index ebbf07e4..d7455152 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/NestedTypeDto.java @@ -22,10 +22,11 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.LinkedList; import java.util.List; +import org.javahelpers.simple.builders.processor.model.method.MethodDto; /** * Represents a nested type (interface or class) to be generated inside the builder. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java index 7e1ea8dc..3102acf2 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeName.java @@ -22,13 +22,14 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.type; import static java.util.Objects.requireNonNull; import java.util.Optional; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; /** * TypeName is the unambiguously definition of a type. Holding name of class and package. Could be diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java index aeb061d0..a8bfd958 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameArray.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.Optional; import org.apache.commons.lang3.builder.EqualsBuilder; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java index 7263e81f..40712c2b 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameCollection.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.List; import org.apache.commons.lang3.builder.EqualsBuilder; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java index ac2cd4c0..c3885e2e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameGeneric.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.List; import java.util.Optional; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java index 6dad3043..ef297771 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameList.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java index d24e2122..bb0279a7 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameMap.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.List; import org.apache.commons.lang3.Strings; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java index 1b91bf9f..5c867a9e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNamePrimitive.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.dtos; +package org.javahelpers.simple.builders.processor.model.type; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java index f8dd68f1..d2fb297a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameSet.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java index 5f337d39..e3ce2343 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/TypeNameVariable.java @@ -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.dtos; +package org.javahelpers.simple.builders.processor.model.type; /** Represents a type variable usage like T, K, V in a generic signature. */ public class TypeNameVariable extends TypeName { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java index de03f66d..17b0c996 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.processing; import java.util.Map; import javax.lang.model.element.AnnotationMirror; @@ -33,8 +33,8 @@ import org.javahelpers.simple.builders.core.annotations.SimpleBuilder; import org.javahelpers.simple.builders.core.enums.AccessModifier; import org.javahelpers.simple.builders.core.enums.OptionState; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; -import org.javahelpers.simple.builders.processor.exceptions.BuilderException; +import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; /** * Reads builder configuration from annotated elements. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java index a4e8d96e..d15ffa44 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java @@ -22,12 +22,12 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.processing; import static java.util.stream.Collectors.toSet; -import static org.javahelpers.simple.builders.processor.util.AnnotationValidator.validateAnnotatedElement; -import static org.javahelpers.simple.builders.processor.util.JavaLangAnalyser.*; -import static org.javahelpers.simple.builders.processor.util.JavaLangMapper.map2MethodParameter; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser.*; +import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2MethodParameter; +import static org.javahelpers.simple.builders.processor.validation.AnnotationValidator.validateAnnotatedElement; import java.util.HashMap; import java.util.LinkedList; @@ -40,9 +40,17 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Strings; import org.javahelpers.simple.builders.core.annotations.IgnoreInBuilder; -import org.javahelpers.simple.builders.processor.dtos.*; -import org.javahelpers.simple.builders.processor.exceptions.BuilderException; -import org.javahelpers.simple.builders.processor.generators.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.analysis.FieldAnnotationExtractor; +import org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser; +import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; +import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; +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.method.MethodDto; +import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** Class for creating a specific BuilderDefinitionDto for an annotated DTO class. */ public class BuilderDefinitionCreator { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java index cc8ddb6f..01e0ff45 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsEnum.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.enums; +package org.javahelpers.simple.builders.processor.processing; /** * Enumeration of all builder configuration compiler arguments. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java index 3095b809..43588f30 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/CompilerArgumentsReader.java @@ -22,14 +22,13 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.processing; import javax.annotation.processing.ProcessingEnvironment; import org.apache.commons.lang3.Strings; import org.javahelpers.simple.builders.core.enums.AccessModifier; import org.javahelpers.simple.builders.core.enums.OptionState; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; -import org.javahelpers.simple.builders.processor.enums.CompilerArgumentsEnum; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; /** * Utility class for reading compiler arguments from the annotation processing environment. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java index dbbc8490..04807788 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.processing; import java.util.List; import javax.annotation.processing.ProcessingEnvironment; @@ -32,9 +32,9 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; -import org.javahelpers.simple.builders.processor.dtos.TypeName; import org.javahelpers.simple.builders.processor.generators.GeneratorRegistry; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; +import org.javahelpers.simple.builders.processor.model.type.TypeName; /** * Context object that wraps Elements, Types, and logging utilities from annotation processing, diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java index 62193030..6a11443e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingLogger.java @@ -22,13 +22,12 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.processing; import javax.annotation.processing.Messager; import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.Element; import javax.tools.Diagnostic; -import org.javahelpers.simple.builders.processor.enums.CompilerArgumentsEnum; /** * Logger for all messages during annotation processing. Providing util-functions for posting diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java index e71ce614..8f7fd29b 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java @@ -31,10 +31,11 @@ import javax.lang.model.element.Element; import org.apache.commons.collections4.SetValuedMap; import org.apache.commons.collections4.multimap.HashSetValuedHashMap; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; -import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.JacksonModuleDefinitionDto; -import org.javahelpers.simple.builders.processor.dtos.JacksonModuleEntryDto; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; +import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; +import org.javahelpers.simple.builders.processor.model.integration.JacksonModuleDefinitionDto; +import org.javahelpers.simple.builders.processor.model.integration.JacksonModuleEntryDto; +import org.javahelpers.simple.builders.processor.processing.ProcessingLogger; /** * Generates Jackson SimpleModules to register all generated builders. diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java index b65b7f3a..ab755583 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java @@ -22,14 +22,14 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.validation; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.Modifier; import javax.lang.model.element.NestingKind; import org.javahelpers.simple.builders.core.annotations.SimpleBuilder; -import org.javahelpers.simple.builders.processor.exceptions.BuilderException; +import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; /** * AnnotationValidator validates the positions of annotations. Responsible for throwing exceptions diff --git a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator index 04f3bee3..736f3e99 100644 --- a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator +++ b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator @@ -3,27 +3,27 @@ # Generators can provide field-level method generation, builder-level enhancement, or both # Field-level method generators (priority 100-25) -org.javahelpers.simple.builders.processor.generators.BasicSetterGenerator -org.javahelpers.simple.builders.processor.generators.StringFormatHelperGenerator -org.javahelpers.simple.builders.processor.generators.OptionalHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.BasicSetterGenerator +org.javahelpers.simple.builders.processor.generators.helper.StringFormatHelperGenerator +org.javahelpers.simple.builders.processor.generators.helper.OptionalHelperGenerator org.javahelpers.simple.builders.processor.generators.BuilderConsumerGenerator -org.javahelpers.simple.builders.processor.generators.FieldConsumerGenerator -org.javahelpers.simple.builders.processor.generators.ListConsumerGenerator -org.javahelpers.simple.builders.processor.generators.MapConsumerGenerator -org.javahelpers.simple.builders.processor.generators.SetConsumerGenerator -org.javahelpers.simple.builders.processor.generators.StringBuilderConsumerGenerator -org.javahelpers.simple.builders.processor.generators.SupplierMethodGenerator -org.javahelpers.simple.builders.processor.generators.VarArgsHelperGenerator -org.javahelpers.simple.builders.processor.generators.AddToCollectionGenerator -org.javahelpers.simple.builders.processor.generators.ArrayConversionGenerator -org.javahelpers.simple.builders.processor.generators.ArrayBuilderConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.FieldConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.ListConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.MapConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.SetConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.StringBuilderConsumerGenerator +org.javahelpers.simple.builders.processor.generators.helper.SupplierMethodGenerator +org.javahelpers.simple.builders.processor.generators.helper.VarArgsHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.AddToCollectionGenerator +org.javahelpers.simple.builders.processor.generators.field.ArrayConversionGenerator +org.javahelpers.simple.builders.processor.generators.field.ArrayBuilderConsumerGenerator # Builder-level enhancers (priority 100-10) -org.javahelpers.simple.builders.processor.generators.GeneratedAnnotationEnhancer -org.javahelpers.simple.builders.processor.generators.BuilderImplementationAnnotationEnhancer -org.javahelpers.simple.builders.processor.generators.JacksonAnnotationEnhancer -org.javahelpers.simple.builders.processor.generators.InterfaceEnhancer -org.javahelpers.simple.builders.processor.generators.ClassJavaDocEnhancer -org.javahelpers.simple.builders.processor.generators.CoreMethodsEnhancer -org.javahelpers.simple.builders.processor.generators.WithInterfaceEnhancer -org.javahelpers.simple.builders.processor.generators.ConditionalEnhancer +org.javahelpers.simple.builders.processor.generators.builder.GeneratedAnnotationEnhancer +org.javahelpers.simple.builders.processor.generators.builder.BuilderImplementationAnnotationEnhancer +org.javahelpers.simple.builders.processor.generators.builder.JacksonAnnotationEnhancer +org.javahelpers.simple.builders.processor.generators.builder.InterfaceEnhancer +org.javahelpers.simple.builders.processor.generators.builder.ClassJavaDocEnhancer +org.javahelpers.simple.builders.processor.generators.builder.CoreMethodsEnhancer +org.javahelpers.simple.builders.processor.generators.builder.WithInterfaceEnhancer +org.javahelpers.simple.builders.processor.generators.builder.ConditionalEnhancer diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/CompilerArgumentsReaderTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/CompilerArgumentsReaderTest.java index 5f0773db..c8b4c11f 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/CompilerArgumentsReaderTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/CompilerArgumentsReaderTest.java @@ -31,10 +31,10 @@ import javax.annotation.processing.ProcessingEnvironment; import org.javahelpers.simple.builders.core.enums.AccessModifier; import org.javahelpers.simple.builders.core.enums.OptionState; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; -import org.javahelpers.simple.builders.processor.enums.CompilerArgumentsEnum; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; +import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsEnum; +import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsReader; import org.javahelpers.simple.builders.processor.testing.ProcessingEnvironmentStub; -import org.javahelpers.simple.builders.processor.util.CompilerArgumentsReader; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/ConfigurationProcessingTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/ConfigurationProcessingTest.java index 2d863ec5..5b7d02ea 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/ConfigurationProcessingTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/ConfigurationProcessingTest.java @@ -9,7 +9,7 @@ import javax.tools.JavaFileObject; import org.javahelpers.simple.builders.core.enums.AccessModifier; import org.javahelpers.simple.builders.core.enums.OptionState; -import org.javahelpers.simple.builders.processor.dtos.BuilderConfiguration; +import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; import org.javahelpers.simple.builders.processor.testing.ProcessorAsserts; import org.javahelpers.simple.builders.processor.testing.ProcessorTestUtils; import org.junit.jupiter.api.Test; diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java index 07e43676..2570ff75 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java @@ -95,10 +95,10 @@ void testGeneratorInterfaceStructure() { package com.example.test; 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.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.type.TypeName; + import org.javahelpers.simple.builders.processor.processing.ProcessingContext; import java.util.List; public class TestMethodGenerator implements MethodGenerator { @@ -139,9 +139,9 @@ void testBuilderEnhancerStructure() { package com.example.test; 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 TestBuilderEnhancer implements BuilderEnhancer { @Override @@ -180,39 +180,51 @@ void testCustomGeneratorMethodCreation() { package com.example.test; 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; public class CustomHelperGenerator implements MethodGenerator { + + private static final TypeName TRACKED_VALUE_TYPE = + new TypeName("org.javahelpers.simple.builders.core.util", "TrackedValue"); + @Override public boolean appliesTo(FieldDto field, TypeName dtoType, ProcessingContext context) { - return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()); + return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()) + && field.hasAnnotation("javax.validation.constraints.Email"); } @Override public List generateMethods(FieldDto field, TypeName builderType, ProcessingContext context) { String fieldName = field.getFieldNameInBuilder(); - String methodName = "custom" + capitalize(fieldName); + String methodName = "validated" + capitalize(fieldName); MethodDto method = new MethodDto(methodName, builderType); + String parameterName = fieldName; MethodParameterDto parameter = new MethodParameterDto(); - parameter.setParameterName("value"); + parameter.setParameterName(parameterName); parameter.setParameterTypeName(new TypeName("java.lang", "String")); method.addParameter(parameter); - method.setCode("return this." + fieldName + "(value.toUpperCase());"); + method.setCode(String.format( + "if (%s != null && %s.contains(\\"@\\")) { " + + "this.%s = $builderFieldWrapper:T.changedValue(%s); " + + "return this; } " + + "throw new IllegalArgumentException(\\"Invalid email: \\" + %s);", + parameterName, parameterName, fieldName, parameterName, parameterName)); + method.addArgument("builderFieldWrapper", TRACKED_VALUE_TYPE); return List.of(method); } @Override public int getPriority() { - return 200; + return 1000; } private String capitalize(String str) { @@ -241,10 +253,10 @@ void testGeneratorPriorityPattern() { package com.example.test; 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.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.type.TypeName; + import org.javahelpers.simple.builders.processor.processing.ProcessingContext; import java.util.List; public class HighPriorityGenerator implements MethodGenerator { @@ -284,10 +296,10 @@ void testErrorHandlingPattern() { package com.example.test; 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.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.type.TypeName; + import org.javahelpers.simple.builders.processor.processing.ProcessingContext; import java.util.List; public class SafeGenerator implements MethodGenerator { @@ -333,10 +345,10 @@ void testConditionalApplicationPattern() { package com.example.test; 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.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.type.TypeName; + import org.javahelpers.simple.builders.processor.processing.ProcessingContext; import java.util.List; public class ConditionalGenerator implements MethodGenerator { @@ -387,11 +399,11 @@ void testCompleteCustomValidationGenerator() { package com.example.test; 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; public class CustomValidationGenerator implements MethodGenerator { @@ -401,7 +413,6 @@ public class CustomValidationGenerator implements MethodGenerator { @Override public boolean appliesTo(FieldDto field, TypeName dtoType, ProcessingContext context) { - // Only apply to String fields with @Email annotation return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()) && field.hasAnnotation("javax.validation.constraints.Email"); } @@ -462,11 +473,11 @@ void testCompleteCustomValidationEnhancer() { package com.example.test; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; - import org.javahelpers.simple.builders.processor.dtos.AnnotationDto; - import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; - import org.javahelpers.simple.builders.processor.dtos.MethodDto; - import org.javahelpers.simple.builders.processor.dtos.TypeName; - import org.javahelpers.simple.builders.processor.util.ProcessingContext; + import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; + import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; + import org.javahelpers.simple.builders.processor.model.method.MethodDto; + import org.javahelpers.simple.builders.processor.model.type.TypeName; + import org.javahelpers.simple.builders.processor.processing.ProcessingContext; public class CustomValidationEnhancer implements BuilderEnhancer { @@ -572,11 +583,11 @@ void testDateParserGeneratorExample() { package com.example.test; 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; public class DateParserGenerator implements MethodGenerator { @@ -636,11 +647,11 @@ void testBuilderFactoryEnhancerExample() { package com.example.test; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; - import org.javahelpers.simple.builders.processor.dtos.BuilderDefinitionDto; - 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.BuilderDefinitionDto; + 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; public class BuilderFactoryEnhancer implements BuilderEnhancer { diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/JavaLangAnalyserTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/JavaLangAnalyserTest.java index 27a10a2f..ffdd15fa 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/JavaLangAnalyserTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/JavaLangAnalyserTest.java @@ -14,7 +14,7 @@ import javax.lang.model.element.Name; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; -import org.javahelpers.simple.builders.processor.util.JavaLangAnalyser; +import org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; From 6d3833563958dfeaeb23e05cd409dbf1ef948c57 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 15:32:36 +0100 Subject: [PATCH 04/11] Moving generator/helpers into generator/utils package --- .../generators/{helper => util}/OptionalHelperGenerator.java | 0 .../generators/{helper => util}/StringFormatHelperGenerator.java | 0 .../generators/{helper => util}/SupplierMethodGenerator.java | 0 .../generators/{helper => util}/VarArgsHelperGenerator.java | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{helper => util}/OptionalHelperGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{helper => util}/StringFormatHelperGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{helper => util}/SupplierMethodGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{helper => util}/VarArgsHelperGenerator.java (100%) diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/OptionalHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/StringFormatHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/SupplierMethodGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/VarArgsHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java From ba98bcfba92a795098c5c6420956e97bab876915 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 16:46:01 +0100 Subject: [PATCH 05/11] Further improvements in package structure --- docs/CUSTOMIZING.md | 4 ++-- .../{ => exceptions}/JavapoetMapperException.java | 0 .../javapoet => exceptions}/BuilderException.java | 0 ...ator.java => FieldInstanceConsumerGenerator.java} | 2 +- .../NestedBuilderConsumerGenerator.java} | 6 +++--- .../integration}/JacksonModuleGenerator.java | 0 .../builders/processor/generators/package-info.java | 2 +- .../generators/{ => registry}/ComponentFilter.java | 0 .../generators/{ => registry}/GeneratorRegistry.java | 0 .../generators/util/OptionalHelperGenerator.java | 2 +- .../generators/util/StringFormatHelperGenerator.java | 2 +- .../generators/util/SupplierMethodGenerator.java | 2 +- .../generators/util/VarArgsHelperGenerator.java | 2 +- .../AnnotationValidator.java | 0 ...rs.simple.builders.processor.generators.Generator | 12 ++++++------ 15 files changed, 17 insertions(+), 17 deletions(-) rename processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/{ => exceptions}/JavapoetMapperException.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{classgen/javapoet => exceptions}/BuilderException.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/{FieldConsumerGenerator.java => FieldInstanceConsumerGenerator.java} (98%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{BuilderConsumerGenerator.java => field/NestedBuilderConsumerGenerator.java} (95%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{util => generators/integration}/JacksonModuleGenerator.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => registry}/ComponentFilter.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{ => registry}/GeneratorRegistry.java (100%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/{validation => processing}/AnnotationValidator.java (100%) diff --git a/docs/CUSTOMIZING.md b/docs/CUSTOMIZING.md index bb6d1108..ae1e355b 100644 --- a/docs/CUSTOMIZING.md +++ b/docs/CUSTOMIZING.md @@ -263,8 +263,8 @@ compileJava { |-----------|---------|----------| | [`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 | +| [`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/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 | diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapperException.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/BuilderException.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java similarity index 98% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java index 1bf63aac..67358a91 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java @@ -80,7 +80,7 @@ * .build(); * } */ -public class FieldConsumerGenerator implements MethodGenerator { +public class FieldInstanceConsumerGenerator implements MethodGenerator { private static final int PRIORITY = 54; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java similarity index 95% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java index bae89dd3..c3311348 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java @@ -22,13 +22,13 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.field; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; 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; @@ -75,7 +75,7 @@ * .build(); * } */ -public class BuilderConsumerGenerator implements MethodGenerator { +public class NestedBuilderConsumerGenerator implements MethodGenerator { private static final int PRIORITY = 55; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/util/JacksonModuleGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java index ef39c85d..56f5b567 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java @@ -18,7 +18,7 @@ *

*/ package org.javahelpers.simple.builders.processor.generators; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ComponentFilter.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratorRegistry.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java index 8c3456bc..d1062dc1 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.helper; +package org.javahelpers.simple.builders.processor.generators.util; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java index c649cd4d..4e450b3a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.helper; +package org.javahelpers.simple.builders.processor.generators.util; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java index 2a33239b..ad75d118 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.helper; +package org.javahelpers.simple.builders.processor.generators.util; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java index 60377e9a..fcb29e72 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.helper; +package org.javahelpers.simple.builders.processor.generators.util; import java.util.Collections; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java similarity index 100% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/validation/AnnotationValidator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java diff --git a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator index 736f3e99..3c6d4503 100644 --- a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator +++ b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator @@ -4,16 +4,16 @@ # Field-level method generators (priority 100-25) org.javahelpers.simple.builders.processor.generators.field.BasicSetterGenerator -org.javahelpers.simple.builders.processor.generators.helper.StringFormatHelperGenerator -org.javahelpers.simple.builders.processor.generators.helper.OptionalHelperGenerator -org.javahelpers.simple.builders.processor.generators.BuilderConsumerGenerator -org.javahelpers.simple.builders.processor.generators.field.FieldConsumerGenerator +org.javahelpers.simple.builders.processor.generators.util.StringFormatHelperGenerator +org.javahelpers.simple.builders.processor.generators.util.OptionalHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.NestedBuilderConsumerGenerator +org.javahelpers.simple.builders.processor.generators.field.FieldInstanceConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.ListConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.MapConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.SetConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.StringBuilderConsumerGenerator -org.javahelpers.simple.builders.processor.generators.helper.SupplierMethodGenerator -org.javahelpers.simple.builders.processor.generators.helper.VarArgsHelperGenerator +org.javahelpers.simple.builders.processor.generators.util.SupplierMethodGenerator +org.javahelpers.simple.builders.processor.generators.util.VarArgsHelperGenerator org.javahelpers.simple.builders.processor.generators.field.AddToCollectionGenerator org.javahelpers.simple.builders.processor.generators.field.ArrayConversionGenerator org.javahelpers.simple.builders.processor.generators.field.ArrayBuilderConsumerGenerator From 9202fd13fbfa03f00a47d9e47f5bacbf61cdcced Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 17:06:24 +0100 Subject: [PATCH 06/11] Adaptions on import statements after restructuring --- .../builders/processor/BuilderProcessor.java | 4 ++-- .../classgen/javapoet/JavaCodeGenerator.java | 1 + .../classgen/javapoet/JavapoetMapper.java | 1 + .../exceptions/JavapoetMapperException.java | 2 +- .../classgen/javapoet/package-info.java | 19 +++++++++++++------ .../exceptions/BuilderException.java | 2 +- .../integration/JacksonModuleGenerator.java | 2 +- .../processor/generators/package-info.java | 6 +++--- .../generators/registry/ComponentFilter.java | 2 +- .../registry/GeneratorRegistry.java | 5 ++++- .../processing/AnnotationValidator.java | 4 ++-- .../BuilderConfigurationReader.java | 2 +- .../processing/BuilderDefinitionCreator.java | 4 ++-- .../processing/ProcessingContext.java | 2 +- 14 files changed, 34 insertions(+), 22 deletions(-) diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java index 0c11812a..f578e00a 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/BuilderProcessor.java @@ -42,8 +42,9 @@ 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.classgen.javapoet.BuilderException; import org.javahelpers.simple.builders.processor.classgen.javapoet.JavaCodeGenerator; +import org.javahelpers.simple.builders.processor.exceptions.BuilderException; +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; @@ -51,7 +52,6 @@ import org.javahelpers.simple.builders.processor.processing.CompilerArgumentsReader; import org.javahelpers.simple.builders.processor.processing.ProcessingContext; import org.javahelpers.simple.builders.processor.processing.ProcessingLogger; -import org.javahelpers.simple.builders.processor.util.JacksonModuleGenerator; /** * BuilderProcessor is an annotation processor for execution in generate-sources phase. The diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java index 7585c2b7..4c18c00e 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavaCodeGenerator.java @@ -46,6 +46,7 @@ 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.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; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java index 6c1b031c..e2024068 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/JavapoetMapper.java @@ -38,6 +38,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.javahelpers.simple.builders.core.enums.AccessModifier; +import org.javahelpers.simple.builders.processor.classgen.javapoet.exceptions.JavapoetMapperException; 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.method.MethodCodePlaceholder; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java index 254d8a49..75cef175 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/JavapoetMapperException.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.classgen.javapoet; +package org.javahelpers.simple.builders.processor.classgen.javapoet.exceptions; /** Special exception for errors in mapping to Javapoet classes. */ public class JavapoetMapperException extends RuntimeException { diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java index 30dc4d1a..0574a8c5 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/package-info.java @@ -1,19 +1,26 @@ /** * Package org.javahelpers.simple.builders.processor.classgen.javapoet * - *

JavaPoet-based code generation infrastructure for simple-builders. + *

JavaPoet-based code generation for simple-builders processor. * - *

This package contains the code generation components that use JavaPoet to generate Java source - * code from the builder definition DTOs: + *

This package contains the core code generation components: * *

    *
  • {@link JavaCodeGenerator} - Main code generator that creates builder classes *
  • {@link JavapoetMapper} - Utility for mapping DTOs to JavaPoet types - *
  • {@link BuilderException} - Exception for code generation errors - *
  • {@link JavapoetMapperException} - Exception for mapping errors + *
+ * + *

Exception classes are organized in separate packages: + * + *

    + *
  • {@link org.javahelpers.simple.builders.processor.exceptions.BuilderException} - Exception + * for code generation errors + *
  • {@link + * org.javahelpers.simple.builders.processor.classgen.javapoet.exceptions.JavapoetMapperException} + * - Exception for mapping errors *
* *

This package isolates JavaPoet-specific code, making it easier to replace the code generation - * library in the future if needed. + * implementation if needed. */ package org.javahelpers.simple.builders.processor.classgen.javapoet; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java index 2813acc2..87f48b88 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.classgen.javapoet; +package org.javahelpers.simple.builders.processor.exceptions; import javax.lang.model.element.Element; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java index 8f7fd29b..41c56bf0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/JacksonModuleGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.util; +package org.javahelpers.simple.builders.processor.generators.integration; import java.util.ArrayList; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java index 56f5b567..a37eb4f0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/package-info.java @@ -3,14 +3,12 @@ * *

Generator framework for the simple-builders processor. * - *

This package contains the core generator interfaces and registry: + *

This package contains the core generator interfaces: * *

    *
  • {@link Generator} - Base sealed interface for all generators *
  • {@link MethodGenerator} - Interface for field-level method generators *
  • {@link BuilderEnhancer} - Interface for builder-level enhancers - *
  • {@link GeneratorRegistry} - Registry for discovering and managing generators - *
  • {@link ComponentFilter} - Utility for filtering generators based on configuration *
* *

Generators are organized into subpackages by their scope: @@ -19,6 +17,8 @@ *

  • field - Generators that create methods for individual fields *
  • builder - Enhancers that modify the entire builder *
  • util - Utility generators for common patterns + *
  • registry - Generator infrastructure and management + *
  • integration - Framework integration generators * */ package org.javahelpers.simple.builders.processor.generators; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java index 05a831d9..82ae4314 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/ComponentFilter.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.registry; import java.util.Arrays; import java.util.HashSet; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java index a268481e..b31b0494 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/GeneratorRegistry.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators; +package org.javahelpers.simple.builders.processor.generators.registry; import java.util.ArrayList; import java.util.Comparator; @@ -30,6 +30,9 @@ import java.util.ServiceLoader; import javax.annotation.processing.ProcessingEnvironment; import org.apache.commons.collections4.CollectionUtils; +import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; +import org.javahelpers.simple.builders.processor.generators.Generator; +import org.javahelpers.simple.builders.processor.generators.MethodGenerator; 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.method.MethodDto; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java index ab755583..3137dbef 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/AnnotationValidator.java @@ -22,14 +22,14 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.validation; +package org.javahelpers.simple.builders.processor.processing; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.Modifier; import javax.lang.model.element.NestingKind; import org.javahelpers.simple.builders.core.annotations.SimpleBuilder; -import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.exceptions.BuilderException; /** * AnnotationValidator validates the positions of annotations. Responsible for throwing exceptions diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java index 17b0c996..9a1b30f7 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderConfigurationReader.java @@ -33,7 +33,7 @@ import org.javahelpers.simple.builders.core.annotations.SimpleBuilder; import org.javahelpers.simple.builders.core.enums.AccessModifier; import org.javahelpers.simple.builders.core.enums.OptionState; -import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.exceptions.BuilderException; import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; /** diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java index d15ffa44..ec56300f 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java @@ -27,7 +27,7 @@ import static java.util.stream.Collectors.toSet; import static org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser.*; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2MethodParameter; -import static org.javahelpers.simple.builders.processor.validation.AnnotationValidator.validateAnnotatedElement; +import static org.javahelpers.simple.builders.processor.processing.AnnotationValidator.validateAnnotatedElement; import java.util.HashMap; import java.util.LinkedList; @@ -43,7 +43,7 @@ import org.javahelpers.simple.builders.processor.analysis.FieldAnnotationExtractor; import org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser; import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; -import org.javahelpers.simple.builders.processor.classgen.javapoet.BuilderException; +import org.javahelpers.simple.builders.processor.exceptions.BuilderException; import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java index 04807788..f0fe7341 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/ProcessingContext.java @@ -32,7 +32,7 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Elements; import javax.lang.model.util.Types; -import org.javahelpers.simple.builders.processor.generators.GeneratorRegistry; +import org.javahelpers.simple.builders.processor.generators.registry.GeneratorRegistry; import org.javahelpers.simple.builders.processor.model.core.BuilderConfiguration; import org.javahelpers.simple.builders.processor.model.type.TypeName; From 998c8b34c5470965a71335a8f9da9857022b9970 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 18:00:13 +0100 Subject: [PATCH 07/11] Adding package-info files for documentation of package-structure --- .../builders/processor/analysis/package-info.java | 13 +++++++++++++ .../classgen/javapoet/exceptions/package-info.java | 9 +++++++++ .../processor/exceptions/package-info.java | 9 +++++++++ .../processor/generators/builder/package-info.java | 13 +++++++++++++ .../processor/generators/field/package-info.java | 13 +++++++++++++ .../generators/integration/package-info.java | 10 ++++++++++ .../generators/registry/package-info.java | 13 +++++++++++++ .../processor/generators/util/package-info.java | 13 +++++++++++++ .../processor/model/annotation/package-info.java | 13 +++++++++++++ .../processor/model/integration/package-info.java | 13 +++++++++++++ .../processor/model/method/package-info.java | 13 +++++++++++++ .../processor/model/type/package-info.java | 14 ++++++++++++++ .../processor/processing/package-info.java | 13 +++++++++++++ 13 files changed, 159 insertions(+) create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/package-info.java create mode 100644 processor/src/main/java/org/javahelpers/simple/builders/processor/processing/package-info.java diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/package-info.java new file mode 100644 index 00000000..e09c17ad --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.analysis + * + *

    Analysis components for the simple-builders processor. + * + *

    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. + * + *

    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; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/package-info.java new file mode 100644 index 00000000..76bcbff7 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/exceptions/package-info.java @@ -0,0 +1,9 @@ +/** + * Package org.javahelpers.simple.builders.processor.classgen.javapoet.exceptions + * + *

    JavaPoet-specific exception classes. + * + *

    This package contains exceptions specific to JavaPoet code generation, providing error + * handling for mapping and code generation issues within the JavaPoet layer. + */ +package org.javahelpers.simple.builders.processor.classgen.javapoet.exceptions; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/package-info.java new file mode 100644 index 00000000..a3bfc10d --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/package-info.java @@ -0,0 +1,9 @@ +/** + * Package org.javahelpers.simple.builders.processor.exceptions + * + *

    Exception classes for the simple-builders processor. + * + *

    This package contains custom exceptions used throughout the processor, providing specific + * error handling for builder processing and code generation scenarios. + */ +package org.javahelpers.simple.builders.processor.exceptions; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/package-info.java new file mode 100644 index 00000000..9d25f760 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators.builder + * + *

    Builder-level enhancers for the simple-builders processor. + * + *

    This package contains enhancers that modify the entire builder class, adding functionality + * that spans multiple fields or provides builder-level features. These include core method + * generation, annotation handling, interface implementations, and framework integrations. + * + *

    Enhancers operate on the builder class as a whole, complementing the field-level generators to + * create complete, feature-rich builder implementations. + */ +package org.javahelpers.simple.builders.processor.generators.builder; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java new file mode 100644 index 00000000..908bff29 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators.field + * + *

    Field-level method generators for the simple-builders processor. + * + *

    This package contains generators that create methods for individual fields, including basic + * setters, collection consumers, array converters, and field-specific utility methods. These + * generators form the core API of generated builders. + * + *

    Key components include setter generators for various field types, consumer-based methods for + * complex types, and utilities for field method generation. + */ +package org.javahelpers.simple.builders.processor.generators.field; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/package-info.java new file mode 100644 index 00000000..07bbafb6 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/integration/package-info.java @@ -0,0 +1,10 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators.integration + * + *

    Framework integration generators. + * + *

    This package contains generators for integrating with external frameworks, enabling seamless + * integration between generated builders and popular Java libraries. These generators create bridge + * components and modules for framework compatibility. + */ +package org.javahelpers.simple.builders.processor.generators.integration; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/package-info.java new file mode 100644 index 00000000..cbf2007e --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/registry/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators.registry + * + *

    Generator infrastructure and management components. + * + *

    This package contains classes for managing and filtering generators, providing the + * infrastructure for the generator system. It handles discovery, registration, and + * configuration-based filtering of generators. + * + *

    The registry manages both method generators and builder enhancers, supporting the unified + * generator architecture. + */ +package org.javahelpers.simple.builders.processor.generators.registry; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java new file mode 100644 index 00000000..15cbac4b --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.generators.util + * + *

    Utility generators for the simple-builders processor. + * + *

    This package contains generators that provide utility methods and helpers, enhancing the + * builder functionality beyond basic field setters and consumers. These include optional field + * helpers, string formatting utilities, supplier-based methods, and varargs support. + * + *

    These generators provide additional convenience methods that make builders more flexible and + * powerful for various use cases. + */ +package org.javahelpers.simple.builders.processor.generators.util; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/package-info.java new file mode 100644 index 00000000..f69527d8 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.model.annotation + * + *

    Annotation model classes for the simple-builders processor. + * + *

    This package contains classes that represent annotations and interface information, providing + * the model layer for annotation processing. These classes enable the processor to understand and + * work with annotations found on DTOs. + * + *

    The model includes data transfer objects for annotation information and representations of + * interface names with type parameters. + */ +package org.javahelpers.simple.builders.processor.model.annotation; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/package-info.java new file mode 100644 index 00000000..20fb4588 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.model.integration + * + *

    Integration model classes for the simple-builders processor. + * + *

    This package contains classes that represent integration-specific data, providing the model + * layer for framework integrations. These classes support integration with external frameworks, + * particularly for Jackson module generation. + * + *

    The model includes definitions for Jackson modules and their entries, enabling seamless + * integration with popular Java frameworks. + */ +package org.javahelpers.simple.builders.processor.model.integration; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/package-info.java new file mode 100644 index 00000000..3af5f15b --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.model.method + * + *

    Method model classes for the simple-builders processor. + * + *

    This package contains classes that represent methods and their components, providing the model + * layer for method generation. These classes enable the processor to represent and generate various + * types of methods in the generated builders. + * + *

    The model includes method definitions, parameters, code placeholders, and different types of + * method representations used throughout the generation process. + */ +package org.javahelpers.simple.builders.processor.model.method; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/package-info.java new file mode 100644 index 00000000..e3a4faa9 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/package-info.java @@ -0,0 +1,14 @@ +/** + * Package org.javahelpers.simple.builders.processor.model.type + * + *

    Type model classes for the simple-builders processor. + * + *

    This package contains classes that represent Java types and their properties, providing a + * comprehensive type system for the processor. It includes representations for primitive types, + * collections, generics, arrays, and complex type structures. + * + *

    These classes enable accurate representation and manipulation of Java types found in DTOs, + * supporting the full range of Java type system features including generics, wildcards, and nested + * types. + */ +package org.javahelpers.simple.builders.processor.model.type; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/package-info.java new file mode 100644 index 00000000..810de898 --- /dev/null +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/package-info.java @@ -0,0 +1,13 @@ +/** + * Package org.javahelpers.simple.builders.processor.processing + * + *

    Core processing components for the simple-builders processor. + * + *

    This package contains the main processing pipeline components that transform annotated DTOs + * into builder definitions and ultimately generated code. These components handle configuration + * reading, validation, context management, and coordinate the entire builder generation process. + * + *

    The processing pipeline manages compiler arguments, validates annotations, creates builder + * definitions, and provides logging with hierarchical output support. + */ +package org.javahelpers.simple.builders.processor.processing; From 52993b5c0c1b9e77dd233b8eedc468eaf8034463 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 18:00:29 +0100 Subject: [PATCH 08/11] Updatinge markdown-files with new package-structure --- README.md | 2 +- docs/CUSTOMIZING.md | 52 ++++++++++++++++++++++----------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 0c9558e7..1b7fbabd 100644 --- a/README.md +++ b/README.md @@ -302,7 +302,7 @@ Or in Maven: ``` -📋 **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).** diff --git a/docs/CUSTOMIZING.md b/docs/CUSTOMIZING.md index ae1e355b..f2bc6d7d 100644 --- a/docs/CUSTOMIZING.md +++ b/docs/CUSTOMIZING.md @@ -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; @@ -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 { @@ -261,31 +261,31 @@ 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 | +| [`BasicSetterGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java) | Basic field setters | 100 | +| [`SupplierMethodGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java) | Supplier-based setters | 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/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 | +| [`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/util/StringFormatHelperGenerator.java) | String.format helpers | 80 | +| [`VarArgsHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/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 From e2c7f50219f8ae67d516d12c0cb3cdd457975e2e Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 18:18:43 +0100 Subject: [PATCH 09/11] Further optimizations in package structure, moving generators for fields into field package and Util-Class into util package --- docs/CUSTOMIZING.md | 7 ++++--- .../generators/builder/ConditionalEnhancer.java | 2 +- .../generators/builder/CoreMethodsEnhancer.java | 2 +- .../generators/builder/InterfaceEnhancer.java | 2 +- .../generators/builder/WithInterfaceEnhancer.java | 2 +- .../generators/field/AddToCollectionGenerator.java | 2 +- .../field/ArrayBuilderConsumerGenerator.java | 4 ++-- .../generators/field/ArrayConversionGenerator.java | 2 +- .../generators/field/BasicSetterGenerator.java | 4 +++- .../field/FieldInstanceConsumerGenerator.java | 2 +- .../generators/field/ListConsumerGenerator.java | 6 +++--- .../generators/field/MapConsumerGenerator.java | 4 ++-- .../field/NestedBuilderConsumerGenerator.java | 4 +++- .../{util => field}/OptionalHelperGenerator.java | 4 ++-- .../generators/field/SetConsumerGenerator.java | 5 +++-- .../field/StringBuilderConsumerGenerator.java | 2 +- .../{util => field}/StringFormatHelperGenerator.java | 4 ++-- .../{util => field}/SupplierMethodGenerator.java | 4 ++-- .../{util => field}/VarArgsHelperGenerator.java | 4 ++-- .../processor/generators/field/package-info.java | 11 ++++++----- .../{field => util}/MethodGeneratorUtil.java | 2 +- .../processor/generators/util/package-info.java | 12 ++++++------ .../processing/BuilderDefinitionCreator.java | 2 +- ...rs.simple.builders.processor.generators.Generator | 8 ++++---- 24 files changed, 54 insertions(+), 47 deletions(-) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{util => field}/OptionalHelperGenerator.java (96%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{util => field}/StringFormatHelperGenerator.java (98%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{util => field}/SupplierMethodGenerator.java (98%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{util => field}/VarArgsHelperGenerator.java (97%) rename processor/src/main/java/org/javahelpers/simple/builders/processor/generators/{field => util}/MethodGeneratorUtil.java (99%) diff --git a/docs/CUSTOMIZING.md b/docs/CUSTOMIZING.md index f2bc6d7d..b9ff2b8d 100644 --- a/docs/CUSTOMIZING.md +++ b/docs/CUSTOMIZING.md @@ -262,14 +262,15 @@ compileJava { | Generator | Purpose | Priority | |-----------|---------|----------| | [`BasicSetterGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java) | Basic field setters | 100 | -| [`SupplierMethodGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java) | Supplier-based setters | 80 | +| [`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/util/StringFormatHelperGenerator.java) | String.format helpers | 80 | -| [`VarArgsHelperGenerator`](../processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java) | Varargs helpers | 50 | +| [`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 | diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java index 4cd90624..94dfac35 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/ConditionalEnhancer.java @@ -27,7 +27,7 @@ import javax.lang.model.element.Modifier; import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; import org.javahelpers.simple.builders.processor.model.method.MethodDto; import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java index c2328c96..6bfa592d 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/CoreMethodsEnhancer.java @@ -28,7 +28,7 @@ import javax.lang.model.element.Modifier; import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; import org.javahelpers.simple.builders.processor.model.core.FieldDto; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java index 0059d09b..2c991616 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/InterfaceEnhancer.java @@ -24,7 +24,7 @@ package org.javahelpers.simple.builders.processor.generators.builder; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; 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.type.TypeName; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java index 2aeeb726..ba685b23 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/WithInterfaceEnhancer.java @@ -25,7 +25,7 @@ import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; import org.javahelpers.simple.builders.processor.generators.BuilderEnhancer; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; import org.javahelpers.simple.builders.processor.model.method.MethodDto; import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java index 886dfde6..493387b7 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/AddToCollectionGenerator.java @@ -24,7 +24,7 @@ package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.ArrayList; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java index c58a76de..df492715 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayBuilderConsumerGenerator.java @@ -25,7 +25,7 @@ package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.List; import org.javahelpers.simple.builders.core.builders.ArrayListBuilder; @@ -121,7 +121,7 @@ private MethodDto createFieldConsumerWithArrayBuilder( String fieldName = field.getOriginalFieldName(); String fieldNameInBuilder = field.getFieldNameInBuilder(); TypeNameGeneric builderTypeGeneric = new TypeNameGeneric(collectionBuilderType, elementType); - TypeNameGeneric consumerType = MethodGeneratorUtil.createConsumerType(builderTypeGeneric); + TypeNameGeneric consumerType = createConsumerType(builderTypeGeneric); MethodParameterDto parameter = new MethodParameterDto(); parameter.setParameterName(fieldName + BUILDER_SUFFIX + SUFFIX_CONSUMER); diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java index f1ce8b37..d045d9a8 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ArrayConversionGenerator.java @@ -25,7 +25,7 @@ package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.List; import org.javahelpers.simple.builders.processor.generators.MethodGenerator; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java index 1a0a383a..cf1bd0b9 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/BasicSetterGenerator.java @@ -24,6 +24,8 @@ package org.javahelpers.simple.builders.processor.generators.field; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; + import java.util.Collections; import java.util.List; import org.javahelpers.simple.builders.processor.generators.MethodGenerator; @@ -86,7 +88,7 @@ public List generateMethods( FieldDto field, TypeName builderType, ProcessingContext context) { MethodDto setterMethod = - MethodGeneratorUtil.createBuilderMethodForFieldWithTransform( + createBuilderMethodForFieldWithTransform( field, null, field.getFieldType(), builderType, context); return Collections.singletonList(setterMethod); diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java index 67358a91..756f3e90 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/FieldInstanceConsumerGenerator.java @@ -24,7 +24,7 @@ package org.javahelpers.simple.builders.processor.generators.field; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java index a1ebdd05..820d9504 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/ListConsumerGenerator.java @@ -25,7 +25,7 @@ package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; @@ -131,14 +131,14 @@ public List generateMethods( elementType, elementBuilderType.get()); MethodDto method = - MethodGeneratorUtil.createFieldConsumerWithElementBuilders( + createFieldConsumerWithElementBuilders( field, collectionBuilderType, elementBuilderType.get(), builderType, context); return List.of(method); } else if (context.getConfiguration().shouldUseArrayListBuilder()) { TypeName arrayListBuilderType = map2TypeName(ArrayListBuilder.class); TypeNameGeneric builderTypeGeneric = new TypeNameGeneric(arrayListBuilderType, elementType); MethodDto method = - MethodGeneratorUtil.createFieldConsumerWithBuilder( + createFieldConsumerWithBuilder( field, builderTypeGeneric, "this.$fieldName:N.value()", diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java index 1a37677e..3f3181e4 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MapConsumerGenerator.java @@ -25,7 +25,7 @@ package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; @@ -144,7 +144,7 @@ public List generateMethods( fieldTypeGeneric.getKeyType(), fieldTypeGeneric.getValueType()); MethodDto mapConsumerWithBuilder = - MethodGeneratorUtil.createFieldConsumerWithBuilder( + createFieldConsumerWithBuilder( field, builderTargetTypeName, "this.$fieldName:N.value()", diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java index c3311348..ba32d321 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/NestedBuilderConsumerGenerator.java @@ -24,6 +24,8 @@ package org.javahelpers.simple.builders.processor.generators.field; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; + import java.util.Collections; import java.util.List; import java.util.Map; @@ -102,7 +104,7 @@ public List generateMethods( TypeName fieldBuilderType = fieldBuilderOpt.get(); MethodDto method = - MethodGeneratorUtil.createFieldConsumerWithBuilder( + createFieldConsumerWithBuilder( field, fieldBuilderType, "this.$fieldName:N.value()", diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/OptionalHelperGenerator.java similarity index 96% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/OptionalHelperGenerator.java index d1062dc1..499cd4df 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/OptionalHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/OptionalHelperGenerator.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.util; +package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; @@ -30,7 +30,7 @@ import java.util.List; import org.apache.commons.collections4.CollectionUtils; import org.javahelpers.simple.builders.processor.generators.MethodGenerator; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; 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; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java index fe0bf85c..a02cf029 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SetConsumerGenerator.java @@ -25,6 +25,7 @@ package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; @@ -128,14 +129,14 @@ public List generateMethods( elementType, elementBuilderType.get()); MethodDto method = - MethodGeneratorUtil.createFieldConsumerWithElementBuilders( + createFieldConsumerWithElementBuilders( field, collectionBuilderType, elementBuilderType.get(), builderType, context); return List.of(method); } else if (context.getConfiguration().shouldUseHashSetBuilder()) { TypeName hashSetBuilderType = map2TypeName(HashSetBuilder.class); TypeNameGeneric builderTypeGeneric = new TypeNameGeneric(hashSetBuilderType, elementType); MethodDto method = - MethodGeneratorUtil.createFieldConsumerWithBuilder( + createFieldConsumerWithBuilder( field, builderTypeGeneric, "this.$fieldName:N.value()", diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java index 59af3d51..207afb19 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringBuilderConsumerGenerator.java @@ -26,7 +26,7 @@ import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.*; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.List; import org.javahelpers.simple.builders.processor.generators.MethodGenerator; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringFormatHelperGenerator.java similarity index 98% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringFormatHelperGenerator.java index 4e450b3a..17a538df 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/StringFormatHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/StringFormatHelperGenerator.java @@ -22,12 +22,12 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.util; +package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isParameterizedOptional; import static org.javahelpers.simple.builders.processor.analysis.TypeNameAnalyser.isString; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.ArrayList; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SupplierMethodGenerator.java similarity index 98% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SupplierMethodGenerator.java index ad75d118..5e64f022 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/SupplierMethodGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/SupplierMethodGenerator.java @@ -22,10 +22,10 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.util; +package org.javahelpers.simple.builders.processor.generators.field; import static org.javahelpers.simple.builders.processor.analysis.JavaLangMapper.map2TypeName; -import static org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil.*; +import static org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil.*; import java.util.Collections; import java.util.List; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/VarArgsHelperGenerator.java similarity index 97% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/VarArgsHelperGenerator.java index fcb29e72..0c82b18f 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/VarArgsHelperGenerator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/VarArgsHelperGenerator.java @@ -22,12 +22,12 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.util; +package org.javahelpers.simple.builders.processor.generators.field; import java.util.Collections; import java.util.List; import org.javahelpers.simple.builders.processor.generators.MethodGenerator; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; 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; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java index 908bff29..1f22c144 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/package-info.java @@ -3,11 +3,12 @@ * *

    Field-level method generators for the simple-builders processor. * - *

    This package contains generators that create methods for individual fields, including basic - * setters, collection consumers, array converters, and field-specific utility methods. These - * generators form the core API of generated builders. + *

    This package contains all generators that create methods for individual fields, forming the + * complete field-level API of generated builders. This includes basic setters, collection + * consumers, array converters, and specialized helper methods for various field types. * - *

    Key components include setter generators for various field types, consumer-based methods for - * complex types, and utilities for field method generation. + *

    These generators handle the full spectrum of field types and patterns: basic setters, + * consumer-based methods, collection handlers, array operations, optional field helpers, string + * formatting utilities, supplier methods, and varargs support. */ package org.javahelpers.simple.builders.processor.generators.field; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/MethodGeneratorUtil.java similarity index 99% rename from processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java rename to processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/MethodGeneratorUtil.java index 35447eb0..9fd90f30 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/MethodGeneratorUtil.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/MethodGeneratorUtil.java @@ -22,7 +22,7 @@ * SOFTWARE. */ -package org.javahelpers.simple.builders.processor.generators.field; +package org.javahelpers.simple.builders.processor.generators.util; import java.util.List; import java.util.Map; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java index 15cbac4b..c7d71fc8 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/generators/util/package-info.java @@ -1,13 +1,13 @@ /** * Package org.javahelpers.simple.builders.processor.generators.util * - *

    Utility generators for the simple-builders processor. + *

    Utility classes for the simple-builders generator framework. * - *

    This package contains generators that provide utility methods and helpers, enhancing the - * builder functionality beyond basic field setters and consumers. These include optional field - * helpers, string formatting utilities, supplier-based methods, and varargs support. + *

    This package contains utility classes and helper methods that support the generator system. + * These include common utilities for method generation, code creation patterns, and shared + * functionality used across different generators. * - *

    These generators provide additional convenience methods that make builders more flexible and - * powerful for various use cases. + *

    The utilities provide reusable components that simplify generator implementation and ensure + * consistency across the codebase. */ package org.javahelpers.simple.builders.processor.generators.util; diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java index ec56300f..220aeb03 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/processing/BuilderDefinitionCreator.java @@ -44,7 +44,7 @@ import org.javahelpers.simple.builders.processor.analysis.JavaLangAnalyser; import org.javahelpers.simple.builders.processor.analysis.JavaLangMapper; import org.javahelpers.simple.builders.processor.exceptions.BuilderException; -import org.javahelpers.simple.builders.processor.generators.field.MethodGeneratorUtil; +import org.javahelpers.simple.builders.processor.generators.util.MethodGeneratorUtil; import org.javahelpers.simple.builders.processor.model.annotation.AnnotationDto; import org.javahelpers.simple.builders.processor.model.core.BuilderDefinitionDto; import org.javahelpers.simple.builders.processor.model.core.FieldDto; diff --git a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator index 3c6d4503..e859fec3 100644 --- a/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator +++ b/processor/src/main/resources/META-INF/services/org.javahelpers.simple.builders.processor.generators.Generator @@ -4,16 +4,16 @@ # Field-level method generators (priority 100-25) org.javahelpers.simple.builders.processor.generators.field.BasicSetterGenerator -org.javahelpers.simple.builders.processor.generators.util.StringFormatHelperGenerator -org.javahelpers.simple.builders.processor.generators.util.OptionalHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.StringFormatHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.OptionalHelperGenerator org.javahelpers.simple.builders.processor.generators.field.NestedBuilderConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.FieldInstanceConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.ListConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.MapConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.SetConsumerGenerator org.javahelpers.simple.builders.processor.generators.field.StringBuilderConsumerGenerator -org.javahelpers.simple.builders.processor.generators.util.SupplierMethodGenerator -org.javahelpers.simple.builders.processor.generators.util.VarArgsHelperGenerator +org.javahelpers.simple.builders.processor.generators.field.SupplierMethodGenerator +org.javahelpers.simple.builders.processor.generators.field.VarArgsHelperGenerator org.javahelpers.simple.builders.processor.generators.field.AddToCollectionGenerator org.javahelpers.simple.builders.processor.generators.field.ArrayConversionGenerator org.javahelpers.simple.builders.processor.generators.field.ArrayBuilderConsumerGenerator From 2ba3847398bfaa039e09d8ffc750731463586051 Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 18:58:17 +0100 Subject: [PATCH 10/11] removing temporary script --- git-mv-script.sh | 109 ----------------------------------------------- 1 file changed, 109 deletions(-) delete mode 100755 git-mv-script.sh diff --git a/git-mv-script.sh b/git-mv-script.sh deleted file mode 100755 index e0df00ea..00000000 --- a/git-mv-script.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash - -# Script to properly move files using git mv to preserve history -# This script should be executed from the project root directory - -echo "Starting git mv operations to preserve file history..." - -# Create destination directories first -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/processing" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/validation" -mkdir -p "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet" - -echo "Created destination directories" - -# Move model classes from dtos to model subpackages -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderConfiguration.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/BuilderDefinitionDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/FieldDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/core/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodParameterDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodePlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeStringPlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/MethodCodeTypePlaceholder.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/method/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeName.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameArray.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameCollection.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameGeneric.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameList.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameMap.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNamePrimitive.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameSet.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/TypeNameVariable.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/GenericParameterDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/NestedTypeDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/type/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleDefinitionDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/JacksonModuleEntryDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/integration/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/AnnotationDto.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/dtos/InterfaceName.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/model/annotation/" - -# Move generator classes to subpackages -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BasicSetterGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/FieldConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ListConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MapConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SetConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringBuilderConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/AddToCollectionGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayConversionGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ArrayBuilderConsumerGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/MethodGeneratorUtil.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/field/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/StringFormatHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/OptionalHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/SupplierMethodGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/VarArgsHelperGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/helper/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/GeneratedAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/BuilderImplementationAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/JacksonAnnotationEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/InterfaceEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ClassJavaDocEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/CoreMethodsEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/WithInterfaceEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/ConditionalEnhancer.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/builder/" - -# Move util classes to appropriate packages -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderConfigurationReader.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/BuilderDefinitionCreator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/CompilerArgumentsReader.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingContext.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ProcessingLogger.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangAnalyser.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaLangMapper.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/FieldAnnotationExtractor.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/TypeNameAnalyser.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/AnnotationValidator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/validation/" - -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavaCodeGenerator.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" - -# Move exceptions -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/BuilderException.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/exceptions/JavapoetMapperException.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/classgen/javapoet/" - -# Move enums -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/enums/CompilerArgumentsEnum.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/processing/" - -# Move ComponentFilter to generators package -git mv "processor/src/main/java/org/javahelpers/simple/builders/processor/util/ComponentFilter.java" "processor/src/main/java/org/javahelpers/simple/builders/processor/generators/" - -echo "All git mv operations completed!" -echo "Now you can commit these changes to preserve the file history." From 722f7acde014a516feef4b244731551d9aa3aaee Mon Sep 17 00:00:00 2001 From: AndreasIgel Date: Sun, 15 Mar 2026 20:17:16 +0100 Subject: [PATCH 11/11] Undoing unwanted change in test --- .../CustomizingDocumentationTest.java | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java b/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java index 2570ff75..7faacda1 100644 --- a/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java +++ b/processor/src/test/java/org/javahelpers/simple/builders/processor/CustomizingDocumentationTest.java @@ -188,43 +188,31 @@ void testCustomGeneratorMethodCreation() { import java.util.List; public class CustomHelperGenerator implements MethodGenerator { - - private static final TypeName TRACKED_VALUE_TYPE = - new TypeName("org.javahelpers.simple.builders.core.util", "TrackedValue"); - @Override public boolean appliesTo(FieldDto field, TypeName dtoType, ProcessingContext context) { - return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()) - && field.hasAnnotation("javax.validation.constraints.Email"); + return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()); } @Override public List generateMethods(FieldDto field, TypeName builderType, ProcessingContext context) { String fieldName = field.getFieldNameInBuilder(); - String methodName = "validated" + capitalize(fieldName); + String methodName = "custom" + capitalize(fieldName); MethodDto method = new MethodDto(methodName, builderType); - String parameterName = fieldName; MethodParameterDto parameter = new MethodParameterDto(); - parameter.setParameterName(parameterName); + parameter.setParameterName("value"); parameter.setParameterTypeName(new TypeName("java.lang", "String")); method.addParameter(parameter); - method.setCode(String.format( - "if (%s != null && %s.contains(\\"@\\")) { " + - "this.%s = $builderFieldWrapper:T.changedValue(%s); " + - "return this; } " + - "throw new IllegalArgumentException(\\"Invalid email: \\" + %s);", - parameterName, parameterName, fieldName, parameterName, parameterName)); - method.addArgument("builderFieldWrapper", TRACKED_VALUE_TYPE); + method.setCode("return this." + fieldName + "(value.toUpperCase());"); return List.of(method); } @Override public int getPriority() { - return 1000; + return 200; } private String capitalize(String str) { @@ -413,6 +401,7 @@ public class CustomValidationGenerator implements MethodGenerator { @Override public boolean appliesTo(FieldDto field, TypeName dtoType, ProcessingContext context) { + // Only apply to String fields with @Email annotation return "java.lang.String".equals(field.getFieldType().getFullQualifiedName()) && field.hasAnnotation("javax.validation.constraints.Email"); }