OrValidator class
Пакет: com.hypixel.hytale.codec.validation.validator
Файл: com/hypixel/hytale/codec/validation/validator/OrValidator.java
implements: Validator<T>
Поля (11)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
return |
final |
Validator<T>[] |
validators |
|
ValidationResults.ValidationResult |
var10 |
|
Schema |
var11 |
|
BuilderCodec |
var12 |
|
Schema[] |
var13 |
|
int |
var14 |
|
Schema |
var15 |
|
ObjectArrayList |
var3 |
|
List |
var4 |
|
ObjectListIterator |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(Validator var8 : this.validators) |
|
|
for for(Validator var10 : this.validators) |
|
|
if if(var14 != 0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec.validation.validator;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectListIterator;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">public class OrValidator<T> class="kw">implements Validator<T> {
class="kw">private class="kw">final Validator<T>[] validators;
class="kw">public OrValidator(Validator<T>[] var1) {
this.validators = var1;
}
@Override
class="kw">public void accept(T var1, @Nonnull ValidationResults var2) {
ObjectArrayList var3 = new ObjectArrayList();
List var4 = var2.getResults();
for (Validator var8 : this.validators) {
var2.setResults(null);
var8.accept(var1, var2);
if (!var2.hasFailed()) {
var2.setResults(var4);
class="kw">return;
}
var3.addAll(var2.getResults());
}
var2.setResults(var4);
ObjectListIterator var9 = var3.iterator();
while (var9.hasNext()) {
ValidationResults.ValidationResult var10 = (ValidationResults.ValidationResult)var9.next();
var2.add(var10);
}
}
@Override
class="kw">public void updateSchema(SchemaContext var1, @Nonnull Schema var2) {
if (var2.getAnyOf() == null) {
BuilderCodec var12 = (BuilderCodec<? class="kw">extends Schema>)Schema.CODEC.getCodecFor((Class<? class="kw">extends Schema>)var2.getClass());
Schema[] var13 = new Schema[this.validators.length];
int var14 = 0;
Schema var15 = var12.getSupplier().get();
for (Validator var10 : this.validators) {
Schema var11 = var12.getSupplier().get();
var10.updateSchema(var1, var11);
if (!var11.equals(var15)) {
var13[var14++] = var11;
}
}
if (var14 != 0) {
var2.setAnyOf(Arrays.copyOf(var13, var14));
}
} else {
for (Schema var6 : var2.getAnyOf()) {
this.updateSchema(var1, var6);
}
}
}
}