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

Latest commit

 

History

History
129 lines (105 loc) · 5.36 KB

File metadata and controls

129 lines (105 loc) · 5.36 KB

Foo

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

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 Foo.Foo1Boxed
sealed interface for validated payloads
record Foo.Foo1BoxedMap
boxed class to store validated Map payloads
static class Foo.Foo1
schema class
static class Foo.FooMapBuilder
builder for Map payloads
static class Foo.FooMap
output class for Map payloads

Foo1Boxed

public sealed interface Foo1Boxed
permits
Foo1BoxedMap

sealed interface that stores validated payloads using boxed classes

Foo1BoxedMap

public record Foo1BoxedMap
implements Foo1Boxed

record that stores validated Map payloads, sealed permits implementation

Constructor Summary

Constructor and Description
Foo1BoxedMap(FooMap data)
Creates an instance, private visibility

Method Summary

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

Foo1

public static class Foo1
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.Foo;

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

static final SchemaConfiguration configuration = new SchemaConfiguration(JsonSchemaKeywordFlags.ofNone());

// Map validation
Foo.FooMap validatedPayload =
    Foo.Foo1.validate(
    new Foo.FooMapBuilder()
    .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("bar", Bar.Bar1.class)
)

Method Summary

Modifier and Type Method and Description
FooMap validate(Map<?, ?> arg, SchemaConfiguration configuration)
Foo1BoxedMap validateAndBox(Map<?, ?> arg, SchemaConfiguration configuration)
Foo1Boxed validateAndBox(@Nullable Object arg, SchemaConfiguration configuration)
@Nullable Object validate(@Nullable Object arg, SchemaConfiguration configuration)

FooMapBuilder

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

A class that builds the Map input type

Constructor Summary

Constructor and Description
FooMapBuilder()
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
FooMapBuilder bar(String value)
FooMapBuilder additionalProperty(String key, Void value)
FooMapBuilder additionalProperty(String key, boolean value)
FooMapBuilder additionalProperty(String key, String value)
FooMapBuilder additionalProperty(String key, int value)
FooMapBuilder additionalProperty(String key, float value)
FooMapBuilder additionalProperty(String key, long value)
FooMapBuilder additionalProperty(String key, double value)
FooMapBuilder additionalProperty(String key, List<?> value)
FooMapBuilder additionalProperty(String key, Map<String, ?> value)

FooMap

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

A class to store validated Map payloads

Method Summary

Modifier and Type Method and Description
static FooMap of(Map<String, ? extends @Nullable Object> arg, SchemaConfiguration configuration)
String bar()
[optional]
@Nullable Object getAdditionalProperty(String name)
provides type safety for additional properties

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