package hep.aida.ref.tree;
import hep.aida.IManagedObject;
import hep.aida.ref.AidaUtils;
import java.util.Iterator;
import java.util.Map;
/**
* A Folder is a managed object representing a directory in a tree.
* It is used only within the Tree implementation, and is never exposed
* to the user.
* @author The AIDA team @ SLAC.
* @version $Id: Folder.java 8584 2006-08-10 23:06:37Z duns $
*/
public class Folder extends hep.aida.ref.ManagedObject
{
Folder(String name)
{
super(name);
hasBeenFilled = false;
}
void add(IManagedObject object)
{
map.put(AidaUtils.modifyName(object.name()),object);
}
void remove(IManagedObject child)
{
map.remove(AidaUtils.modifyName(child.name()));
}
IManagedObject getChild(String name)
{
return (IManagedObject) map.get(name);
}
int getChildCount()
{
return map.size();
}
int getIndexOfChild(IManagedObject child)
{
Iterator iter = map.values().iterator();
for (int i=0; iter.hasNext(); i++)
{
if (iter.next().equals(child)) return i;
}
return -1;
}
IManagedObject getChild(int index)
{
Iterator iter = map.values().iterator();
for (int i=0; i<index; i++) iter.next();
return (IManagedObject) iter.next();
}
public String type()
{
return "dir";
}
boolean isBeingWatched()
{
return isBeingWatched;
}
void setIsBeingWatched(boolean value)
{
isBeingWatched = value;
}
// Is set to True by Tree when the folder is filled by the Store
void setFilled(boolean value)
{
hasBeenFilled = value;
}
boolean isFilled()
{
return hasBeenFilled;
}
private Map map = new java.util.TreeMap();
private boolean isBeingWatched = false;
private boolean hasBeenFilled;
}