OSDN Git Service

指定したユーザのツイートを取得できるように改良 refs #25030
[nt-manager/nt-manager.git] / src / twitter / task / TimerID.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 package twitter.task;
7
8 import java.util.HashSet;
9 import java.util.Set;
10
11 /**
12  *
13  * @author nishio
14  */
15 public class TimerID {
16     //singleton pattern
17     private static TimerID timerID;
18     //ID情報を管理するクラス
19     private Set<String> idList;
20
21     /**
22      * singleton コンストラクタ
23      */
24     private TimerID() {
25         idList = new HashSet<String>();
26     }
27
28     /**
29      * TimerIDインスタンスを取得
30      * @return
31      */
32     public static synchronized TimerID getInstance() {
33         if( timerID == null ) {
34             timerID = new TimerID();
35         }
36         return timerID;
37     }
38
39     /**
40      * 指定したIDがすでに存在するかどうか
41      * @param id
42      * @return
43      */
44     public boolean contains(String id) {
45         return idList.contains(id);
46     }
47
48     /**
49      * 利用したいIDを追加
50      * @param id
51      * @throws ExistTimerIDException 既に指定したタイマーIDが存在している
52      */
53     public void addID(String id) throws ExistTimerIDException {
54         if( contains(id) == true ) {
55             throw new ExistTimerIDException("既にそのIDは存在しています");
56         }
57         if( id == null ) {
58             throw new NullPointerException();
59         }
60         this.idList.add(id);
61     }
62
63     /**
64      * 利用していたIDを削除
65      * @param id
66      * @return idがそもそも存在していたかどうか 存在していた場合trueを返す
67      */
68     public boolean removeID(String id) {
69         return this.idList.remove(id);
70     }
71     
72     /**
73      * 情報検索の際に利用するタイマーのIDを生成
74      * @param searchWord
75      * @return
76      */
77     public static String createSearchTimerID(String searchWord) {
78         return "SEARCH:" + searchWord;
79     }
80
81     /**
82      * お気に入り取得の際に利用するタイマーID生成
83      * @param screenName
84      * @return
85      */
86     public static String createFavoriteID(String screenName) {
87         return "FAV:" + screenName;
88     }
89
90     /**
91      * timelineのIDを生成
92      * @return
93      */
94     public static String createTimelineID() {
95         return "TIMELINE";
96     }
97
98     /**
99      * MentionのIDを生成
100      * @return
101      */
102     public static String createMentionID() {
103         return "MENTION";
104     }
105
106     /**
107      * DMのIDを生成
108      * @return
109      */
110     public static String createDirectMessageID() {
111         return "DIRECTMESSAGE";
112     }
113
114     /**
115      * 送信したDMのIDを生成
116      * @return
117      */
118     public static String createSendDirectMessageID() {
119         return "SENDDIRECTMESSAGE";
120     }
121
122     /**
123      * ユーザのタイムラインIDを生成
124      * @param userID
125      * @return
126      */
127     public static String createUserTimelineID(long userID) {
128         return "USERTIMELINE:" + userID;
129     }
130
131     /**
132      * 指定したユーザのタイムラインIDを生成
133      * @param screenName
134      * @return
135      */
136     public static String createUserTimelineID(String screenName) {
137         return "USERTIMELINE:" + screenName;
138     }
139
140     /**
141      * リストID生成
142      * @param username
143      * @param listID
144      * @return
145      */
146     public static String createUserListID(String username, long listID) {
147         return "LIST:" + username + ":" + listID;
148     }
149 }