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

package com.google.common.flogger.backend;

import java.util.Iterator;
import java.util.Set;
import com.google.common.flogger.MetadataKey;

public final class MetadataKeyValueHandlers
{
    private static final MetadataHandler.ValueHandler<Object, MetadataKey.KeyValueHandler> EMIT_METADATA;
    private static final MetadataHandler.RepeatedValueHandler<Object, MetadataKey.KeyValueHandler> EMIT_REPEATED_METADATA;
    
    public static MetadataHandler.ValueHandler<Object, MetadataKey.KeyValueHandler> getDefaultValueHandler() {
        return MetadataKeyValueHandlers.EMIT_METADATA;
    }
    
    public static MetadataHandler.RepeatedValueHandler<Object, MetadataKey.KeyValueHandler> getDefaultRepeatedValueHandler() {
        return MetadataKeyValueHandlers.EMIT_REPEATED_METADATA;
    }
    
    public static MetadataHandler.Builder<MetadataKey.KeyValueHandler> getDefaultBuilder(final Set<MetadataKey<?>> ignored) {
        return MetadataHandler.builder(getDefaultValueHandler()).setDefaultRepeatedHandler(getDefaultRepeatedValueHandler()).ignoring(ignored);
    }
    
    public static MetadataHandler<MetadataKey.KeyValueHandler> getDefaultHandler(final Set<MetadataKey<?>> ignored) {
        return getDefaultBuilder(ignored).build();
    }
    
    private MetadataKeyValueHandlers() {
    }
    
    static {
        EMIT_METADATA = new MetadataHandler.ValueHandler<Object, MetadataKey.KeyValueHandler>() {
            @Override
            public void handle(final MetadataKey<Object> key, final Object value, final MetadataKey.KeyValueHandler kvf) {
                key.emit(value, kvf);
            }
        };
        EMIT_REPEATED_METADATA = new MetadataHandler.RepeatedValueHandler<Object, MetadataKey.KeyValueHandler>() {
            @Override
            public void handle(final MetadataKey<Object> key, final Iterator<Object> value, final MetadataKey.KeyValueHandler kvf) {
                key.emitRepeated(value, kvf);
            }
        };
    }
}
