BuilderCodec

public class BuilderCodec

A fluent builder-style codec for complex object serialization. Provides type-safe field registration with automatic validation and schema generation.

java.lang.Object > BuilderCodec

Field Summary

min

final int min

Field min.

t

final T t

Field t.

results

final ValidationResults results

Field results.

document

final BsonDocument document

Field document.

key

final String key

Field key.

treeMapEntry

final StringTreeMap> treeMapEntry

Field treeMapEntry.

keyEntry

final KeyEntry keyEntry

Field keyEntry.

codec

final KeyedCodec codec

Field codec.

bsonValue

final BsonValue bsonValue

Field bsonValue.

inheritCodec

final BuilderCodec inheritCodec

Field inheritCodec.

value

final FieldType value

Field value.

parentValue

final FieldType parentValue

Field parentValue.

read

final int read

Field read.

version

final int version

Field version.

schema

final ObjectSchema schema

Field schema.

comment

final Schema comment

Field comment.

meta

final Metadata meta

Field meta.

c

final Codec c

Field c.

fieldSchema

final Schema fieldSchema

Field fieldSchema.

type

final String type

Field type.

field

final F field

Field field.

documentation

protected String documentation

Field documentation.

metadata

protected List metadata

Field metadata.

codecVersion

protected int codecVersion

Field codecVersion.

minCodecVersion

protected int minCodecVersion

Field minCodecVersion.

versioned

protected boolean versioned

Field versioned.

useLegacyVersion

protected boolean useLegacyVersion

Field useLegacyVersion.

Method Detail

BuilderCodec

public protected BuilderCodec (@Nonnull final BuilderBase builder)

Method BuilderCodec.

Parameters:
@Nonnull final BuilderBase builder

getInnerClass

public Class getInnerClass ()

Method getInnerClass.

getSupplier

public Supplier getSupplier ()

Method getSupplier.

getDefaultValue

public T getDefaultValue ()

Method getDefaultValue.

getEntries

public >> getEntries ()

Method getEntries.

getAfterDecode

public ExtraInfo> getAfterDecode ()

Method getAfterDecode.

getParent

public T> getParent ()

Method getParent.

getDocumentation

public String getDocumentation ()

Method getDocumentation.

getCodecVersion

public int getCodecVersion ()

Method getCodecVersion.

inherit

public void inherit (final T t, @Nonnull final T parent, @Nonnull final ExtraInfo extraInfo)

Method inherit.

Parameters:
final T t
@Nonnull final T parent
@Nonnull final ExtraInfo extraInfo

afterDecode

public void afterDecode (final T t, final ExtraInfo extraInfo)

Method afterDecode.

Parameters:
final T t
final ExtraInfo extraInfo

afterDecodeAndValidate

public void afterDecodeAndValidate (final T t, @Nonnull final ExtraInfo extraInfo)

Method afterDecodeAndValidate.

Parameters:
final T t
@Nonnull final ExtraInfo extraInfo

if

public else if (this.validator != null)

Method if.

Parameters:
this.validator != null

decode

public T decode (@Nonnull final BsonValue bsonValue, @Nonnull final ExtraInfo extraInfo)

Method decode.

Parameters:
@Nonnull final BsonValue bsonValue
@Nonnull final ExtraInfo extraInfo

encode

public BsonDocument encode (final T t, @Nonnull ExtraInfo extraInfo)

Method encode.

Parameters:
final T t
@Nonnull ExtraInfo extraInfo

decode0

protected void decode0 (@Nonnull final BsonDocument document, final T t, ExtraInfo extraInfo)

Method decode0.

Parameters:
@Nonnull final BsonDocument document
final T t
ExtraInfo extraInfo

encode0

protected BsonDocument encode0 (final T t, @Nonnull final BsonDocument document, @Nonnull final ExtraInfo extraInfo)

Method encode0.

Parameters:
final T t
@Nonnull final BsonDocument document
@Nonnull final ExtraInfo extraInfo

decodeJson

public T decodeJson (@Nonnull final RawJsonReader reader, @Nonnull final ExtraInfo extraInfo)

Method decodeJson.

Parameters:
@Nonnull final RawJsonReader reader
@Nonnull final ExtraInfo extraInfo

decodeJson0

public void decodeJson0 (@Nonnull final RawJsonReader reader, final T t, ExtraInfo extraInfo)

Method decodeJson0.

Parameters:
@Nonnull final RawJsonReader reader
final T t
ExtraInfo extraInfo

readEntry

protected void readEntry (@Nonnull final RawJsonReader reader, final T t, @Nonnull final ExtraInfo extraInfo)

Method readEntry.

Parameters:
@Nonnull final RawJsonReader reader
final T t
@Nonnull final ExtraInfo extraInfo

IllegalArgumentException

public new IllegalArgumentException ("Unknown field entry type: " + String.valueOf(keyEntry.getType()

Method IllegalArgumentException.

Parameters:
"Unknown field entry type: " + String.valueOf(keyEntry.getType(

skipField

private void skipField (@Nonnull final RawJsonReader reader)

Method skipField.

Parameters:
@Nonnull final RawJsonReader reader

readField

private void readField (@Nonnull final RawJsonReader reader, final T t, @Nonnull final ExtraInfo extraInfo, final String key, @Nonnull final List> fields)

Method readField.

Parameters:
@Nonnull final RawJsonReader reader
final T t
@Nonnull final ExtraInfo extraInfo
final String key
@Nonnull final List> fields

readUnknownField

private void readUnknownField (@Nonnull final RawJsonReader reader, @Nonnull final ExtraInfo extraInfo)

Method readUnknownField.

Parameters:
@Nonnull final RawJsonReader reader
@Nonnull final ExtraInfo extraInfo

decodeAndInherit

public T decodeAndInherit (@Nonnull final BsonDocument document, final T parent, final ExtraInfo extraInfo)

Method decodeAndInherit.

Parameters:
@Nonnull final BsonDocument document
final T parent
final ExtraInfo extraInfo

decodeAndInherit0

protected void decodeAndInherit0 (@Nonnull final BsonDocument document, final T t, final T parent, @Nonnull final ExtraInfo extraInfo)

Method decodeAndInherit0.

Parameters:
@Nonnull final BsonDocument document
final T t
final T parent
@Nonnull final ExtraInfo extraInfo

decodeAndInheritJson

public T decodeAndInheritJson (@Nonnull final RawJsonReader reader, final T parent, final ExtraInfo extraInfo)

Method decodeAndInheritJson.

Parameters:
@Nonnull final RawJsonReader reader
final T parent
final ExtraInfo extraInfo

decodeAndInheritJson0

public void decodeAndInheritJson0 (@Nonnull final RawJsonReader reader, final T t, final T parent, @Nonnull final ExtraInfo extraInfo)

Method decodeAndInheritJson0.

Parameters:
@Nonnull final RawJsonReader reader
final T t
final T parent
@Nonnull final ExtraInfo extraInfo

readAndInheritEntry

protected void readAndInheritEntry (@Nonnull final RawJsonReader reader, final T t, final T parent, @Nonnull final ExtraInfo extraInfo)

Method readAndInheritEntry.

Parameters:
@Nonnull final RawJsonReader reader
final T t
final T parent
@Nonnull final ExtraInfo extraInfo

readAndInheritField

private void readAndInheritField (@Nonnull final RawJsonReader reader, final T t, final T parent, @Nonnull final ExtraInfo extraInfo, final String key, @Nonnull final List> fields)

Method readAndInheritField.

Parameters:
@Nonnull final RawJsonReader reader
final T t
final T parent
@Nonnull final ExtraInfo extraInfo
final String key
@Nonnull final List> fields

decodeVersion

protected ExtraInfo decodeVersion (final BsonDocument document, @Nonnull final ExtraInfo extraInfo)

Method decodeVersion.

Parameters:
final BsonDocument document
@Nonnull final ExtraInfo extraInfo

validate

public void validate (final T t, @Nonnull final ExtraInfo extraInfo)

Method validate.

Parameters:
final T t
@Nonnull final ExtraInfo extraInfo

validateDefaults

public void validateDefaults (@Nonnull final ExtraInfo extraInfo, @Nonnull final Set> tested)

Method validateDefaults.

Parameters:
@Nonnull final ExtraInfo extraInfo
@Nonnull final Set> tested

toSchema

public ObjectSchema toSchema (@Nonnull final SchemaContext context)

Method toSchema.

Parameters:
@Nonnull final SchemaContext context

createSchemaFields

static void createSchemaFields (@Nonnull final SchemaContext context, @Nullable final T def, @Nonnull final BuilderCodec codec, @Nonnull final Map properties)

Method createSchemaFields.

Parameters:
@Nonnull final SchemaContext context
@Nullable final T def
@Nonnull final BuilderCodec codec
@Nonnull final Map properties

toString

public String toString ()

Method toString.

findEntry

public ?> findEntry (@Nonnull BuilderCodec current, final String key, @Nonnull final ExtraInfo extraInfo)

Method findEntry.

Parameters:
@Nonnull BuilderCodec current
final String key
@Nonnull final ExtraInfo extraInfo

findField

public F findField (@Nullable final List entry, @Nonnull final ExtraInfo extraInfo)

Method findField.

Parameters:
@Nullable final List entry
@Nonnull final ExtraInfo extraInfo

builder

static Builder builder (final Class tClass, final Supplier supplier)

Method builder.

Parameters:
final Class tClass
final Supplier supplier

abstractBuilder

static Builder abstractBuilder (final Class tClass)

Method abstractBuilder.

Parameters:
final Class tClass

Builder

public protected Builder (final Class tClass, final Supplier supplier)

Method Builder.

Parameters:
final Class tClass
final Supplier supplier

BuilderBase

public protected BuilderBase (final Class tClass, final Supplier supplier)

Method BuilderBase.

Parameters:
final Class tClass
final Supplier supplier

KeyEntry

public new KeyEntry (EntryType.IGNORE)

Method KeyEntry.

Parameters:
EntryType.IGNORE EntryType.IGNORE

self

private S self ()

Method self.

documentation

public S documentation (final String doc)

Method documentation.

Parameters:
final String doc

versioned

public S versioned ()

Method versioned.

legacyVersioned

public S legacyVersioned ()

Method legacyVersioned.

addField

public S addField (@Nonnull final KeyedCodec codec, @Nonnull final BiConsumer setter, @Nonnull final Function getter)

Method addField.

Parameters:
@Nonnull final KeyedCodec codec
@Nonnull final BiConsumer setter
@Nonnull final Function getter

append

public S> append (final KeyedCodec codec, @Nonnull final BiConsumer setter, @Nonnull final Function getter)

Method append.

Parameters:
final KeyedCodec codec
@Nonnull final BiConsumer setter
@Nonnull final Function getter

appendInherited

public S> appendInherited (final KeyedCodec codec, @Nonnull final BiConsumer setter, @Nonnull final Function getter, @Nonnull final BiConsumer inherit)

Method appendInherited.

Parameters:
final KeyedCodec codec
@Nonnull final BiConsumer setter
@Nonnull final Function getter
@Nonnull final BiConsumer inherit

ObjectArrayList

public new ObjectArrayList ()

Method ObjectArrayList.

validator

public S validator (final BiConsumer validator)

Method validator.

Parameters:
final BiConsumer validator

metadata

public S metadata (final Metadata metadata)

Method metadata.

Parameters:
final Metadata metadata

codecVersion

public S codecVersion (final int minCodecVersion, final int codecVersion)

Method codecVersion.

Parameters:
final int minCodecVersion
final int codecVersion

build

public BuilderCodec build ()

Method build.

getType

public EntryType getType ()

Method getType.

getFields

public > getFields ()

Method getFields.

See Also: