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

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

import javax.annotation.Nonnull;
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;

public class NoDuplicatesValidator<T> extends Validator
{
    private final Iterable<T> iterable;
    private final String variableName;
    
    private NoDuplicatesValidator(final Iterable<T> iterable, final String variableName) {
        this.iterable = iterable;
        this.variableName = variableName;
    }
    
    public boolean test() {
        final Set<T> set = new HashSet<T>();
        for (final T each : this.iterable) {
            if (!set.add(each)) {
                return false;
            }
        }
        return true;
    }
    
    @Nonnull
    public String errorMessage() {
        return "There are not allowed to be duplicate entries in the \"" + this.variableName + "\" list.";
    }
    
    @Nonnull
    public static <T> NoDuplicatesValidator<T> withAttributes(final Iterable<T> iterable, final String variableName) {
        return new NoDuplicatesValidator<T>(iterable, variableName);
    }
}
