Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Latest commit

 

History

History
254 lines (200 loc) · 11 KB

File metadata and controls

254 lines (200 loc) · 11 KB

ApiResponseSchema

org.openapijsonschematools.client.components.schemas.ApiResponseSchema.java public class ApiResponseSchema

A class that contains necessary nested

  • schema classes (which validate payloads), extends JsonSchema
  • sealed interfaces which store validated payloads, java version of a sum type
  • boxed classes which store validated payloads, sealed permits class implementations
  • classes to store validated map payloads, extends FrozenMap
  • classes to build inputs for map payloads

Nested Class Summary

Modifier and Type Class and Description
sealed interface ApiResponseSchema.ApiResponseSchema1Boxed
sealed interface for validated payloads
record ApiResponseSchema.ApiResponseSchema1BoxedMap
boxed class to store validated Map payloads
static class ApiResponseSchema.ApiResponseSchema1
schema class
static class ApiResponseSchema.ApiResponseMapBuilder
builder for Map payloads
static class ApiResponseSchema.ApiResponseMap
output class for Map payloads
sealed interface ApiResponseSchema.MessageBoxed
sealed interface for validated payloads
record ApiResponseSchema.MessageBoxedString
boxed class to store validated String payloads
static class ApiResponseSchema.Message
schema class
sealed interface ApiResponseSchema.TypeBoxed
sealed interface for validated payloads
record ApiResponseSchema.TypeBoxedString
boxed class to store validated String payloads
static class ApiResponseSchema.Type
schema class
sealed interface ApiResponseSchema.CodeBoxed
sealed interface for validated payloads
record ApiResponseSchema.CodeBoxedNumber
boxed class to store validated Number payloads
static class ApiResponseSchema.Code
schema class

ApiResponseSchema1Boxed

public sealed interface ApiResponseSchema1Boxed
permits
ApiResponseSchema1BoxedMap

sealed interface that stores validated payloads using boxed classes

ApiResponseSchema1BoxedMap

public record ApiResponseSchema1BoxedMap
implements ApiResponseSchema1Boxed

record that stores validated Map payloads, sealed permits implementation

Constructor Summary

Constructor and Description
ApiResponseSchema1BoxedMap(ApiResponseMap data)
Creates an instance, private visibility

Method Summary

Modifier and Type Method and Description
ApiResponseMap data()
validated payload
@Nullable Object getData()
validated payload

ApiResponseSchema1

public static class ApiResponseSchema1
extends JsonSchema

A schema class that validates payloads

Code Sample

import org.openapijsonschematools.client.configurations.JsonSchemaKeywordFlags;
import org.openapijsonschematools.client.configurations.SchemaConfiguration;
import org.openapijsonschematools.client.exceptions.ValidationException;
import org.openapijsonschematools.client.schemas.validation.MapUtils;
import org.openapijsonschematools.client.schemas.validation.FrozenList;
import org.openapijsonschematools.client.schemas.validation.FrozenMap;
import org.openapijsonschematools.client.components.schemas.ApiResponseSchema;

import java.util.Arrays;
import java.util.List;
import java.util.AbstractMap;

static final SchemaConfiguration configuration = new SchemaConfiguration(new JsonSchemaKeywordFlags.Builder().build());

// Map validation
ApiResponseSchema.ApiResponseMap validatedPayload =
    ApiResponseSchema.ApiResponseSchema1.validate(
    new ApiResponseSchema.ApiResponseMapBuilder()
        .code(1)

        .type("a")

        .message("a")

    .build(),
    configuration
);

Field Summary

Modifier and Type Field and Description
Set<Class<?>> type = Set.of(Map.class)
Map<String, Class<? extends JsonSchema>> properties = Map.ofEntries(
    new PropertyEntry("code", Code.class)),
    new PropertyEntry("type", Type.class)),
    new PropertyEntry("message", Message.class))
)

Method Summary

Modifier and Type Method and Description
ApiResponseMap validate(Map<?, ?> arg, SchemaConfiguration configuration)
ApiResponseSchema1BoxedMap validateAndBox(Map<?, ?> arg, SchemaConfiguration configuration)
ApiResponseSchema1Boxed validateAndBox(@Nullable Object arg, SchemaConfiguration configuration)
@Nullable Object validate(@Nullable Object arg, SchemaConfiguration configuration)

ApiResponseMapBuilder

public class ApiResponseMapBuilder
builder for Map<String, @Nullable Object>

A class that builds the Map input type

Constructor Summary

Constructor and Description
ApiResponseMapBuilder()
Creates a builder that contains an empty map

Method Summary

Modifier and Type Method and Description
Map<String, @Nullable Object> build()
Returns map input that should be used with Schema.validate
ApiResponseMapBuilder code(int value)
ApiResponseMapBuilder code(float value)
ApiResponseMapBuilder type(String value)
ApiResponseMapBuilder message(String value)
ApiResponseMapBuilder additionalProperty(String key, Void value)
ApiResponseMapBuilder additionalProperty(String key, boolean value)
ApiResponseMapBuilder additionalProperty(String key, String value)
ApiResponseMapBuilder additionalProperty(String key, int value)
ApiResponseMapBuilder additionalProperty(String key, float value)
ApiResponseMapBuilder additionalProperty(String key, long value)
ApiResponseMapBuilder additionalProperty(String key, double value)
ApiResponseMapBuilder additionalProperty(String key, List<?> value)
ApiResponseMapBuilder additionalProperty(String key, Map<String, ?> value)

ApiResponseMap

public static class ApiResponseMap
extends FrozenMap<String, @Nullable Object>

A class to store validated Map payloads

Method Summary

Modifier and Type Method and Description
static ApiResponseMap of(Map<String, ? extends @Nullable Object> arg, SchemaConfiguration configuration)
Number code()
[optional] value must be a 32 bit integer
String type()
[optional]
String message()
[optional]
@Nullable Object getAdditionalProperty(String name)
provides type safety for additional properties

MessageBoxed

public sealed interface MessageBoxed
permits
MessageBoxedString

sealed interface that stores validated payloads using boxed classes

MessageBoxedString

public record MessageBoxedString
implements MessageBoxed

record that stores validated String payloads, sealed permits implementation

Constructor Summary

Constructor and Description
MessageBoxedString(String data)
Creates an instance, private visibility

Method Summary

Modifier and Type Method and Description
String data()
validated payload
@Nullable Object getData()
validated payload

Message

public static class Message
extends StringJsonSchema.StringJsonSchema1

A schema class that validates payloads

Methods Inherited from class org.openapijsonschematools.client.schemas.StringJsonSchema.StringJsonSchema1
validate
validateAndBox

TypeBoxed

public sealed interface TypeBoxed
permits
TypeBoxedString

sealed interface that stores validated payloads using boxed classes

TypeBoxedString

public record TypeBoxedString
implements TypeBoxed

record that stores validated String payloads, sealed permits implementation

Constructor Summary

Constructor and Description
TypeBoxedString(String data)
Creates an instance, private visibility

Method Summary

Modifier and Type Method and Description
String data()
validated payload
@Nullable Object getData()
validated payload

Type

public static class Type
extends StringJsonSchema.StringJsonSchema1

A schema class that validates payloads

Methods Inherited from class org.openapijsonschematools.client.schemas.StringJsonSchema.StringJsonSchema1
validate
validateAndBox

CodeBoxed

public sealed interface CodeBoxed
permits
CodeBoxedNumber

sealed interface that stores validated payloads using boxed classes

CodeBoxedNumber

public record CodeBoxedNumber
implements CodeBoxed

record that stores validated Number payloads, sealed permits implementation

Constructor Summary

Constructor and Description
CodeBoxedNumber(Number data)
Creates an instance, private visibility

Method Summary

Modifier and Type Method and Description
Number data()
validated payload
@Nullable Object getData()
validated payload

Code

public static class Code
extends Int32JsonSchema.Int32JsonSchema1

A schema class that validates payloads

Methods Inherited from class org.openapijsonschematools.client.schemas.Int32JsonSchema.Int32JsonSchema1
validate
validateAndBox

[Back to top] [Back to Component Schemas] [Back to README]