annotate src/main/java/alice/jungle/persistent/PersistentJournal.java @ 118:f64ff5bd66f5

Implements persistent for bbs app and Fixed bug JungleUpdater
author one
date Wed, 25 Dec 2013 20:02:26 +0900
parents 895ab2907db3
children 2e8034524259
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
105
f9e29a52efd3 Move some files
one
parents: 89
diff changeset
1 package alice.jungle.persistent;
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
2
e641f559559c Added some files for persistent
one
parents:
diff changeset
3 import java.io.File;
e641f559559c Added some files for persistent
one
parents:
diff changeset
4 import java.io.FileInputStream;
e641f559559c Added some files for persistent
one
parents:
diff changeset
5 import java.io.FileNotFoundException;
e641f559559c Added some files for persistent
one
parents:
diff changeset
6 import java.io.FileOutputStream;
e641f559559c Added some files for persistent
one
parents:
diff changeset
7 import java.io.IOException;
e641f559559c Added some files for persistent
one
parents:
diff changeset
8 import java.io.InputStream;
e641f559559c Added some files for persistent
one
parents:
diff changeset
9 import java.io.OutputStream;
e641f559559c Added some files for persistent
one
parents:
diff changeset
10
e641f559559c Added some files for persistent
one
parents:
diff changeset
11 import org.msgpack.MessagePack;
e641f559559c Added some files for persistent
one
parents:
diff changeset
12
e641f559559c Added some files for persistent
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
e641f559559c Added some files for persistent
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
e641f559559c Added some files for persistent
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal;
e641f559559c Added some files for persistent
one
parents:
diff changeset
16
e641f559559c Added some files for persistent
one
parents:
diff changeset
17 public class PersistentJournal implements Journal {
e641f559559c Added some files for persistent
one
parents:
diff changeset
18
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
19 private ChangeListWriter WRITER;
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
20 private ChangeListReader READER;
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
21 private OutputStream out;
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
22 private InputStream in;
116
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
23 private static MessagePack msgpack;
86
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
24
116
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
25 static {
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
26 msgpack = new MessagePack();
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
27 }
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
28
86
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
29 public PersistentJournal() {
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
30 }
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
31
e641f559559c Added some files for persistent
one
parents:
diff changeset
32 public PersistentJournal(File file) throws FileNotFoundException {
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
33 out = new FileOutputStream(file,true);
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
34 in = new FileInputStream(file);
e641f559559c Added some files for persistent
one
parents:
diff changeset
35 WRITER = new PersistentChangeListWriter(out);
e641f559559c Added some files for persistent
one
parents:
diff changeset
36 READER = new PersistentChangeListReader(in);
e641f559559c Added some files for persistent
one
parents:
diff changeset
37 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
38
e641f559559c Added some files for persistent
one
parents:
diff changeset
39 @Override
e641f559559c Added some files for persistent
one
parents:
diff changeset
40 public ChangeListReader getReader() {
e641f559559c Added some files for persistent
one
parents:
diff changeset
41 return READER;
e641f559559c Added some files for persistent
one
parents:
diff changeset
42 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
43
e641f559559c Added some files for persistent
one
parents:
diff changeset
44 @Override
e641f559559c Added some files for persistent
one
parents:
diff changeset
45 public ChangeListWriter getWriter() {
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
46 String timeStamp = Long.toString(System.currentTimeMillis());
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
47 String logFileName = timeStamp + ".log";
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
48 OutputStream outStream = null;
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
49 try {
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
50 outStream = new FileOutputStream(new File("./log/"+logFileName));
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
51 } catch (FileNotFoundException e) {
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
52 e.printStackTrace();
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
53 }
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
54 PersistentChangeListWriter writer = new PersistentChangeListWriter(outStream);
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
55 return writer;
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
56 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
57
86
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
58 public void setOutputFile(File file) throws FileNotFoundException {
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
59 setOutputStream(new FileOutputStream(file, true));
86
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
60 }
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
61
bcaf28f8244d Added PersistentChageList and PersistentJournalTest
one
parents: 85
diff changeset
62 public void setInputFile(File file) throws FileNotFoundException {
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
63 setInputStream(new FileInputStream(file));
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
64 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
65
e641f559559c Added some files for persistent
one
parents:
diff changeset
66 public void setOutputStream(OutputStream _out) {
e641f559559c Added some files for persistent
one
parents:
diff changeset
67 out = _out;
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
68 WRITER = new PersistentChangeListWriter(out);
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
69 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
70
e641f559559c Added some files for persistent
one
parents:
diff changeset
71 public OutputStream getOutputStream() {
e641f559559c Added some files for persistent
one
parents:
diff changeset
72 return out;
e641f559559c Added some files for persistent
one
parents:
diff changeset
73 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
74
e641f559559c Added some files for persistent
one
parents:
diff changeset
75 public void setInputStream(InputStream _in) {
e641f559559c Added some files for persistent
one
parents:
diff changeset
76 in = _in;
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
77 READER = new PersistentChangeListReader(in);
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
78 }
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
79
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
80 public InputStream getInputStream() {
e641f559559c Added some files for persistent
one
parents:
diff changeset
81 return in;
e641f559559c Added some files for persistent
one
parents:
diff changeset
82 }
e641f559559c Added some files for persistent
one
parents:
diff changeset
83
116
895ab2907db3 Modified pom.xml
one
parents: 115
diff changeset
84 public static MessagePack getMsgPackInstance() {
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
85 return msgpack;
e641f559559c Added some files for persistent
one
parents:
diff changeset
86 }
118
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
87
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
88 public void close() throws IOException {
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
89 out.close();
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
90 in.close();
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
91 }
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
92
f64ff5bd66f5 Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents: 116
diff changeset
93
85
e641f559559c Added some files for persistent
one
parents:
diff changeset
94
e641f559559c Added some files for persistent
one
parents:
diff changeset
95 }