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

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

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class StringsOneSetValidator extends Validator
{
    private final String[] attributes;
    
    private StringsOneSetValidator(final String[] attributes) {
        this.attributes = attributes;
    }
    
    public static boolean test(@Nullable final String string1, @Nullable final String string2) {
        final boolean str1IsEmpty = string1 == null || string1.isEmpty();
        final boolean str2IsEmpty = string2 == null || string2.isEmpty();
        return str1IsEmpty != str2IsEmpty;
    }
    
    @Nonnull
    public static String errorMessage(final String string1, final String string2, final String context) {
        return errorMessage(string1, "Value1", string2, "Value2", context);
    }
    
    @Nonnull
    public static String errorMessage(final String string1, final String attribute1, final String string2, final String attribute2, final String context) {
        return formatErrorMessage(string1, attribute1, string2, attribute2, context);
    }
    
    @Nonnull
    public static String formatErrorMessage(final String string1, final String attribute1, final String string2, final String attribute2, final String context) {
        return String.format("Only %s or %s must be set to some value in %s.", attribute1, attribute2, context);
    }
    
    @Nonnull
    public static StringsOneSetValidator withAttributes(final String attribute1, final String attribute2) {
        return new StringsOneSetValidator(new String[] { attribute1, attribute2 });
    }
    
    @Nonnull
    public static StringsOneSetValidator withAttributes(final String[] attributes) {
        return new StringsOneSetValidator(attributes);
    }
}
