From 60d4fc147290406c6cf61552b658135a9879cc36 Mon Sep 17 00:00:00 2001 From: Richard Tree Date: Tue, 6 Dec 2022 22:27:12 +0000 Subject: [PATCH] feat: add optional suffix to static builder --- .../java/io/soabase/recordbuilder/core/RecordBuilder.java | 6 ++++++ .../processor/InternalRecordBuilderProcessor.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/record-builder-core/src/main/java/io/soabase/recordbuilder/core/RecordBuilder.java b/record-builder-core/src/main/java/io/soabase/recordbuilder/core/RecordBuilder.java index 90757415..8707161b 100644 --- a/record-builder-core/src/main/java/io/soabase/recordbuilder/core/RecordBuilder.java +++ b/record-builder-core/src/main/java/io/soabase/recordbuilder/core/RecordBuilder.java @@ -253,6 +253,12 @@ */ boolean addStaticBuilder() default true; + /** + * If set, appends a suffix to the static builder method + */ + String staticBuilderSuffix() default ""; + + /** * If {@link #addSingleItemCollectionBuilders()} and {@link #useImmutableCollections()} are enabled the builder * uses an internal class to track changes to lists. This is the name of that class. diff --git a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java index 6bf79e29..5aab4ffb 100644 --- a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java +++ b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java @@ -363,7 +363,7 @@ public static MyRecord(int p1, T p2, ...) { } */ CodeBlock codeBlock = buildCodeBlock(); - var builder = MethodSpec.methodBuilder(recordClassType.name()) + var builder = MethodSpec.methodBuilder(recordClassType.name() + metaData.staticBuilderSuffix()) .addJavadoc("Static constructor/builder. Can be used instead of new $L(...)\n", recordClassType.name()) .addTypeVariables(typeVariables) .addModifiers(Modifier.PUBLIC, Modifier.STATIC)