// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.codec.validation.validator;

import com.hypixel.hytale.codec.schema.config.ArraySchema;
import com.hypixel.hytale.codec.schema.config.Schema;
import com.hypixel.hytale.codec.schema.SchemaContext;
import com.hypixel.hytale.codec.validation.ValidationResults;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.validation.Validator;

public class ArraySizeRangeValidator<T> implements Validator<T[]>
{
    private int min;
    private int max;
    
    public ArraySizeRangeValidator(final int min, final int max) {
        this.min = min;
        this.max = max;
    }
    
    @Override
    public void accept(@Nonnull final T[] array, @Nonnull final ValidationResults results) {
        if (array.length < this.min || array.length > this.max) {
            results.fail(String.format("Array size is invalid! Was %s, expected between %s and %s", array.length, this.min, this.max));
        }
    }
    
    @Override
    public void updateSchema(final SchemaContext context, final Schema target) {
        final ArraySchema arr = (ArraySchema)target;
        arr.setMinItems(this.min);
        arr.setMaxItems(this.max);
    }
}
