OSDN Git Service

Merge commit webブラウザとのセッション情報共有機能
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / config / ConfigLoginProfile.java
1 package yukihane.inqubus.config;
2
3 import java.util.HashMap;
4 import java.util.Map;
5 import org.apache.commons.lang.builder.ToStringBuilder;
6 import saccubus.net.Cookie;
7 import saccubus.worker.profile.LoginProfile;
8 import yukihane.inqubus.config.Config.CookieBrowser;
9
10 /**
11  * コンフィグに設定された値を基にしたLoginProfile実装.
12  * @author yuki
13  */
14 public class ConfigLoginProfile implements LoginProfile {
15
16     private final boolean login;
17     private final String mail;
18     private final String password;
19     private final Map<String, String> cookies;
20
21     public ConfigLoginProfile() {
22         final Config p = Config.INSTANCE;
23         this.login = p.getNeedsLogin();
24         this.mail = p.getId();
25         this.password = p.getPassword();
26
27         final CookieBrowser cookieBrowser = p.getCookieBrowser();
28         final String cookieDir = p.getCookieDir();
29         final Cookie cookie = Cookie.create(cookieBrowser.toBrowserType(), cookieDir);
30         this.cookies = new HashMap<>(cookie.get());
31     }
32
33     @Override
34     public boolean needsLogin() {
35         return this.login;
36     }
37
38     @Override
39     public String getMail() {
40         return this.mail;
41     }
42
43     @Override
44     public String getPassword() {
45         return this.password;
46     }
47
48     @Override
49     public Map<String, String> getCookies() {
50         return new HashMap<>(this.cookies);
51     }
52
53     @Override
54     public String toString() {
55         return ToStringBuilder.reflectionToString(this);
56     }
57 }