ItemOrItems class
Пакет: com.hypixel.hytale.codec.schema.config
Файл: com/hypixel/hytale/codec/schema/config/ArraySchema.java
implements: Codec<Object>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private ArrayCodec<Schema> |
array |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Object |
decodepublic Object decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2) |
|
public BsonValue |
encodepublic BsonValue encode(Object var1, ExtraInfo var2) |
|
public Schema |
toSchemapublic Schema toSchema(@Nonnull SchemaContext var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec.schema.config;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonValue;
class="kw">public class ArraySchema class="kw">extends Schema {
class="kw">public class="kw">static class="kw">final BuilderCodec<ArraySchema> CODEC = BuilderCodec.<Schema>builder(ArraySchema.class, ArraySchema::new, Schema.BASE_CODEC)
.addField(new KeyedCodec<>("items", new ArraySchema.ItemOrItems(), false, true), (var0, var1) -> var0.items = var1, var0 -> var0.items)
.addField(new KeyedCodec<>("minItems", Codec.INTEGER, false, true), (var0, var1) -> var0.minItems = var1, var0 -> var0.minItems)
.addField(new KeyedCodec<>("maxItems", Codec.INTEGER, false, true), (var0, var1) -> var0.maxItems = var1, var0 -> var0.maxItems)
.addField(new KeyedCodec<>("uniqueItems", Codec.BOOLEAN, false, true), (var0, var1) -> var0.uniqueItems = var1, var0 -> var0.uniqueItems)
.build();
class="kw">private Object items;
class="kw">private Integer minItems;
class="kw">private Integer maxItems;
class="kw">private Boolean uniqueItems;
class="kw">public ArraySchema() {
}
class="kw">public ArraySchema(Schema var1) {
this.setItem(var1);
}
@Nullable
class="kw">public Object getItems() {
class="kw">return this.items;
}
class="kw">public void setItem(Schema var1) {
this.items = var1;
}
class="kw">public void setItems(Schema... var1) {
this.items = var1;
}
@Nullable
class="kw">public Integer getMinItems() {
class="kw">return this.minItems;
}
class="kw">public void setMinItems(Integer var1) {
this.minItems = var1;
}
@Nullable
class="kw">public Integer getMaxItems() {
class="kw">return this.maxItems;
}
class="kw">public void setMaxItems(Integer var1) {
this.maxItems = var1;
}
class="kw">public boolean getUniqueItems() {
class="kw">return this.uniqueItems;
}
class="kw">public void setUniqueItems(boolean var1) {
this.uniqueItems = var1;
}
@Override
class="kw">public boolean equals(@Nullable Object var1) {
if (this == var1) {
class="kw">return true;
}
if (var1 == null || this.getClass() != var1.getClass()) {
class="kw">return false;
}
if (!super.equals(var1)) {
class="kw">return false;
}
ArraySchema var2 = (ArraySchema)var1;
if (this.items != null ? this.items.equals(var2.items) : var2.items == null) {
if (this.minItems != null ? this.minItems.equals(var2.minItems) : var2.minItems == null) {
if (this.maxItems != null ? this.maxItems.equals(var2.maxItems) : var2.maxItems == null) {
class="kw">return this.uniqueItems != null ? this.uniqueItems.equals(var2.uniqueItems) : var2.uniqueItems == null;
} else {
class="kw">return false;
}
} else {
class="kw">return false;
}
} else {
class="kw">return false;
}
}
@Override
class="kw">public int hashCode() {
int var1 = super.hashCode();
var1 = 31 * var1 + (this.items != null ? this.items.hashCode() : 0);
var1 = 31 * var1 + (this.minItems != null ? this.minItems.hashCode() : 0);
var1 = 31 * var1 + (this.maxItems != null ? this.maxItems.hashCode() : 0);
class="kw">return 31 * var1 + (this.uniqueItems != null ? this.uniqueItems.hashCode() : 0);
}
@Deprecated
class="kw">private class="kw">static class ItemOrItems class="kw">implements Codec<Object> {
@Nonnull
class="kw">private ArrayCodec<Schema> array = new ArrayCodec<>(Schema.CODEC, Schema[]::new);
class="kw">private ItemOrItems() {
}
@Override
class="kw">public Object decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2) {
class="kw">return var1.isArray() ? this.array.decode(var1, var2) : Schema.CODEC.decode(var1, var2);
}
@Override
class="kw">public BsonValue encode(Object var1, ExtraInfo var2) {
class="kw">return var1 class="kw">instanceof Schema[] ? this.array.encode((Schema[])var1, var2) : Schema.CODEC.encode((Schema)var1, var2);
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
class="kw">return Schema.anyOf(Schema.CODEC.toSchema(var1), this.array.toSchema(var1));
}
}
}