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

package com.hypixel.hytale.server.core.cosmetics;

import com.hypixel.hytale.codec.codecs.EnumCodec;
import com.hypixel.hytale.codec.schema.config.StringSchema;
import com.hypixel.hytale.codec.schema.config.Schema;
import com.hypixel.hytale.codec.schema.SchemaContext;
import java.util.Map;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.validation.ValidationResults;
import javax.annotation.Nullable;
import com.hypixel.hytale.codec.validation.Validator;

public class CosmeticAssetValidator implements Validator<String>
{
    private final CosmeticType type;
    
    public CosmeticAssetValidator(final CosmeticType type) {
        this.type = type;
    }
    
    @Override
    public void accept(@Nullable final String asset, @Nonnull final ValidationResults results) {
        if (asset == null) {
            return;
        }
        final CosmeticRegistry reg = CosmeticsModule.get().getRegistry();
        final Map<String, ?> toCheck = reg.getByType(this.type);
        if (!toCheck.containsKey(asset)) {
            results.fail("Cosmetic Asset (" + String.valueOf(this.type) + ") '" + asset + "' doesn't exist!");
        }
    }
    
    @Override
    public void updateSchema(final SchemaContext context, @Nonnull final Schema target) {
        ((StringSchema)target).setHytaleCosmeticAsset(EnumCodec.EnumStyle.LEGACY.formatCamelCase(this.type.name()));
    }
}
