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