RequirementType enum

Пакет: com.hypixel.hytale.server.npc.asset.builder

Файл: com/hypixel/hytale/server/npc/asset/builder/BuilderAttributeDescriptor.java

Поля (1)

МодификаторыТипИмя
REQUIRED, OPTIONAL, REQUIRED_IF_NOT_OVERRIDDEN

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.asset.builder;

class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.Validator;
class="kw">import java.util.Arrays;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BuilderAttributeDescriptor {
   class="kw">private class="kw">final String name;
   class="kw">private class="kw">final String type;
   class="kw">private BuilderAttributeDescriptor.RequirementType required;
   class="kw">private boolean computable;
   class="kw">private class="kw">final BuilderDescriptorState state;
   class="kw">private class="kw">final String shortDescription;
   class="kw">private class="kw">final String longDescription;
   @Nullable
   class="kw">private String defaultValue;
   @Nullable
   class="kw">private String domain;
   class="kw">private int minSize;
   class="kw">private int maxSize;
   @Nullable
   class="kw">private Validator validator;
   @Nullable
   class="kw">private Map<String, String> flagDescriptions;

   class="kw">public BuilderAttributeDescriptor(String var1, String var2, BuilderDescriptorState var3, String var4, String var5) {
      this.name = var1;
      this.type = var2;
      this.state = var3;
      this.shortDescription = var4;
      this.longDescription = var5;
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.computable = false;
      this.defaultValue = null;
      this.domain = null;
      this.validator = null;
      this.flagDescriptions = null;
      this.minSize = -1;
      this.maxSize = -1;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor required() {
      this.required = BuilderAttributeDescriptor.RequirementType.REQUIRED;
      this.defaultValue = null;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor requiredIfNotOverridden() {
      this.required = BuilderAttributeDescriptor.RequirementType.REQUIRED_IF_NOT_OVERRIDDEN;
      this.defaultValue = null;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor optional(String var1) {
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.defaultValue = var1;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor optional(double[] var1) {
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.defaultValue = Arrays.toString(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor optional(int[] var1) {
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.defaultValue = Arrays.toString(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor optional(String[] var1) {
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.defaultValue = Arrays.toString(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor optional(boolean[] var1) {
      this.required = BuilderAttributeDescriptor.RequirementType.OPTIONAL;
      this.defaultValue = Arrays.toString(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor computable() {
      this.computable = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public <E class="kw">extends Enum<E>> BuilderAttributeDescriptor setBasicEnum(@Nonnull Class<E> var1) {
      Enum[] var2 = (E[])var1.getEnumConstants();
      this.domain = BuilderBase.getDomain(var2);
      HashMap var3 = new HashMap<>();

      for (Enum var7 : var2) {
         var3.put(var7.toString(), var7.toString());
      }

      this.flagDescriptions = var3;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public <E class="kw">extends Enum<E> & Supplier<String>> BuilderAttributeDescriptor setEnum(@Nonnull Class<E> var1) {
      Enum[] var2 = (E[])var1.getEnumConstants();
      this.domain = BuilderBase.getDomain(var2);
      HashMap var3 = new HashMap<>();

      for (Enum var7 : var2) {
         var3.put(var7.toString(), (String)var7.get());
      }

      this.flagDescriptions = var3;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor domain(String var1) {
      this.domain = var1;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor validator(Validator var1) {
      this.validator = var1;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor length(int var1) {
      class="kw">return this.length(var1, var1);
   }

   @Nonnull
   class="kw">public BuilderAttributeDescriptor length(int var1, int var2) {
      this.minSize = var1;
      this.maxSize = var2;
      class="kw">return this;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "BuilderAttributeDescriptor{name='"
         + this.name
         + "', type='"
         + this.type
         + "', required="
         + this.required
         + ", computable="
         + this.computable
         + ", state="
         + this.state
         + ", shortDescription='"
         + this.shortDescription
         + "', longDescription='"
         + this.longDescription
         + "', defaultValue='"
         + this.defaultValue
         + "', domain='"
         + this.domain
         + "', minSize="
         + this.minSize
         + ", maxSize="
         + this.maxSize
         + ", validator="
         + this.validator
         + ", flagDescriptions="
         + this.flagDescriptions
         + "}";
   }

   class="kw">private enum RequirementType {
      REQUIRED,
      OPTIONAL,
      REQUIRED_IF_NOT_OVERRIDDEN;

      RequirementType() {
      }
   }
}