IntRangeBoundValidator class

Пакет: com.hypixel.hytale.math.range

Файл: com/hypixel/hytale/math/range/IntRangeBoundValidator.java

implements: Validator<IntRange>

Поля (2)

МодификаторыТипИмя
final Integer min
Schema[] var4

Методы (19)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException()
public void acceptvoid accept(@Nullable IntRange var1, @Nonnull ValidationResults var2)
if if(var1 != null)
if if(this.lowerBound)
if if(this.min != null)
if if(this.inclusive)
if if(var1 < this.min)
if if(this.max != null)
if if(this.inclusive)
if if(var1 > this.max)
if if(var2 instanceof ArraySchema var3)
if if(var4 == null)
if if(this.lowerBound)
if if(this.min != null)
if if(this.inclusive)
if if(this.max != null)
if if(this.inclusive)
private void updateSchemaBoundvoid updateSchemaBound(@Nonnull IntegerSchema var1)
private void validateBoundvoid validateBound(int var1, String var2, @Nonnull ValidationResults var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.math.range;

class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.ArraySchema;
class="kw">import com.hypixel.hytale.codec.schema.config.IntegerSchema;
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 javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class IntRangeBoundValidator class="kw">implements Validator<IntRange> {
   class="kw">private class="kw">final Integer min;
   class="kw">private class="kw">final Integer max;
   class="kw">private class="kw">final boolean inclusive;
   class="kw">private class="kw">final boolean lowerBound;

   @Nonnull
   class="kw">public class="kw">static IntRangeBoundValidator lowerBound(Integer var0, Integer var1, boolean var2) {
      class="kw">return new IntRangeBoundValidator(var0, var1, var2, true);
   }

   @Nonnull
   class="kw">public class="kw">static IntRangeBoundValidator upperBound(Integer var0, Integer var1, boolean var2) {
      class="kw">return new IntRangeBoundValidator(var0, var1, var2, false);
   }

   class="kw">private IntRangeBoundValidator(Integer var1, Integer var2, boolean var3, boolean var4) {
      this.min = var1;
      this.max = var2;
      this.inclusive = var3;
      this.lowerBound = var4;
   }

   class="kw">public void accept(@Nullable IntRange var1, @Nonnull ValidationResults var2) {
      if (var1 != null) {
         if (this.lowerBound) {
            this.validateBound(var1.getInclusiveMin(), "Min bound", var2);
         } else {
            this.validateBound(var1.getInclusiveMax(), "Max bound", var2);
         }
      }
   }

   class="kw">private void validateBound(int var1, String var2, @Nonnull ValidationResults var3) {
      if (this.min != null) {
         if (this.inclusive) {
            if (var1 < this.min) {
               var3.fail(var2 + " must be greater than or equal to " + this.min);
            }
         } else if (var1 <= this.min) {
            var3.fail(var2 + " must be greater than " + this.min);
         }
      }

      if (this.max != null) {
         if (this.inclusive) {
            if (var1 > this.max) {
               var3.fail(var2 + " must be less than or equal to " + this.max);
            }
         } else if (var1 >= this.max) {
            var3.fail(var2 + " must be less than " + this.max);
         }
      }
   }

   @Override
   class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
      if (var2 class="kw">instanceof ArraySchema var3) {
         Schema[] var4 = (Schema[])var3.getItems();
         if (var4 == null) {
            throw new IllegalArgumentException();
         }

         if (this.lowerBound) {
            if (!(var4[0] class="kw">instanceof IntegerSchema)) {
               throw new IllegalArgumentException();
            }

            this.updateSchemaBound((IntegerSchema)var4[0]);
         } else {
            if (!(var4[1] class="kw">instanceof IntegerSchema)) {
               throw new IllegalArgumentException();
            }

            this.updateSchemaBound((IntegerSchema)var4[1]);
         }
      } else {
         throw new IllegalArgumentException();
      }
   }

   class="kw">private void updateSchemaBound(@Nonnull IntegerSchema var1) {
      if (this.min != null) {
         if (this.inclusive) {
            var1.setMinimum(this.min);
         } else {
            var1.setExclusiveMinimum(this.min);
         }
      }

      if (this.max != null) {
         if (this.inclusive) {
            var1.setMaximum(this.max);
         } else {
            var1.setExclusiveMaximum(this.max);
         }
      }
   }
}