diff --git a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumExample.java b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumExample.java index 8073a5258..5d0d0157b 100644 --- a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumExample.java +++ b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumExample.java @@ -163,7 +163,7 @@ private static final class VisitorBuilder implements OneStageVisitorBuilder, TwoStageVisitorBuilder, OneHundredStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier oneVisitor; @@ -188,7 +188,7 @@ public OneHundredStageVisitorBuilder visitTwo(@Nonnull Supplier twoVisitor } @Override - public UnknownStageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor) { + public Unknown_StageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor) { Preconditions.checkNotNull(oneHundredVisitor, "oneHundredVisitor cannot be null"); this.oneHundredVisitor = oneHundredVisitor; return this; @@ -249,10 +249,10 @@ public interface TwoStageVisitorBuilder { } public interface OneHundredStageVisitorBuilder { - UnknownStageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor); + Unknown_StageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumNameTestExample.java b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumNameTestExample.java index 83badd090..724111c4f 100644 --- a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumNameTestExample.java +++ b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/EnumNameTestExample.java @@ -124,7 +124,7 @@ static IncompleteStageVisitorBuilder builder() { private static final class VisitorBuilder implements IncompleteStageVisitorBuilder, CompletedStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier incompleteVisitor; @@ -140,7 +140,7 @@ public CompletedStageVisitorBuilder visitIncomplete(@Nonnull Supplier inco } @Override - public UnknownStageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor) { + public Unknown_StageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor) { Preconditions.checkNotNull(completedVisitor, "completedVisitor cannot be null"); this.completedVisitor = completedVisitor; return this; @@ -191,10 +191,10 @@ public interface IncompleteStageVisitorBuilder { } public interface CompletedStageVisitorBuilder { - UnknownStageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor); + Unknown_StageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/SimpleEnum.java index 30c00cf8f..945799b82 100644 --- a/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/allexamples/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/EnumExample.java b/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/EnumExample.java index ebecf6315..234ecc865 100644 --- a/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/EnumExample.java +++ b/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/EnumExample.java @@ -123,7 +123,7 @@ static AStageVisitorBuilder builder() { private static final class VisitorBuilder implements AStageVisitorBuilder, BStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier aVisitor; @@ -139,7 +139,7 @@ public BStageVisitorBuilder visitA(@Nonnull Supplier aVisitor) { } @Override - public UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { + public Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { Preconditions.checkNotNull(bVisitor, "bVisitor cannot be null"); this.bVisitor = bVisitor; return this; @@ -190,10 +190,10 @@ public interface AStageVisitorBuilder { } public interface BStageVisitorBuilder { - UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor); + Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/SimpleEnum.java index fe3e0f845..38dc0c0df 100644 --- a/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/dialogue/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/endpointerrors/com/palantir/product/OptionalBinaryResponseMode.java b/conjure-java-core/src/integrationInput/java/endpointerrors/com/palantir/product/OptionalBinaryResponseMode.java index 6f2dcfab4..b67b6990a 100644 --- a/conjure-java-core/src/integrationInput/java/endpointerrors/com/palantir/product/OptionalBinaryResponseMode.java +++ b/conjure-java-core/src/integrationInput/java/endpointerrors/com/palantir/product/OptionalBinaryResponseMode.java @@ -137,7 +137,7 @@ private static final class VisitorBuilder implements PresentStageVisitorBuilder, AbsentStageVisitorBuilder, ErrorStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier presentVisitor; @@ -162,7 +162,7 @@ public ErrorStageVisitorBuilder visitAbsent(@Nonnull Supplier absentVisito } @Override - public UnknownStageVisitorBuilder visitError(@Nonnull Supplier errorVisitor) { + public Unknown_StageVisitorBuilder visitError(@Nonnull Supplier errorVisitor) { Preconditions.checkNotNull(errorVisitor, "errorVisitor cannot be null"); this.errorVisitor = errorVisitor; return this; @@ -224,10 +224,10 @@ public interface AbsentStageVisitorBuilder { } public interface ErrorStageVisitorBuilder { - UnknownStageVisitorBuilder visitError(@Nonnull Supplier errorVisitor); + Unknown_StageVisitorBuilder visitError(@Nonnull Supplier errorVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/errors/com/palantir/product/EnumExample.java b/conjure-java-core/src/integrationInput/java/errors/com/palantir/product/EnumExample.java index 70e47559b..3b43251ad 100644 --- a/conjure-java-core/src/integrationInput/java/errors/com/palantir/product/EnumExample.java +++ b/conjure-java-core/src/integrationInput/java/errors/com/palantir/product/EnumExample.java @@ -123,7 +123,7 @@ static AStageVisitorBuilder builder() { private static final class VisitorBuilder implements AStageVisitorBuilder, BStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier aVisitor; @@ -139,7 +139,7 @@ public BStageVisitorBuilder visitA(@Nonnull Supplier aVisitor) { } @Override - public UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { + public Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { Preconditions.checkNotNull(bVisitor, "bVisitor cannot be null"); this.bVisitor = bVisitor; return this; @@ -190,10 +190,10 @@ public interface AStageVisitorBuilder { } public interface BStageVisitorBuilder { - UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor); + Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/EnumExample.java b/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/EnumExample.java index bac548d59..bf1446d41 100644 --- a/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/EnumExample.java +++ b/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/EnumExample.java @@ -123,7 +123,7 @@ static AStageVisitorBuilder builder() { private static final class VisitorBuilder implements AStageVisitorBuilder, BStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier aVisitor; @@ -139,7 +139,7 @@ public BStageVisitorBuilder visitA(@Nonnull Supplier aVisitor) { } @Override - public UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { + public Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor) { Preconditions.checkNotNull(bVisitor, "bVisitor cannot be null"); this.bVisitor = bVisitor; return this; @@ -190,10 +190,10 @@ public interface AStageVisitorBuilder { } public interface BStageVisitorBuilder { - UnknownStageVisitorBuilder visitB(@Nonnull Supplier bVisitor); + Unknown_StageVisitorBuilder visitB(@Nonnull Supplier bVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/SimpleEnum.java index e7997ee7e..50c7159e7 100644 --- a/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/exceptionthrowingdialogueinterfaces/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/jersey/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/jersey/com/palantir/product/SimpleEnum.java index 75e549b48..2d39a9625 100644 --- a/conjure-java-core/src/integrationInput/java/jersey/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/jersey/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumExample.java b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumExample.java index 4be326a44..df980177c 100644 --- a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumExample.java +++ b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumExample.java @@ -163,7 +163,7 @@ private static final class VisitorBuilder implements OneStageVisitorBuilder, TwoStageVisitorBuilder, OneHundredStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier oneVisitor; @@ -188,7 +188,7 @@ public OneHundredStageVisitorBuilder visitTwo(@Nonnull Supplier twoVisitor } @Override - public UnknownStageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor) { + public Unknown_StageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor) { Preconditions.checkNotNull(oneHundredVisitor, "oneHundredVisitor cannot be null"); this.oneHundredVisitor = oneHundredVisitor; return this; @@ -249,10 +249,10 @@ public interface TwoStageVisitorBuilder { } public interface OneHundredStageVisitorBuilder { - UnknownStageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor); + Unknown_StageVisitorBuilder visitOneHundred(@Nonnull Supplier oneHundredVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumNameTestExample.java b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumNameTestExample.java index cf7e1e27b..91d1b6e55 100644 --- a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumNameTestExample.java +++ b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/EnumNameTestExample.java @@ -124,7 +124,7 @@ static IncompleteStageVisitorBuilder builder() { private static final class VisitorBuilder implements IncompleteStageVisitorBuilder, CompletedStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier incompleteVisitor; @@ -140,7 +140,7 @@ public CompletedStageVisitorBuilder visitIncomplete(@Nonnull Supplier inco } @Override - public UnknownStageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor) { + public Unknown_StageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor) { Preconditions.checkNotNull(completedVisitor, "completedVisitor cannot be null"); this.completedVisitor = completedVisitor; return this; @@ -191,10 +191,10 @@ public interface IncompleteStageVisitorBuilder { } public interface CompletedStageVisitorBuilder { - UnknownStageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor); + Unknown_StageVisitorBuilder visitCompleted(@Nonnull Supplier completedVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/SimpleEnum.java index 97f8d252e..115bb7886 100644 --- a/conjure-java-core/src/integrationInput/java/template/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/template/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/OptionalBinaryResponseMode.java b/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/OptionalBinaryResponseMode.java index 92d7a9089..951b95dea 100644 --- a/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/OptionalBinaryResponseMode.java +++ b/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/OptionalBinaryResponseMode.java @@ -137,7 +137,7 @@ private static final class VisitorBuilder implements PresentStageVisitorBuilder, AbsentStageVisitorBuilder, ErrorStageVisitorBuilder, - UnknownStageVisitorBuilder, + Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier presentVisitor; @@ -162,7 +162,7 @@ public ErrorStageVisitorBuilder visitAbsent(@Nonnull Supplier absentVisito } @Override - public UnknownStageVisitorBuilder visitError(@Nonnull Supplier errorVisitor) { + public Unknown_StageVisitorBuilder visitError(@Nonnull Supplier errorVisitor) { Preconditions.checkNotNull(errorVisitor, "errorVisitor cannot be null"); this.errorVisitor = errorVisitor; return this; @@ -224,10 +224,10 @@ public interface AbsentStageVisitorBuilder { } public interface ErrorStageVisitorBuilder { - UnknownStageVisitorBuilder visitError(@Nonnull Supplier errorVisitor); + Unknown_StageVisitorBuilder visitError(@Nonnull Supplier errorVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/SimpleEnum.java b/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/SimpleEnum.java index b7f4071f7..0b2fd8392 100644 --- a/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/SimpleEnum.java +++ b/conjure-java-core/src/integrationInput/java/undertow/com/palantir/product/SimpleEnum.java @@ -111,13 +111,13 @@ static ValueStageVisitorBuilder builder() { } private static final class VisitorBuilder - implements ValueStageVisitorBuilder, UnknownStageVisitorBuilder, Completed_StageVisitorBuilder { + implements ValueStageVisitorBuilder, Unknown_StageVisitorBuilder, Completed_StageVisitorBuilder { private Supplier valueVisitor; private Function<@Safe String, T> unknownVisitor; @Override - public UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { + public Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor) { Preconditions.checkNotNull(valueVisitor, "valueVisitor cannot be null"); this.valueVisitor = valueVisitor; return this; @@ -158,10 +158,10 @@ public T visitUnknown(String unknownType) { } public interface ValueStageVisitorBuilder { - UnknownStageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); + Unknown_StageVisitorBuilder visitValue(@Nonnull Supplier valueVisitor); } - public interface UnknownStageVisitorBuilder { + public interface Unknown_StageVisitorBuilder { Completed_StageVisitorBuilder visitUnknown(@Nonnull Function<@Safe String, T> unknownVisitor); Completed_StageVisitorBuilder throwOnUnknown(); diff --git a/conjure-java-core/src/main/java/com/palantir/conjure/java/types/EnumGenerator.java b/conjure-java-core/src/main/java/com/palantir/conjure/java/types/EnumGenerator.java index 5e30c3501..574e9e0e0 100644 --- a/conjure-java-core/src/main/java/com/palantir/conjure/java/types/EnumGenerator.java +++ b/conjure-java-core/src/main/java/com/palantir/conjure/java/types/EnumGenerator.java @@ -66,6 +66,7 @@ public final class EnumGenerator { private static final TypeVariableName TYPE_VARIABLE = TypeVariableName.get("T"); private static final String UNKNOWN_TYPE_PARAM_NAME = "unknownType"; private static final String UNKNOWN_TYPE_NAME = "unknown"; + private static final String UNKNOWN_HANDLER_STAGE = "unknown_"; private static final String COMPLETED = "completed_"; private static final String STAGE_VISITOR_BUILDER = "StageVisitorBuilder"; private static final String VISITOR_FIELD_NAME_SUFFIX = "Visitor"; @@ -222,7 +223,7 @@ private static TypeSpec createVisitor( private static Stream stageEnumNames(Iterable values) { return Stream.concat( - ImmutableList.copyOf(values).stream().map(EnumValueDefinition::getValue), Stream.of(UNKNOWN_TYPE_NAME)); + ImmutableList.copyOf(values).stream().map(EnumValueDefinition::getValue), Stream.of(UNKNOWN_HANDLER_STAGE)); } private static List generateMemberVisitMethods(Iterable values) { @@ -277,7 +278,7 @@ private static List generateVisitorBuilderStageInterfaces( String value = valueIter.next(); String nextBuilderStageName = valueIter.hasNext() ? valueIter.peek() : COMPLETED; ClassName nextStageClassName = visitorStageInterfaceName(enclosingClass, nextBuilderStageName); - List methods = UNKNOWN_TYPE_NAME.equals(value) + List methods = UNKNOWN_HANDLER_STAGE.equals(value) ? unknownSpecificVisitorPrototypes(visitResultType, nextStageClassName) : ImmutableList.of(visitorBuilderSetterPrototype(value, visitResultType, nextStageClassName) .addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT) @@ -348,14 +349,15 @@ private static List allVisitorBuilderFields( Iterable values, TypeVariableName visitResultType) { return stageEnumNames(values) .map(value -> FieldSpec.builder( - UNKNOWN_TYPE_NAME.equals(value) + UNKNOWN_HANDLER_STAGE.equals(value) ? ParameterizedTypeName.get( ClassName.get(Function.class), UNKNOWN_MEMBER_TYPE.annotated(AnnotationSpec.builder(Safe.class) .build()), visitResultType) : visitorObjectTypeName(visitResultType), - visitorFieldName(value), + visitorFieldName( + UNKNOWN_HANDLER_STAGE.equals(value) ? UNKNOWN_TYPE_NAME : value), Modifier.PRIVATE) .build()) .collect(Collectors.toList()); @@ -380,7 +382,7 @@ private static List allVisitorBuilderSetters( String value = valueIter.next(); String nextBuilderStage = valueIter.hasNext() ? valueIter.peek() : COMPLETED; ClassName nextVisitorStageClassName = visitorStageInterfaceName(enclosingClass, nextBuilderStage); - if (UNKNOWN_TYPE_NAME.equals(value)) { + if (UNKNOWN_HANDLER_STAGE.equals(value)) { setterMethods.addAll( unknownSpecificVisitorSetters(enclosingClass, visitResultType, nextVisitorStageClassName)); } else { @@ -535,12 +537,15 @@ private static MethodSpec builderBuildMethod( private static List allDelegatingVisitorMethods( Iterable values, TypeName visitorResultType) { return stageEnumNames(values) - .map(value -> UNKNOWN_TYPE_NAME.equals(value) - ? MethodSpec.methodBuilder(getVisitorMethodName(value)) + .map(value -> UNKNOWN_HANDLER_STAGE.equals(value) + ? MethodSpec.methodBuilder(VISIT_UNKNOWN_METHOD_NAME) .addModifiers(Modifier.PUBLIC) .addAnnotation(Override.class) .addParameter(UNKNOWN_MEMBER_TYPE, UNKNOWN_TYPE_PARAM_NAME) - .addStatement("return $N.apply($N)", visitorFieldName(value), UNKNOWN_TYPE_PARAM_NAME) + .addStatement( + "return $N.apply($N)", + visitorFieldName(UNKNOWN_TYPE_NAME), + UNKNOWN_TYPE_PARAM_NAME) .returns(visitorResultType) .build() : MethodSpec.methodBuilder(getVisitorMethodName(value)) diff --git a/conjure-java-core/src/test/java/com/palantir/conjure/java/types/EnumGeneratorTest.java b/conjure-java-core/src/test/java/com/palantir/conjure/java/types/EnumGeneratorTest.java new file mode 100644 index 000000000..1f4e0405c --- /dev/null +++ b/conjure-java-core/src/test/java/com/palantir/conjure/java/types/EnumGeneratorTest.java @@ -0,0 +1,79 @@ +/* + * (c) Copyright 2026 Palantir Technologies Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.palantir.conjure.java.types; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.palantir.conjure.defs.Conjure; +import com.palantir.conjure.defs.ConjureArgs; +import com.palantir.conjure.defs.SafetyDeclarationRequirements; +import com.palantir.conjure.java.Options; +import com.palantir.conjure.spec.ConjureDefinition; +import com.palantir.conjure.spec.EnumDefinition; +import com.palantir.conjure.spec.EnumValueDefinition; +import com.palantir.conjure.spec.TypeName; +import com.palantir.conjure.visitor.TypeDefinitionVisitor; +import com.palantir.javapoet.JavaFile; +import java.io.File; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class EnumGeneratorTest { + + private static final TypeName TEST_ENUM = TypeName.of("TestEnumWithUnknownMember", "com.test"); + + @Test + void visitorBuilderUsesUnderscoreForUnknownHandlerStage() { + String source = generateSource(parseEnum("src/test/resources/enum-one-value.yml")); + + assertThat(source).contains("Unknown_StageVisitorBuilder"); + assertThat(source).doesNotContain("interface UnknownStageVisitorBuilder"); + } + + @Test + void visitorBuilderAvoidsUnknownStageNameCollisionWhenEnumHasUnknownMember() { + EnumDefinition definition = EnumDefinition.builder() + .typeName(TEST_ENUM) + .values(EnumValueDefinition.builder().value("INCOMPLETE").build()) + .values(EnumValueDefinition.builder().value("UNKNOWN").build()) + .build(); + + String source = generateSource(definition); + + assertThat(source).contains("interface UnknownStageVisitorBuilder"); + assertThat(source).contains("interface Unknown_StageVisitorBuilder"); + assertThat(source.split("interface UnknownStageVisitorBuilder", -1)).hasSize(2); + assertThat(source.split("interface Unknown_StageVisitorBuilder", -1)).hasSize(2); + } + + private static EnumDefinition parseEnum(String yamlPath) { + ConjureDefinition conjureDef = Conjure.parse(ConjureArgs.builder() + .definitions(List.of(new File(yamlPath))) + .safetyDeclarations(SafetyDeclarationRequirements.ALLOWED) + .build()); + return conjureDef.getTypes().stream() + .filter(typeDef -> typeDef.accept(TypeDefinitionVisitor.IS_ENUM)) + .map(typeDef -> typeDef.accept(TypeDefinitionVisitor.ENUM)) + .findFirst() + .orElseThrow(); + } + + private static String generateSource(EnumDefinition definition) { + JavaFile file = EnumGenerator.generateEnumType(definition, Options.builder().build()); + return file.toString(); + } +} diff --git a/conjure-java-core/src/test/resources/enum-one-value.yml b/conjure-java-core/src/test/resources/enum-one-value.yml new file mode 100644 index 000000000..6371a4d80 --- /dev/null +++ b/conjure-java-core/src/test/resources/enum-one-value.yml @@ -0,0 +1,7 @@ +types: + definitions: + default-package: com.test + objects: + OneValueEnum: + values: + - ONE