OSDN Git Service

キーワード検索の条件追加ほか
[tainavi/TinyBannavi.git] / TinyBannavi / src / tainavi / SearchKey.java
1 package tainavi;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.regex.Pattern;\r
5 \r
6 \r
7 public class SearchKey {\r
8         private String label;\r
9         \r
10         // 0:"次のすべての条件に一致"\r
11         // 1:"次のいずれかの条件に一致"\r
12         private String condition;\r
13         \r
14         // 0:"延長感染源にする"\r
15         // 1:"延長感染源にしない"\r
16         private String infection;\r
17         \r
18         public static enum TargetId {\r
19                 TITLEANDDETAIL  ("0",   true,   true,   "番組名、内容に"),\r
20                 TITLE                   ("1",   true,   true,   "番組名に"),\r
21                 DETAIL                  ("2",   true,   true,   "番組内容に"),\r
22                 CHANNEL                 ("3",   true,   true,   "チャンネル名に"),\r
23                 GENRE                   ("4",   false,  true,   "ジャンルに"),\r
24                 NEW                             ("5",   false,  false,  "新番組"),\r
25                 LAST                    ("6",   false,  false,  "最終回"),\r
26                 REPEAT                  ("7",   false,  false,  "再放送"),\r
27                 FIRST                   ("8",   false,  false,  "初回放送"),\r
28                 LENGTH                  ("9",   false,  true,   "番組長が"),\r
29                 STARTA                  ("10",  false,  true,   "開始時刻(上限)が"),\r
30                 STARTZ                  ("11",  false,  true,   "開始時刻(下限)が"),\r
31                 SPECIAL                 ("12",  false,  false,  "特番"),\r
32                 NOSCRUMBLE              ("13",  false,  false,  "無料放送"),\r
33                 STARTDATETIME   ("14",  true,   true,   "開始日時に"),\r
34                 SUBGENRE                ("15",  false,  true,   "サブジャンルに"),\r
35                 LIVE                    ("16",  false,  false,  "生放送"),\r
36                 BILINGUAL               ("17",  false,  false,  "二か国語放送"),\r
37                 STANDIN                 ("18",  false,  false,  "吹替放送"),\r
38                 RATING                  ("19",  false,  false,  "視聴制限"),\r
39                 MULTIVOICE              ("20",  false,  false,  "副音声/コメンタリ"),\r
40                 ;\r
41                 \r
42                 private String id;\r
43                 private boolean useregexpr;\r
44                 private boolean usekeyword;\r
45                 private String name;\r
46                 \r
47                 private TargetId(String id, boolean useregexpr, boolean usekeyword, String name) {\r
48                         this.id = id;\r
49                         this.useregexpr = useregexpr;\r
50                         this.usekeyword = usekeyword;\r
51                         this.name = name;\r
52                 }\r
53                 \r
54                 @Override\r
55                 public String toString() {\r
56                         return name;\r
57                 }\r
58                 \r
59                 public String getId() {\r
60                         return id;\r
61                 }\r
62                 \r
63                 public boolean getUseRegexpr() {\r
64                         return useregexpr;\r
65                 }\r
66                 \r
67                 public boolean getUseKeyword() {\r
68                         return usekeyword;\r
69                 }\r
70                 \r
71                 public static TargetId getTargetId(String id) {\r
72                         for ( TargetId ti : TargetId.values() ) {\r
73                                 if ( ti.id.equals(id) ) {\r
74                                         return ti;\r
75                                 }\r
76                         }\r
77                         return null;\r
78                 }\r
79         }\r
80         \r
81         private String target;\r
82         \r
83         // s\t..:キーワード\r
84         private String keyword;\r
85         \r
86         // 0\t..:"を含む番組"\r
87         // 1\t..:"を含む番組を除く"\r
88         private String contain;\r
89         \r
90         // 1:レベル1\r
91         // 2:レベル2\r
92         // 3:レベル3\r
93         // 4:レベル4\r
94         // 5:レベル5\r
95         private String okiniiri;\r
96         \r
97         // 大小同一視無効\r
98         private boolean caseSensitive;\r
99         \r
100         // 番組追跡表示あり\r
101         private boolean showInStandby = true;\r
102         \r
103         // 正規表現はプリコンパイルしておくべきだ!\r
104         ArrayList<TargetId> alTarget = new ArrayList<TargetId>();\r
105         ArrayList<Pattern> alKeyword_regex = new ArrayList<Pattern>();\r
106         ArrayList<String> alKeyword = new ArrayList<String>();\r
107         ArrayList<String> alKeyword_plane = new ArrayList<String>();\r
108         ArrayList<String> alKeyword_pop = new ArrayList<String>();\r
109         ArrayList<String> alContain = new ArrayList<String>();\r
110         ArrayList<Integer> alLength = new ArrayList<Integer>();\r
111 \r
112         //\r
113         public void setLabel(String s) { label = s; }\r
114         public String getLabel() { return label; }\r
115         \r
116         public void setCondition(String s) { condition = s; }\r
117         public String getCondition() { return condition; }\r
118         \r
119         public void setInfection(String s) { infection = s; }\r
120         public String getInfection() { return infection; }\r
121         \r
122         public void setTarget(String s) { target = s; }\r
123         public String getTarget() { return target; }\r
124         public void setKeyword(String s) { keyword = s; }\r
125         public String getKeyword() { return keyword; }\r
126         public void setContain(String s) { contain = s; }\r
127         public String getContain() { return contain; }\r
128 \r
129         public void setOkiniiri(String s) { okiniiri = s; }\r
130         public String getOkiniiri() { return okiniiri; }\r
131 \r
132         public void setCaseSensitive(boolean b) { caseSensitive = b; }\r
133         public boolean getCaseSensitive() { return caseSensitive; }\r
134 \r
135         public void setShowInStandby(boolean b) { showInStandby = b; }\r
136         public boolean getShowInStandby() { return showInStandby; }\r
137 }\r