OSDN Git Service

Merge branch 旧コメント仕様で過去ログ取得できる機能の実装
[coroid/inqubus.git] / frontend / src / saccubus / properties / InputCommentSetting.java
1 /* $Id$ */
2 package saccubus.properties;
3
4 import java.io.File;
5 import java.util.Properties;
6
7 /**
8  * 入力コメント設定.
9  * @author yuki
10  */
11 public class InputCommentSetting extends InputFileSetting<Boolean> {
12
13     /** コメントをダウンロードする. */
14     private static final String PROP_SAVE_COMMENT = "SaveCommentFile";
15     /** 変換後にコメントファイルを削除する. */
16     private static final String PROP_DEL_COMMENT_AFTER_CONV = "DeleteCommentAfterConv";
17     /** コメント取得数は自動で調整する. */
18     private static final String PROP_FIX_COMMENT_NUM = "FixCommentSize";
19     /** 取得コメント数. */
20     private static final String PROP_BACK_COMMENT = "BackComment";
21     /** フォルダ/ファイル保存選択ラジオボタン. */
22     private static final String PROP_COMMENT_FIX_FILE_NAME = "CommentFixFileName";
23     /** フォルダ名. */
24     private static final String PROP_COMMENT_FOLDER = "CommentFixFileNameFolder";
25     /** ファイル名. */
26     private static final String PROP_COMMENT_FILE = "CommentFile";
27     private final boolean selfAdjustNumOfComment;
28     private final int numOfComment;
29     private final boolean reduceComment;
30
31     public InputCommentSetting(boolean download, boolean autoNaming, File folder, File file, boolean deleteAfterConvert,
32             boolean adjust, int numOfCom, boolean reduceComment) {
33         super(Boolean.valueOf(download), autoNaming, folder, file, deleteAfterConvert);
34         this.selfAdjustNumOfComment = adjust;
35         this.numOfComment = numOfCom;
36         this.reduceComment = reduceComment;
37     }
38
39     @Override
40     public void save(Properties prop) {
41         prop.setProperty(PROP_SAVE_COMMENT, getProcessKind().toString());
42         prop.setProperty(PROP_DEL_COMMENT_AFTER_CONV, Boolean.toString(isDeleteAfterConvert()));
43         prop.setProperty(PROP_FIX_COMMENT_NUM, Boolean.toString(isSelfAdjustNumOfComment()));
44         prop.setProperty(PROP_BACK_COMMENT, Integer.toString(getNumOfComment()));
45         prop.setProperty(PROP_COMMENT_FIX_FILE_NAME, Boolean.toString(isAutoNaming()));
46         prop.setProperty(PROP_COMMENT_FOLDER, getFolder().getPath());
47         prop.setProperty(PROP_COMMENT_FILE, getFile().getPath());
48
49     }
50
51     public static InputCommentSetting load(Properties prop) {
52         boolean download = Boolean.parseBoolean(prop.getProperty(PROP_SAVE_COMMENT, "true"));
53         boolean delete = Boolean.parseBoolean(prop.getProperty(PROP_DEL_COMMENT_AFTER_CONV, "false"));
54         boolean adjustNumOfComment = Boolean.parseBoolean(prop.getProperty(PROP_FIX_COMMENT_NUM, "true"));
55         String numOfComment = prop.getProperty(PROP_BACK_COMMENT, "500");
56         boolean autoNaming = Boolean.parseBoolean(prop.getProperty(PROP_COMMENT_FIX_FILE_NAME, "true"));
57         String folder = prop.getProperty(PROP_COMMENT_FOLDER, "out/comment");
58         String file = prop.getProperty(PROP_COMMENT_FILE, "comment.xml");
59
60         return new InputCommentSetting(download, autoNaming, new File(folder), new File(file), delete,
61                 adjustNumOfComment,
62                 Integer.parseInt(numOfComment), false);
63     }
64
65     public final boolean isSelfAdjustNumOfComment() {
66         return selfAdjustNumOfComment;
67     }
68
69     public final int getNumOfComment() {
70         return numOfComment;
71     }
72
73     public boolean isReduceComment(){
74         return reduceComment;
75     }
76 }