package dgm.trees;
import java.util.*;
public class ImmutableTree<A> implements Tree<A>
{
protected final A value;
protected final Iterable<Tree<A>> children;
@Override
public A value()
{
return value;
}
@Override
public Iterable<Tree<A>> children()
{
return children;
}
public ImmutableTree(A value, Tree<A>... children)
{
this(value, Arrays.asList(children));
}
public ImmutableTree(final A value, final Iterable<Tree<A>> children)
{
this.value = value;
this.children = children;
}
}