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));
      }
   }
}