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