/**
* FUSE-J: Java bindings for FUSE (Filesystem in Userspace by Miklos Szeredi (mszeredi@inf.bme.hu))
*
* Copyright (C) 2003 Peter Levart (peter@select-tech.si)
*
* This program can be distributed under the terms of the GNU LGPL.
* See the file COPYING.LIB
*/
package fuse.zipfs.util;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class Node
{
private String name;
private Node parent;
private Object value;
private Map children;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Node getParent()
{
return parent;
}
public void setParent(Node parent)
{
this.parent = parent;
}
public Object getValue()
{
return value;
}
public void setValue(Object value)
{
this.value = value;
}
public boolean isLeafNode()
{
return children == null || children.size() == 0;
}
public void addChild(Node node)
{
if (children == null)
children = new HashMap();
children.put(node.getName(), node);
}
public Node getChild(String name)
{
return (children == null)? null : (Node)children.get(name);
}
public Collection getChildren()
{
return (children == null)? Collections.EMPTY_LIST : children.values();
}
}