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