package nl.topicus.onderwijs.dashboard.modules.twitter; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** * Settings for accessing multiple twitter accounts using OAuth. */ public class TwitterSettings implements Serializable { private static final long serialVersionUID = 1L; public static class OAuthKey { private String key; private String secret; public OAuthKey(Map<String, String> keyAndSecret) { key = keyAndSecret.get("key"); secret = keyAndSecret.get("secret"); } public OAuthKey(String key, String secret) { this.key = key; this.secret = secret; } public String getKey() { return key; } public String getSecret() { return secret; } @Override public String toString() { return "key:" + key + ",secret:" + secret; } } private OAuthKey applicationKey; private HashMap<String, OAuthKey> tokens = new HashMap<String, OAuthKey>(); @SuppressWarnings("unchecked") public TwitterSettings(Map<String, ?> settings) { applicationKey = new OAuthKey((Map<String, String>) settings .get("application")); for (Entry<String, ?> curEntry : settings.entrySet()) { if (!"application".equals(curEntry.getKey())) { tokens.put(curEntry.getKey(), new OAuthKey( (Map<String, String>) curEntry.getValue())); } } } public OAuthKey getApplicationKey() { return applicationKey; } public OAuthKey getAccessKey(String account) { return tokens.get(account); } public void addAccessToken(String account, OAuthKey token) { this.tokens.put(account, token); } public Map<String, OAuthKey> getTokens() { return new HashMap<String, OAuthKey>(tokens); } }