package org.primftpd.prefs; import org.primftpd.PrefsBean; import java.util.Collections; import java.util.HashMap; import java.util.Map; public enum ServerToStart { FTP("1") { @Override public boolean startFtp() { return true; } @Override public boolean startSftp() { return false; } @Override public boolean isPasswordMandatory(PrefsBean prefsBean) { return !prefsBean.isAnonymousLogin(); } }, SFTP("2") { @Override public boolean startFtp() { return false; } @Override public boolean startSftp() { return true; } @Override public boolean isPasswordMandatory(PrefsBean prefsBean) { return !prefsBean.isAnonymousLogin() && !prefsBean.isPubKeyAuth(); } }, ALL("0") { @Override public boolean startFtp() { return true; } @Override public boolean startSftp() { return true; } public boolean isPasswordMandatory(PrefsBean prefsBean) { return FTP.isPasswordMandatory(prefsBean) && SFTP.isPasswordMandatory(prefsBean); } }; private final String xmlValue; private ServerToStart(String xmlValue) { this.xmlValue = xmlValue; } public String xmlValue() { return xmlValue; } private static final Map<String, ServerToStart> XML_TO_ENUM; static { Map<String, ServerToStart> tmp = new HashMap<String, ServerToStart>(); for (ServerToStart srvToStart : values()) { tmp.put(srvToStart.xmlValue, srvToStart); } XML_TO_ENUM = Collections.unmodifiableMap(tmp); } public static ServerToStart byXmlVal(String xmlVal) { return XML_TO_ENUM.get(xmlVal); } public abstract boolean startFtp(); public abstract boolean startSftp(); public abstract boolean isPasswordMandatory(PrefsBean prefsBean); }