package com.laytonsmith.core; import java.util.HashMap; import java.util.Map; /** * */ @Profiles.ProfileType(type = "email") public class EmailProfile extends Profiles.Profile { private String host = "localhost"; private String user = null; private String password = null; private int port = 587; private boolean use_ssl = false; private boolean use_start_tls = false ; private int timeout = 10000; public EmailProfile(String id, Map<String, String> elements) throws Profiles.InvalidProfileException { super(id); if(elements.containsKey("host")){ host = elements.get("host"); } if(elements.containsKey("user")){ user = elements.get("user"); } if(elements.containsKey("password")){ password = elements.get("password"); } if(elements.containsKey("port")){ try { port = Integer.parseInt(elements.get("port")); } catch(NumberFormatException ex){ throw new Profiles.InvalidProfileException(ex.getMessage()); } } if(elements.containsKey("use_ssl")){ use_ssl = Boolean.parseBoolean(elements.get("use_ssl")); } if(elements.containsKey("use_start_tls")){ use_start_tls = Boolean.parseBoolean(elements.get("use_start_tls")); } if(elements.containsKey("timeout")){ try { timeout = Integer.parseInt(elements.get("timeout")); } catch(NumberFormatException ex){ throw new Profiles.InvalidProfileException(ex.getMessage()); } } } public String getHost() { return host; } public String getUser() { return user; } public String getPassword() { return password; } public int getPort() { return port; } public boolean getUseSSL() { return use_ssl; } public boolean getUseStartTLS() { return use_start_tls; } public int getTimeout() { return timeout; } public Map<String, Object> getMap(){ Map<String, Object> map = new HashMap<>(); map.put("host", getHost()); map.put("user", getUser()); map.put("password", getPassword()); map.put("port", getPort()); map.put("use_ssl", getUseSSL()); map.put("use_start_tls", getUseStartTLS()); map.put("timeout", getTimeout()); return map; } @Override public String toString() { return super.toString() + " " + user + "@" + host + ":" + port; } }