view src/main/java/alice/jungle/persistent/PersistentJournal.java @ 168:54d68cda84c4

create edit Attribute & Folder Method
author tatsuki
date Tue, 29 Jul 2014 18:51:44 +0900
parents cd4d64249931
children
line wrap: on
line source

package alice.jungle.persistent;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;

public class PersistentJournal implements NetworkJournal {
	
	// private ChangeListWriter WRITER;
	private ChangeListReader READER;
	private OutputStream out;
	private InputStream in;
	private String logFileName;

	public PersistentJournal() {
	}
	
	public PersistentJournal(File file) throws FileNotFoundException {
		out = new FileOutputStream(file,true);
		in = new FileInputStream(file);
		//「 WRITER = new PersistentChangeListWriter(out);
		READER = new PersistentChangeListReader(in);
	}
	
	@Override
	public ChangeListReader getReader() {
		return READER;
	}

	@Override
	public ChangeListWriter getWriter() {
		String timeStamp = Long.toString(System.currentTimeMillis());
		logFileName = timeStamp + ".log";
		OutputStream outStream = null;
		try {
			outStream = new FileOutputStream(new File("./log/"+logFileName));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		ChangeListWriter writer = new PersistentChangeListWriter(outStream);
		return writer; 
	}
	
	public void setOutputFile(File file) throws FileNotFoundException {
		setOutputStream(new FileOutputStream(file, true));
	}
	
	public void setInputFile(File file) throws FileNotFoundException {
		setInputStream(new FileInputStream(file));
	}
	
	public void setOutputStream(OutputStream _out) {
		out = _out;
		// WRITER = new PersistentChangeListWriter(out);		
	}
	
	public OutputStream getOutputStream() {
		return out;
	}
	
	public void setInputStream(InputStream _in) {
		in = _in;
		READER = new PersistentChangeListReader(in);
	}

	public InputStream getInputStream() {
		return in;
	}
	
	public String getLogName(){
		return logFileName;
	}
	
	public void close() throws IOException {
		out.close();
		in.close();
	}
}