All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aksw.commons.collections.trees.TreeDirect Maven / Gradle / Ivy

package org.aksw.commons.collections.trees;

import java.util.Collection;
import java.util.List;

import org.aksw.commons.collections.reversible.ReversibleMap;
import org.aksw.commons.collections.reversible.ReversibleSetMultimap;

public class TreeDirect
	implements Tree
{
	protected T root;
	protected ReversibleMap nodeToParent;
	
	public TreeDirect(T root, ReversibleMap nodeToParent) {
		super();
		this.root = root;
		this.nodeToParent = nodeToParent;
	}

	@Override
	public T getRoot() {
		return root;
	}

	@Override
	public Collection getChildren(T node) {
		ReversibleSetMultimap parentToChildren = nodeToParent.reverse();
		Collection result = parentToChildren.get(node);
		return result;
	}

	@Override
	public T getParent(T node) {
		T result = nodeToParent.get(node);
		return result;
	}

	@Override
	public T copy(T node, List children) {
		throw new UnsupportedOperationException();
	}

	@Override
	public Tree createNew(T root) {
		throw new UnsupportedOperationException();
	}

	@Override
	public long nodeCount() {
		long result = nodeToParent.size() + 1;
		return result;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy