view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraversableNodeWrapper.java @ 68:240a385bf79d

delete traversalNodewrapper but not change test source(error)
author one
date Wed, 20 Aug 2014 14:49:51 +0900
parents 8c6ff361b68a
children
line wrap: on
line source

/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;

import java.util.Iterator;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraversableNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;

public class TraversableNodeWrapper<T extends Parent<T>>
	implements TraversableNode<TraversableNodeWrapper<T>>
{
	private final T wrap;
	
	public TraversableNodeWrapper(T _wrap)
	{
		wrap = _wrap;
	}
	
	public T getWrapped()
	{
		return wrap;
	}

	@Override
	public Children<TraversableNodeWrapper<T>> getChildren()
	{
		final Children<T> ch = wrap.getChildren();
		
		return new Children<TraversableNodeWrapper<T>>(){
			
			final IterableConverter.Converter<TraversableNodeWrapper<T>,T> converter = new IterableConverter.Converter<TraversableNodeWrapper<T>,T>(){
				@Override
				public TraversableNodeWrapper<T> conv(T _b)
				{
					return new TraversableNodeWrapper<T>(_b);
				}
			};
			
			final IterableConverter<TraversableNodeWrapper<T>,T> iterable = new IterableConverter<TraversableNodeWrapper<T>,T>(ch,converter);

			@Override
			public Iterator<TraversableNodeWrapper<T>> iterator()
			{
				return iterable.iterator();
			}

			@Override
			public int size()
			{
				return ch.size();
			}

			@Override
			public Either<Error, TraversableNodeWrapper<T>> at(int _pos)
			{
				Either<Error,T> either = ch.at(_pos);
				if(either.isA()){
					return DefaultEither.newA(either.a());
				}
				
				T newWrap = either.b();
				return DefaultEither.newB(new TraversableNodeWrapper<T>(newWrap));
			}
		};
	}
}*/