@Override public TypeDefinition visit(ObjectTypeDefinition def) { return ConjureParserUtils.parseObjectType( ConjureParserUtils.createTypeName(name, def, defaultPackage), def, typeResolver); }
@Override public TypeDefinition visit(EnumTypeDefinition def) { return ConjureParserUtils.parseEnumType( ConjureParserUtils.createTypeName(name, def, defaultPackage), def); }
@Override public TypeDefinition visit(AliasTypeDefinition def) { return ConjureParserUtils.parseAliasType( ConjureParserUtils.createTypeName(name, def, defaultPackage), def, typeResolver); }
@Value.Immutable @ConjureImmutablesStyle public interface BinaryType extends ConjureType { // marker interface @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitBinary(this); } static BinaryType of() { return ImmutableBinaryType.builder().build(); } }
@Override public TypeDefinition visit(UnionTypeDefinition def) { return ConjureParserUtils.parseUnionType( ConjureParserUtils.createTypeName(name, def, defaultPackage), def, typeResolver); } }
@Override public Type visitLocalReference(LocalReferenceType type) { return nameResolver.resolve(type); }
@Override public Type visitPrimitive(PrimitiveType type) { return ConjureParserUtils.parsePrimitiveType(type); }
@Override public Type resolve(LocalReferenceType reference) { return resolveFromTypeName(reference.type(), types); }
@Value.Immutable @ConjureImmutablesStyle public interface DateTimeType extends ConjureType { @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitDateTime(this); } // marker interface static DateTimeType of() { return ImmutableDateTimeType.builder().build(); } }
@Override public Type visitForeignReference(ForeignReferenceType type) { return nameResolver.resolve(type); }
@Value.Immutable @ConjureImmutablesStyle public interface ForeignReferenceType extends ReferenceType { Namespace namespace(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitForeignReference(this); } static ForeignReferenceType of(Namespace namespace, TypeName type) { return ImmutableForeignReferenceType.builder().namespace(namespace).type(type).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface AnyType extends ConjureType { @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitAny(this); } // marker interface static AnyType of() { return ImmutableAnyType.builder().build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface SetType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitSet(this); } static SetType of(ConjureType itemType) { return ImmutableSetType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface OptionalType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitOptional(this); } static OptionalType of(ConjureType itemType) { return ImmutableOptionalType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface ListType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitList(this); } static ListType of(ConjureType itemType) { return ImmutableListType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface MapType extends ConjureType { @JsonProperty("key-type") ConjureType keyType(); @JsonProperty("value-type") ConjureType valueType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitMap(this); } static MapType of(ConjureType keyType, ConjureType valueType) { return ImmutableMapType.builder().keyType(keyType).valueType(valueType).build(); } }
@JsonDeserialize(as = ImmutableExternalImportDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface ExternalImportDefinition { String java(); static ExternalImportDefinition of(String external) { return ImmutableExternalImportDefinition.builder().java(external).build(); } }
@JsonDeserialize(as = ImmutableTestCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface TestCaseDefinition { @JsonProperty("test-case-name") String testCaseName(); @JsonProperty("negative") Optional<SortedMap<String, NegativeCaseDefinition>> negative(); @JsonProperty("positive") Optional<SortedMap<String, PositiveCaseDefinition>> positive(); }
@JsonDeserialize(as = ImmutableNegativeCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface NegativeCaseDefinition { @JsonProperty("expected-error") String expectedError(); @JsonProperty("conjure") Object conjure(); }
@JsonDeserialize(as = ImmutablePositiveCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface PositiveCaseDefinition { @JsonProperty("conjure") Object conjure(); }