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