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

package io.netty.handler.ssl;

import java.util.Iterator;
import java.util.ArrayList;
import io.netty.util.internal.EmptyArrays;
import java.util.Set;
import java.util.List;

public final class IdentityCipherSuiteFilter implements CipherSuiteFilter
{
    public static final IdentityCipherSuiteFilter INSTANCE;
    public static final IdentityCipherSuiteFilter INSTANCE_DEFAULTING_TO_SUPPORTED_CIPHERS;
    private final boolean defaultToDefaultCiphers;
    
    private IdentityCipherSuiteFilter(final boolean defaultToDefaultCiphers) {
        this.defaultToDefaultCiphers = defaultToDefaultCiphers;
    }
    
    @Override
    public String[] filterCipherSuites(final Iterable<String> ciphers, final List<String> defaultCiphers, final Set<String> supportedCiphers) {
        if (ciphers == null) {
            return this.defaultToDefaultCiphers ? defaultCiphers.toArray(EmptyArrays.EMPTY_STRINGS) : supportedCiphers.toArray(EmptyArrays.EMPTY_STRINGS);
        }
        final List<String> newCiphers = new ArrayList<String>(supportedCiphers.size());
        for (final String c : ciphers) {
            if (c == null) {
                break;
            }
            newCiphers.add(c);
        }
        return newCiphers.toArray(EmptyArrays.EMPTY_STRINGS);
    }
    
    static {
        INSTANCE = new IdentityCipherSuiteFilter(true);
        INSTANCE_DEFAULTING_TO_SUPPORTED_CIPHERS = new IdentityCipherSuiteFilter(false);
    }
}
