TemporalArrayHolder class

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

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

extends: StringArrayHolder

Поля (8)

МодификаторыТипИмя
protected TemporalArrayValidator validator
int var1
TemporalAmount[] var2
String[] var2
TemporalAmount[] var3
String var4
String var5
String[] var7

Методы (6)

МодификаторыВозвратСигнатура
static TemporalAmount[] convertStringToTemporalArrayTemporalAmount[] convertStringToTemporalArray(@Nullable String[] var0)
for for(int var3 = 0; var3 < var1; var3++)
if if(var0 == null)
if if(var1 != null)
public void readJSONvoid readJSON(@Nonnull JsonElement var1, int var2, int var3, TemporalArrayValidator var4, String var5, @Nonnull BuilderParameters var6)
public void validatevoid validate(@Nullable TemporalAmount[] var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderParameters;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.TemporalArrayValidator;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import java.time.Duration;
class="kw">import java.time.Period;
class="kw">import java.time.format.DateTimeParseException;
class="kw">import java.time.temporal.TemporalAmount;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class TemporalArrayHolder class="kw">extends StringArrayHolder {
   class="kw">protected TemporalArrayValidator validator;
   class="kw">private TemporalAmount[] cachedTemporalArray;

   class="kw">public TemporalArrayHolder() {
   }

   class="kw">public class="kw">static TemporalAmount[] convertStringToTemporalArray(@Nullable String[] var0) {
      if (var0 == null) {
         class="kw">return null;
      }

      int var1 = var0.length;
      TemporalAmount[] var2 = new TemporalAmount[var1];

      for (int var3 = 0; var3 < var1; var3++) {
         String var4 = var0[var3];
         String var5 = !var0[var3].isEmpty() && var0[var3].charAt(0) == 'P' ? var4 : "P" + var4;

         try {
            var2[var3] = Period.parse(var5);
         } catch (DateTimeParseException var9) {
            try {
               var2[var3] = Duration.parse(var5);
            } catch (DateTimeParseException var8) {
               throw new IllegalStateException(String.format("Cannot parse text %s to Duration or Period", var0[var3]), var8);
            }
         }
      }

      class="kw">return var2;
   }

   class="kw">public void readJSON(@Nonnull JsonElement var1, int var2, int var3, TemporalArrayValidator var4, String var5, @Nonnull BuilderParameters var6) {
      this.readJSON(var1, var2, var3, var5, var6);
      this.validator = var4;
      if (this.isStatic()) {
         String[] var7 = this.expression.getStringArray(null);
         this.cachedTemporalArray = convertStringToTemporalArray(var7);
         this.validate(this.cachedTemporalArray);
      }
   }

   @Nullable
   class="kw">public TemporalAmount[] getTemporalArray(ExecutionContext var1) {
      class="kw">return this.rawGetTemporalArray(var1);
   }

   @Nullable
   class="kw">public TemporalAmount[] rawGetTemporalArray(ExecutionContext var1) {
      if (this.isStatic()) {
         class="kw">return this.cachedTemporalArray;
      }

      String[] var2 = this.expression.getStringArray(var1);
      TemporalAmount[] var3 = convertStringToTemporalArray(var2);
      this.validate(var3);
      class="kw">return var3;
   }

   class="kw">public void validate(@Nullable TemporalAmount[] var1) {
      if (var1 != null) {
         this.validateLength(var1.length);
      }

      if (this.validator != null && !this.validator.test(var1)) {
         throw new IllegalStateException(this.validator.errorMessage(this.name, var1));
      }
   }
}