BuilderField class
Пакет: com.hypixel.hytale.codec.builder
Файл: com/hypixel/hytale/codec/builder/BuilderField.java
Поля (35)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
protected final KeyedCodec<FieldType> |
codec |
|
protected String |
documentation |
|
protected final BiFunction<T, ExtraInfo, FieldType> |
getter |
|
protected final TriConsumer<T, T, ExtraInfo> |
inherit |
|
protected int |
maxVersion |
|
protected List<Metadata> |
metadata |
|
protected int |
minVersion |
|
protected final Builder |
parentBuilder |
|
|
return |
|
|
return |
|
protected final TriConsumer<T, FieldType, ExtraInfo> |
setter |
|
NonNullValidator |
var2 |
|
|
var2 |
|
Object |
var3 |
|
Object |
var4 |
|
Object |
var4 |
|
int |
var4 |
|
ValidationResults |
var4 |
|
Object |
var4 |
|
ValidationResults |
var4 |
|
Object |
var4 |
|
Validator |
var4 |
|
Object |
var5 |
|
Object |
var5 |
|
int |
var5 |
|
Codec |
var5 |
|
Object |
var6 |
|
Codec |
var6 |
|
ValidationResults |
var6 |
|
Validator |
var6 |
|
Metadata |
var6 |
|
Object |
var7 |
|
Object |
var8 |
|
Object |
var9 |
Методы (52)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
FieldBuilderpublic FieldBuilder(Builder var1,
KeyedCodec<FieldType> var2,
TriConsumer<T, FieldType, ExtraInfo> var3,
BiFunction<T, ExtraInfo, FieldType> var4,
TriConsumer<T, T, ExtraInfo> var5) |
abstract |
throw new |
IOExceptionthrow new IOException("Unexpected EOF!") |
|
public Builder |
addpublic Builder add() |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
addValidatorpublic BuilderField.FieldBuilder<T, FieldType, Builder> addValidator(Validator<? super FieldType> var1) |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
addValidatorpublic BuilderField.FieldBuilder<T, FieldType, Builder> addValidator(LegacyValidator<? super FieldType> var1) |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
addValidatorLatepublic BuilderField.FieldBuilder<T, FieldType, Builder> addValidatorLate(@Nonnull Supplier<LateValidator<? super FieldType>> var1) |
public |
void |
decodevoid decode(BsonDocument var1, Type var2, @Nonnull ExtraInfo var3) |
public |
void |
decodeAndInheritvoid decodeAndInherit(BsonDocument var1, Type var2, @Nullable Type var3, @Nonnull ExtraInfo var4) |
public |
void |
decodeAndInheritJsonvoid decodeAndInheritJson(@Nonnull RawJsonReader var1, Type var2, @Nullable Type var3, @Nonnull ExtraInfo var4) |
public |
void |
decodeJsonvoid decodeJson(@Nonnull RawJsonReader var1, Type var2, @Nonnull ExtraInfo var3) |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
documentationpublic BuilderField.FieldBuilder<T, FieldType, Builder> documentation(String var1) |
public |
void |
encodevoid encode(@Nonnull BsonDocument var1, Type var2, @Nonnull ExtraInfo var3) |
|
|
for for(Validator var4 : var1.validators) |
abstract |
|
for for(int var5 = 0; var5 < this.validators.size() |
abstract |
|
for for(int var3 = 0; var3 < this.validators.size() |
abstract |
|
for for(int var5 = 0; var5 < this.metadata.size() |
public |
int |
getHighestSupportedVersionint getHighestSupportedVersion() |
public |
int |
getMaxVersionint getMaxVersion() |
public |
int |
getMinVersionint getMinVersion() |
public |
boolean |
hasNonNullValidatorboolean hasNonNullValidator() |
|
|
if if(var1.validators == null) |
|
|
if if(var4 instanceof NonNullValidator) |
|
|
if if(var4 != null) |
|
|
if if(this.inherit != null) |
|
|
if if(var4 == -1) |
|
|
if if(var5 == -1) |
|
|
if if(var6 instanceof InheritCodec) |
|
|
if if(this.validators != null) |
|
|
if if(this.isPrimitive && var2 == null) |
|
|
if if(this.codec instanceof ValidatableCodec) |
|
|
if if(this.validators != null) |
|
|
if if(this.nonNullValidator != null) |
|
|
if if(var4 == null) |
|
|
if if(this.validators != null) |
|
|
if if(this.metadata != null) |
|
|
if if(this.inherit != null) |
|
|
if if(this.validators == null) |
|
|
if if(this.validators == null) |
|
|
if if(this.validators == null) |
|
|
if if(this.metadata == null) |
public |
void |
inheritvoid inherit(Type var1, Type var2, ExtraInfo var3) |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
metadatapublic BuilderField.FieldBuilder<T, FieldType, Builder> metadata(Metadata var1) |
public |
void |
nullValidatevoid nullValidate(Type var1, @Nonnull ValidationResults var2, ExtraInfo var3) |
public |
void |
setValuevoid setValue(Type var1, @Nullable FieldType var2, @Nonnull ExtraInfo var3) |
|
public BuilderField.FieldBuilder<T, FieldType, Builder> |
setVersionRangepublic BuilderField.FieldBuilder<T, FieldType, Builder> setVersionRange(int var1, int var2) |
public |
boolean |
supportsVersionboolean supportsVersion(int var1) |
|
|
switch switch(var4) |
|
|
switch switch(var5) |
public |
void |
updateSchemavoid updateSchema(SchemaContext var1, @Nonnull Schema var2) |
public |
void |
validatevoid validate(Type var1, @Nonnull ExtraInfo var2) |
public |
void |
validateDefaultsvoid validateDefaults(Type var1, @Nonnull ExtraInfo var2, Set<Codec<?>> var3) |
private |
void |
validateValuevoid validateValue(FieldType var1, @Nonnull ExtraInfo var2, @Nullable Predicate<Validator<? super FieldType>> var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec.builder;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.InheritCodec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.PrimitiveCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.schema.metadata.Metadata;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.codec.validation.LateValidator;
class="kw">import com.hypixel.hytale.codec.validation.LazyLateValidator;
class="kw">import com.hypixel.hytale.codec.validation.LegacyValidator;
class="kw">import com.hypixel.hytale.codec.validation.ValidatableCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.codec.validation.validator.DeprecatedValidator;
class="kw">import com.hypixel.hytale.codec.validation.validator.NonNullValidator;
class="kw">import com.hypixel.hytale.function.consumer.TriConsumer;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.io.IOException;
class="kw">import java.util.List;
class="kw">import java.util.Objects;
class="kw">import java.util.Set;
class="kw">import java.util.function.BiFunction;
class="kw">import java.util.function.Predicate;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonDocument;
class="kw">public class BuilderField<Type, FieldType> {
@Nonnull
class="kw">protected class="kw">final KeyedCodec<FieldType> codec;
@Nonnull
class="kw">protected class="kw">final TriConsumer<Type, FieldType, ExtraInfo> setter;
@Nonnull
class="kw">protected class="kw">final BiFunction<Type, ExtraInfo, FieldType> getter;
class="kw">protected class="kw">final TriConsumer<Type, Type, ExtraInfo> inherit;
@Nullable
class="kw">protected class="kw">final List<Validator<? super FieldType>> validators;
@Nullable
class="kw">protected class="kw">final List<Metadata> metadata;
class="kw">protected class="kw">final int minVersion;
class="kw">protected class="kw">final int maxVersion;
@Nullable
class="kw">protected class="kw">final String documentation;
@Nullable
class="kw">protected class="kw">final NonNullValidator<? super FieldType> nonNullValidator;
class="kw">protected class="kw">final boolean isPrimitive;
class="kw">protected BuilderField(@Nonnull BuilderField.FieldBuilder<Type, FieldType, ?> var1) {
this.codec = var1.codec;
this.setter = var1.setter;
this.getter = var1.getter;
this.inherit = var1.inherit;
this.validators = var1.validators;
this.metadata = var1.metadata;
this.minVersion = var1.minVersion;
this.maxVersion = var1.maxVersion;
this.documentation = var1.documentation;
if (var1.validators == null) {
this.nonNullValidator = null;
} else {
NonNullValidator var2 = null;
for (Validator var4 : var1.validators) {
if (var4 class="kw">instanceof NonNullValidator) {
var2 = (NonNullValidator<? super FieldType>)var4;
break;
}
}
this.nonNullValidator = var2;
}
this.isPrimitive = this.codec.getChildCodec() class="kw">instanceof PrimitiveCodec;
}
class="kw">protected BuilderField(
@Nonnull KeyedCodec<FieldType> var1,
TriConsumer<Type, FieldType, ExtraInfo> var2,
BiFunction<Type, ExtraInfo, FieldType> var3,
TriConsumer<Type, Type, ExtraInfo> var4
) {
this.codec = Objects.requireNonNull(var1, "codec parameter can't be null");
this.setter = Objects.requireNonNull(var2, "setter parameter can't be null");
this.getter = Objects.requireNonNull(var3, "getter parameter can't be null");
this.inherit = var4;
this.validators = null;
this.metadata = null;
this.minVersion = Integer.MIN_VALUE;
this.maxVersion = Integer.MAX_VALUE;
this.documentation = null;
this.nonNullValidator = null;
this.isPrimitive = var1.getChildCodec() class="kw">instanceof PrimitiveCodec;
}
@Nonnull
class="kw">public KeyedCodec<FieldType> getCodec() {
class="kw">return this.codec;
}
class="kw">public int getMinVersion() {
class="kw">return this.minVersion;
}
class="kw">public int getMaxVersion() {
class="kw">return this.maxVersion;
}
class="kw">public int getHighestSupportedVersion() {
class="kw">return this.maxVersion != Integer.MAX_VALUE ? this.maxVersion : this.minVersion;
}
class="kw">public boolean supportsVersion(int var1) {
class="kw">return var1 == Integer.MIN_VALUE || var1 >= this.minVersion && var1 <= this.maxVersion;
}
@Nullable
class="kw">public List<Validator<? super FieldType>> getValidators() {
class="kw">return this.validators;
}
class="kw">public boolean hasNonNullValidator() {
class="kw">return this.nonNullValidator != null;
}
@Nullable
class="kw">public String getDocumentation() {
class="kw">return this.documentation;
}
class="kw">public void decode(BsonDocument var1, Type var2, @Nonnull ExtraInfo var3) {
Object var4 = this.codec.getOrNull(var1, var3);
this.setValue(var2, var4, var3);
}
class="kw">public void decodeAndInherit(BsonDocument var1, Type var2, @Nullable Type var3, @Nonnull ExtraInfo var4) {
Object var5 = var3 != null ? this.getter.apply(var3, var4) : null;
Object var6 = this.codec.getAndInherit(var1, var5, var4).orElse(null);
this.setValue(var2, var6, var4);
}
class="kw">public void encode(@Nonnull BsonDocument var1, Type var2, @Nonnull ExtraInfo var3) {
Object var4 = this.getter.apply(var2, var3);
if (var4 != null) {
this.codec.put(var1, var4, var3);
}
}
class="kw">public void inherit(Type var1, Type var2, ExtraInfo var3) {
if (this.inherit != null) {
this.inherit.accept(var1, var2, var3);
}
}
class="kw">public void decodeJson(@Nonnull RawJsonReader var1, Type var2, @Nonnull ExtraInfo var3) class="kw">throws IOException {
int var4 = var1.peek();
if (var4 == -1) {
throw new IOException("Unexpected EOF!");
}
class="kw">switch (var4) {
case 78:
case 110:
var1.readNullValue();
this.setValue(var2, null, var3);
class="kw">return;
class="kw">default:
Object var5 = this.codec.getChildCodec().decodeJson(var1, var3);
this.setValue(var2, var5, var3);
}
}
class="kw">public void decodeAndInheritJson(@Nonnull RawJsonReader var1, Type var2, @Nullable Type var3, @Nonnull ExtraInfo var4) class="kw">throws IOException {
int var5 = var1.peek();
if (var5 == -1) {
throw new IOException("Unexpected EOF!");
}
class="kw">switch (var5) {
case 78:
case 110:
var1.readNullValue();
this.setValue(var2, null, var4);
class="kw">return;
class="kw">default:
Codec var6 = this.codec.getChildCodec();
if (var6 class="kw">instanceof InheritCodec) {
Object var7 = var3 != null ? this.getter.apply(var3, var4) : null;
Object var8 = ((InheritCodec)var6).decodeAndInheritJson(var1, var7, var4);
this.setValue(var2, var8, var4);
} else {
Object var9 = var6.decodeJson(var1, var4);
this.setValue(var2, var9, var4);
}
}
}
class="kw">public void setValue(Type var1, @Nullable FieldType var2, @Nonnull ExtraInfo var3) {
if (this.validators != null) {
ValidationResults var4 = var3.getValidationResults();
for (int var5 = 0; var5 < this.validators.size(); var5++) {
this.validators.get(var5).accept(var2, var4);
}
var4._processValidationResults();
}
if (this.isPrimitive && var2 == null) {
ValidationResults var6 = var3.getValidationResults();
Validators.nonNull().accept(null, var6);
var6._processValidationResults();
} else {
this.setter.accept(var1, var2, var3);
}
}
class="kw">public void validate(Type var1, @Nonnull ExtraInfo var2) {
Object var3 = this.getter.apply(var1, var2);
this.validateValue(var3, var2, null);
}
class="kw">public void validateDefaults(Type var1, @Nonnull ExtraInfo var2, Set<Codec<?>> var3) {
Object var4 = this.getter.apply(var1, var2);
if (var4 != null && !this.codec.isRequired() && this.nonNullValidator == null) {
this.validateValue(var4, var2, var0 -> var0 class="kw">instanceof DeprecatedValidator);
}
Codec var5 = this.codec.getChildCodec();
ValidatableCodec.validateDefaults(var5, var2, var3);
}
class="kw">private void validateValue(FieldType var1, @Nonnull ExtraInfo var2, @Nullable Predicate<Validator<? super FieldType>> var3) {
if (this.codec class="kw">instanceof ValidatableCodec) {
((ValidatableCodec)this.codec).validate(var1, var2);
}
if (this.validators != null) {
ValidationResults var4 = var2.getValidationResults();
for (int var5 = 0; var5 < this.validators.size(); var5++) {
Validator var6 = this.validators.get(var5);
if ((var3 == null || !var3.test(var6)) && !(var6 class="kw">instanceof LateValidator)) {
var6.accept(var1, var4);
}
}
var4._processValidationResults();
}
}
class="kw">public void nullValidate(Type var1, @Nonnull ValidationResults var2, ExtraInfo var3) {
if (this.nonNullValidator != null) {
Object var4 = this.getter.apply(var1, var3);
if (var4 == null) {
this.nonNullValidator.accept(null, var2);
var2._processValidationResults();
}
}
}
class="kw">public void updateSchema(SchemaContext var1, @Nonnull Schema var2) {
if (this.validators != null) {
for (int var3 = 0; var3 < this.validators.size(); var3++) {
Validator var4 = this.validators.get(var3);
var4.updateSchema(var1, var2);
}
}
if (this.metadata != null) {
for (int var5 = 0; var5 < this.metadata.size(); var5++) {
Metadata var6 = this.metadata.get(var5);
var6.modify(var2);
}
}
if (this.inherit != null) {
var2.getHytale().setInheritsProperty(true);
}
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "BuilderField{codec=" + this.codec + ", setter=" + this.setter + ", getter=" + this.getter + "}";
}
class="kw">public class="kw">static class FieldBuilder<T, FieldType, Builder class="kw">extends BuilderCodec.BuilderBase<T, Builder>> {
@Nonnull
class="kw">protected class="kw">final Builder parentBuilder;
@Nonnull
class="kw">protected class="kw">final KeyedCodec<FieldType> codec;
@Nonnull
class="kw">protected class="kw">final TriConsumer<T, FieldType, ExtraInfo> setter;
@Nonnull
class="kw">protected class="kw">final BiFunction<T, ExtraInfo, FieldType> getter;
class="kw">protected class="kw">final TriConsumer<T, T, ExtraInfo> inherit;
class="kw">protected List<Validator<? super FieldType>> validators;
class="kw">protected List<Metadata> metadata;
class="kw">protected int minVersion = Integer.MIN_VALUE;
class="kw">protected int maxVersion = Integer.MAX_VALUE;
class="kw">protected String documentation;
class="kw">public FieldBuilder(
Builder var1,
KeyedCodec<FieldType> var2,
TriConsumer<T, FieldType, ExtraInfo> var3,
BiFunction<T, ExtraInfo, FieldType> var4,
TriConsumer<T, T, ExtraInfo> var5
) {
this.parentBuilder = Objects.requireNonNull(var1, "parentBuilder parameter can't be null");
this.codec = Objects.requireNonNull(var2, "codec parameter can't be null");
this.setter = Objects.requireNonNull(var3, "setter parameter can't be null");
this.getter = Objects.requireNonNull(var4, "getter parameter can't be null");
this.inherit = var5;
}
@Nonnull
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> addValidator(Validator<? super FieldType> var1) {
if (this.validators == null) {
this.validators = new ObjectArrayList();
}
this.validators.add(var1);
class="kw">return this;
}
@Nonnull
@Deprecated(forRemoval = true)
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> addValidator(LegacyValidator<? super FieldType> var1) {
if (this.validators == null) {
this.validators = new ObjectArrayList();
}
this.validators.add(var1);
class="kw">return this;
}
@Nonnull
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> addValidatorLate(@Nonnull Supplier<LateValidator<? super FieldType>> var1) {
if (this.validators == null) {
this.validators = new ObjectArrayList();
}
this.validators.add(new LazyLateValidator<>(var1));
class="kw">return this;
}
@Nonnull
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> setVersionRange(int var1, int var2) {
this.minVersion = var1;
this.maxVersion = var2;
class="kw">return this;
}
@Nonnull
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> documentation(String var1) {
this.documentation = var1;
class="kw">return this;
}
@Nonnull
class="kw">public BuilderField.FieldBuilder<T, FieldType, Builder> metadata(Metadata var1) {
if (this.metadata == null) {
this.metadata = new ObjectArrayList();
}
this.metadata.add(var1);
class="kw">return this;
}
@Nonnull
class="kw">public Builder add() {
this.parentBuilder.addField(new BuilderField<>(this));
class="kw">return this.parentBuilder;
}
}
}