view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java @ 108:69bbf08894aa

move
author one
date Fri, 12 Sep 2014 21:53:52 +0900
parents 715a9fbf02fc
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;


import java.util.Iterator;



public class NullJournal implements Journal
{
	private static final NullChangeListWriter NULL_WRITER = new NullChangeListWriter();
	private static final NullChangeListReader NULL_READER = new NullChangeListReader();
	
	@Override
	public ChangeListReader getReader()
	{
		return NULL_READER;
	}

	@Override
	public ChangeListWriter getWriter()
	{
		return NULL_WRITER;
	}
	
	private static class NullChangeListWriter implements ChangeListWriter
	{
		@Override
		public Result write(ChangeList operations)
		{
			/*
			for(TreeOperation op : _operations){
				NodePath p = op.getNodePath();
				NodeOperation nodeOp = op.getNodeOperation();
				Command c = nodeOp.getCommand();
				String args = "";
				switch(c){
					case PUT_ATTRIBUTE:
						String key = nodeOp.getKey();
						ByteBuffer value = nodeOp.getValue();
						if(value.limit() < 100){
							args = String.format("key:%s,value:%s",key,new String(value.array()));
						}else{
							args = String.format("key:%s,value:%d",key,value.limit());
						}
						break;
					case DELETE_ATTRIBUTE:
						args = String.format("key:%s",nodeOp.getKey());
						break;
					case APPEND_CHILD:
						args = String.format("pos:%d",nodeOp.getPosition());
						break;
					case DELETE_CHILD:
						args = String.format("pos:%d",nodeOp.getPosition());
						break;
				}
				System.out.println(String.format("[%s:%s:%s]",c,p,args));
			}
			*/
			return Result.SUCCESS;
		}
	}
	
	private static class NullChangeListReader implements ChangeListReader
	{
		@Override
		public ChangeListReader newReader()
		{
			return this;
		}

		@Override
		public ChangeList read()
		{
			return null;
		}

		@Override
		public Iterator<ChangeList> iterator() {
			return null;
		}
	}
}