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

package com.hypixel.hytale.server.npc.asset.builder.validators;

import java.util.Arrays;
import java.util.EnumSet;
import javax.annotation.Nonnull;

public class EnumArrayNoDuplicatesValidator extends EnumArrayValidator
{
    private static final EnumArrayNoDuplicatesValidator INSTANCE;
    
    private EnumArrayNoDuplicatesValidator() {
    }
    
    @Override
    public <T extends Enum<T>> boolean test(@Nonnull final T[] array, final Class<T> clazz) {
        final EnumSet<T> set = EnumSet.noneOf(clazz);
        for (final T item : array) {
            if (!set.add(item)) {
                return false;
            }
        }
        return true;
    }
    
    @Nonnull
    @Override
    public <T extends Enum<T>> String errorMessage(final String name, final T[] array) {
        return String.format("%s must not contain duplicates: %s", name, Arrays.toString(array));
    }
    
    public static EnumArrayNoDuplicatesValidator get() {
        return EnumArrayNoDuplicatesValidator.INSTANCE;
    }
    
    static {
        INSTANCE = new EnumArrayNoDuplicatesValidator();
    }
}
