/*
* � Copyright IBM Corp. 2010
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.xsp.extlib.tree.impl;
import java.util.Collections;
import java.util.List;
import com.ibm.xsp.extlib.tree.ITree;
import com.ibm.xsp.extlib.tree.ITreeNode;
/**
* Tree implementation that is a wrapper on top of nodes.
* @author Philippe Riand
*/
public class TreeImpl implements ITree {
public static TreeImpl get(ITreeNode root) {
if(root!=null) {
return new TreeImpl(root);
}
return null;
}
public static TreeImpl get(List<ITreeNode> children) {
if(children!=null) {
return new TreeImpl(children);
}
return null;
}
private List<ITreeNode> children;
public TreeImpl(ITreeNode root) {
this.children = Collections.singletonList(root);
}
public TreeImpl(List<ITreeNode> children) {
this.children = children;
}
public ITreeNode.NodeIterator iterateChildren(int start, int count) {
return TreeUtil.getIterator(children, start, count);
}
}