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

package io.netty.channel.socket;

import java.net.StandardProtocolFamily;
import java.net.ProtocolFamily;

public enum SocketProtocolFamily implements ProtocolFamily
{
    INET, 
    INET6, 
    UNIX;
    
    public ProtocolFamily toJdkFamily() {
        switch (this) {
            case INET: {
                return StandardProtocolFamily.INET;
            }
            case INET6: {
                return StandardProtocolFamily.INET6;
            }
            case UNIX: {
                return StandardProtocolFamily.valueOf("UNIX");
            }
            default: {
                throw new UnsupportedOperationException("ProtocolFamily cant be converted to something that is known by the JDKi: " + this);
            }
        }
    }
    
    public static SocketProtocolFamily of(final ProtocolFamily family) {
        if (family instanceof StandardProtocolFamily) {
            switch ((StandardProtocolFamily)family) {
                case INET: {
                    return SocketProtocolFamily.INET;
                }
                case INET6: {
                    return SocketProtocolFamily.INET6;
                }
                default: {
                    if (SocketProtocolFamily.UNIX.name().equals(family.name())) {
                        return SocketProtocolFamily.UNIX;
                    }
                    break;
                }
            }
        }
        else if (family instanceof SocketProtocolFamily) {
            return (SocketProtocolFamily)family;
        }
        throw new UnsupportedOperationException("ProtocolFamily is not supported: " + family);
    }
}
