IntHolder class

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

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

extends: ValueHolder

Поля (3)

МодификаторыТипИмя
protected List<ObjIntConsumer<ExecutionContext>> relationValidators
int var2
int var2

Методы (11)

МодификаторыВозвратСигнатура
public void addRelationValidatorvoid addRelationValidator(ObjIntConsumer<ExecutionContext> var1)
for for(ObjIntConsumer var4 : this.relationValidators)
public int getint get(ExecutionContext var1)
if if(this.relationValidators == null)
if if(this.relationValidators != null)
public int rawGetint rawGet(ExecutionContext var1)
public void readJSONvoid readJSON(@Nonnull JsonElement var1, IntValidator var2, String var3, @Nonnull BuilderParameters var4)
public void readJSONvoid readJSON(JsonElement var1, int var2, IntValidator var3, String var4, @Nonnull BuilderParameters var5)
abstract super super(ValueType.NUMBER)
public void validatevoid validate(int var1)
protected void validateRelationsvoid validateRelations(ExecutionContext var1, int var2)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderParameters;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.expression.BuilderExpressionStaticNumber;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.IntValidator;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ValueType;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.function.ObjIntConsumer;
class="kw">import javax.annotation.Nonnull;

class="kw">public class IntHolder class="kw">extends ValueHolder {
   class="kw">protected List<ObjIntConsumer<ExecutionContext>> relationValidators;
   class="kw">protected IntValidator intValidator;

   class="kw">public IntHolder() {
      super(ValueType.NUMBER);
   }

   @Override
   class="kw">public void validate(ExecutionContext var1) {
      this.get(var1);
   }

   class="kw">public void readJSON(@Nonnull JsonElement var1, IntValidator var2, String var3, @Nonnull BuilderParameters var4) {
      this.readJSON(var1, var3, var4);
      this.intValidator = var2;
      if (this.isStatic()) {
         this.validate(MathUtil.floor(this.expression.getNumber(null)));
      }
   }

   class="kw">public void readJSON(JsonElement var1, int var2, IntValidator var3, String var4, @Nonnull BuilderParameters var5) {
      this.readJSON(var1, () -> new BuilderExpressionStaticNumber(var2), var4, var5);
      this.intValidator = var3;
      if (this.isStatic()) {
         this.validate(MathUtil.floor(this.expression.getNumber(null)));
      }
   }

   class="kw">public int get(ExecutionContext var1) {
      int var2 = this.rawGet(var1);
      this.validateRelations(var1, var2);
      class="kw">return var2;
   }

   class="kw">public int rawGet(ExecutionContext var1) {
      int var2 = MathUtil.floor(this.expression.getNumber(var1));
      if (!this.isStatic()) {
         this.validate(var2);
      }

      class="kw">return var2;
   }

   class="kw">public void validate(int var1) {
      if (this.intValidator != null && !this.intValidator.test(var1)) {
         throw new IllegalStateException(this.intValidator.errorMessage(var1, this.name));
      }
   }

   class="kw">public void addRelationValidator(ObjIntConsumer<ExecutionContext> var1) {
      if (this.relationValidators == null) {
         this.relationValidators = new ObjectArrayList();
      }

      this.relationValidators.add(var1);
   }

   class="kw">protected void validateRelations(ExecutionContext var1, int var2) {
      if (this.relationValidators != null) {
         for (ObjIntConsumer var4 : this.relationValidators) {
            var4.accept(var1, var2);
         }
      }
   }
}