BuilderObjectArrayHelper class

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

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

extends: BuilderObjectHelper<T>

Поля (6)

МодификаторыТипИмя
BuilderObjectReferenceHelper var10
String var11
JsonArray var5
BuilderFactory var6
int var7
boolean var7

Методы (7)

МодификаторыВозвратСигнатура
abstract return new BuilderObjectReferenceHelperreturn new BuilderObjectReferenceHelper(this.classType, this)
for for(JsonElement var9 : var5)
for for(BuilderObjectReferenceHelper var11 : this.builders)
public boolean hasNoElementsboolean hasNoElements()
public boolean isEmptyboolean isEmpty()
public void setLabelvoid setLabel(String var1)
abstract super super(var1, var2)

Исходный код

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

class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class BuilderObjectArrayHelper<T, U> class="kw">extends BuilderObjectHelper<T> {
   @Nullable
   class="kw">protected BuilderObjectReferenceHelper[] builders;
   class="kw">protected String label;

   class="kw">public BuilderObjectArrayHelper(Class<?> var1, BuilderContext var2) {
      super(var1, var2);
   }

   @Override
   class="kw">public void readConfig(@Nonnull JsonElement var1, @Nonnull BuilderManager var2, @Nonnull BuilderParameters var3, @Nonnull BuilderValidationHelper var4) {
      super.readConfig(var1, var2, var3, var4);
      if (var1.isJsonNull()) {
         this.builders = null;
      } else {
         if (!var1.isJsonArray()) {
            String var11 = var1.toString();
            throw new IllegalArgumentException(
               String.format(
                  "Expected a JSON array of '%s' at %s (JSON: %s)",
                  this.classType.getSimpleName(),
                  this.getBreadCrumbs(),
                  var11.length() > 60 ? var11.substring(60) + "..." : var11
               )
            );
         }

         JsonArray var5 = var1.getAsJsonArray();
         BuilderFactory var6 = var2.getFactory(this.classType);
         this.builders = new BuilderObjectReferenceHelper[var5.size()];
         int var7 = 0;

         for (JsonElement var9 : var5) {
            BuilderObjectReferenceHelper var10 = this.createReferenceHelper();
            var10.readConfig(var9, var6, var2, var3, var4);
            if (!var10.isPresent()) {
               throw new IllegalStateException("Missing builder reference at " + this.getBreadCrumbs() + ": " + var3.getFileName());
            }

            this.builders[var7++] = var10;
         }
      }
   }

   @Override
   class="kw">public boolean validate(
      String var1, NPCLoadTimeValidationHelper var2, @Nonnull BuilderManager var3, @Nonnull ExecutionContext var4, Scope var5, @Nonnull List<String> var6
   ) {
      if (this.hasNoElements()) {
         class="kw">return true;
      }

      boolean var7 = true;

      for (BuilderObjectReferenceHelper var11 : this.builders) {
         if (!var11.excludeFromRegularBuild()) {
            var7 &= var11.validate(var1, var2, var3, var4, var5, var6);
         }
      }

      class="kw">return var7;
   }

   @Override
   class="kw">public boolean isPresent() {
      class="kw">return this.builders != null;
   }

   class="kw">public boolean isEmpty() {
      class="kw">return this.isPresent() && this.builders.length == 0;
   }

   class="kw">public boolean hasNoElements() {
      class="kw">return this.builders == null || this.builders.length == 0;
   }

   @Override
   class="kw">public String getLabel() {
      class="kw">return this.label;
   }

   class="kw">public void setLabel(String var1) {
      this.label = var1;
   }

   @Nonnull
   class="kw">protected BuilderObjectReferenceHelper<U> createReferenceHelper() {
      class="kw">return new BuilderObjectReferenceHelper(this.classType, this);
   }
}