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

Files

Latest commit

cc176d1 · Apr 8, 2024

History

History
174 lines (139 loc) · 7.41 KB

File metadata and controls

174 lines (139 loc) · 7.41 KB

Player

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

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 Player.Player1Boxed
sealed interface for validated payloads
record Player.Player1BoxedMap
boxed class to store validated Map payloads
static class Player.Player1
schema class
static class Player.PlayerMapBuilder
builder for Map payloads
static class Player.PlayerMap
output class for Map payloads
sealed interface Player.NameBoxed
sealed interface for validated payloads
record Player.NameBoxedString
boxed class to store validated String payloads
static class Player.Name
schema class

Player1Boxed

public sealed interface Player1Boxed
permits
Player1BoxedMap

sealed interface that stores validated payloads using boxed classes

Player1BoxedMap

public record Player1BoxedMap
implements Player1Boxed

record that stores validated Map payloads, sealed permits implementation

Constructor Summary

Constructor and Description
Player1BoxedMap(PlayerMap data)
Creates an instance, private visibility

Method Summary

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

Player1

public static class Player1
extends JsonSchema

A schema class that validates payloads

Description

a model that includes a self reference this forces properties and additionalProperties to be lazy loaded in python models because the Player class has not fully loaded when defining properties

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.Player;

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

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

// Map validation
Player.PlayerMap validatedPayload =
    Player.Player1.validate(
    new Player.PlayerMapBuilder()
        .name("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("name", Name.class)),
    new PropertyEntry("enemyPlayer", Player1.class))
)

Method Summary

Modifier and Type Method and Description
PlayerMap validate(Map<?, ?> arg, SchemaConfiguration configuration)
Player1BoxedMap validateAndBox(Map<?, ?> arg, SchemaConfiguration configuration)
Player1Boxed validateAndBox(@Nullable Object arg, SchemaConfiguration configuration)
@Nullable Object validate(@Nullable Object arg, SchemaConfiguration configuration)

PlayerMapBuilder

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

A class that builds the Map input type

Constructor Summary

Constructor and Description
PlayerMapBuilder()
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
PlayerMapBuilder name(String value)
PlayerMapBuilder enemyPlayer(Map<String, @Nullable Object> value)
PlayerMapBuilder additionalProperty(String key, Void value)
PlayerMapBuilder additionalProperty(String key, boolean value)
PlayerMapBuilder additionalProperty(String key, String value)
PlayerMapBuilder additionalProperty(String key, int value)
PlayerMapBuilder additionalProperty(String key, float value)
PlayerMapBuilder additionalProperty(String key, long value)
PlayerMapBuilder additionalProperty(String key, double value)
PlayerMapBuilder additionalProperty(String key, List<?> value)
PlayerMapBuilder additionalProperty(String key, Map<String, ?> value)

PlayerMap

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

A class to store validated Map payloads

Method Summary

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

NameBoxed

public sealed interface NameBoxed
permits
NameBoxedString

sealed interface that stores validated payloads using boxed classes

NameBoxedString

public record NameBoxedString
implements NameBoxed

record that stores validated String payloads, sealed permits implementation

Constructor Summary

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

Method Summary

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

Name

public static class Name
extends StringJsonSchema.StringJsonSchema1

A schema class that validates payloads

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

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