package org.limewire.libtorrent;
import java.util.HashMap;
import java.util.Map;
import org.limewire.bittorrent.ProxySettingType;
public enum LibTorrentProxySettingType {
NONE(0), SOCKS4(1), SOCKS5(2), SOCKS5_PW(3), HTTP(4), HTTP_PW(5);
private static final Map<Integer, LibTorrentProxySettingType> map;
static {
Map<Integer, LibTorrentProxySettingType> builder = new HashMap<Integer, LibTorrentProxySettingType>();
for (LibTorrentProxySettingType state : LibTorrentProxySettingType.values()) {
builder.put(state.id, state);
}
map = builder;
}
private final int id;
private LibTorrentProxySettingType(int id) {
this.id = id;
}
public int getId() {
return id;
}
public static LibTorrentProxySettingType forId(int id) {
return map.get(id);
}
public static LibTorrentProxySettingType forProxySettingType(ProxySettingType type) {
if (type == null) {
return NONE;
}
switch (type) {
case SOCKS4:
return SOCKS4;
case SOCKS5:
return SOCKS5;
case SOCKS5_PW:
return SOCKS5_PW;
case HTTP:
return HTTP;
case HTTP_PW:
return HTTP_PW;
default:
throw new IllegalArgumentException("Unsupported ProxySettingType: " + type);
}
}
public ProxySettingType getProxySettingType() {
switch (this) {
case NONE:
return null;
case SOCKS4:
return ProxySettingType.SOCKS4;
case SOCKS5:
return ProxySettingType.SOCKS5;
case SOCKS5_PW:
return ProxySettingType.SOCKS5_PW;
case HTTP:
return ProxySettingType.HTTP;
case HTTP_PW:
return ProxySettingType.HTTP_PW;
default:
throw new IllegalArgumentException("Unsupported LibtorrentProxySettingType: " + this);
}
}
}