package com.wireme.mediaserver;
import java.util.HashMap;
import org.teleal.cling.support.model.WriteStatus;
import org.teleal.cling.support.model.container.Container;
public class ContentTree {
public final static String ROOT_ID = "0";
public final static String VIDEO_ID = "1";
public final static String AUDIO_ID = "2";
public final static String IMAGE_ID = "3";
public final static String FILE_ID = "4";
public final static String VIDEO_PREFIX = "video-item-";
public final static String AUDIO_PREFIX = "audio-item-";
public final static String IMAGE_PREFIX = "image-item-";
public final static String FILE_PREFIX = "file-item-";
private static HashMap<String, ContentNode> contentMap = new HashMap<String, ContentNode>();
private static ContentNode rootNode = createRootNode();
public ContentTree() {};
protected static ContentNode createRootNode() {
// create root container
Container root = new Container();
root.setId(ROOT_ID);
root.setParentID("-1");
root.setTitle("GNaP MediaServer root directory");
root.setCreator("GNaP Media Server");
root.setRestricted(true);
root.setSearchable(true);
root.setWriteStatus(WriteStatus.NOT_WRITABLE);
root.setChildCount(0);
ContentNode rootNode = new ContentNode(ROOT_ID, root);
contentMap.put(ROOT_ID, rootNode);
return rootNode;
}
public static ContentNode getRootNode() {
return rootNode;
}
public static ContentNode getNode(String id) {
if( contentMap.containsKey(id)) {
return contentMap.get(id);
}
return null;
}
public static boolean hasNode(String id) {
return contentMap.containsKey(id);
}
public static void addNode(String ID, ContentNode Node) {
contentMap.put(ID, Node);
}
public static void resetRootNode() {
contentMap = new HashMap<String, ContentNode>();
rootNode = createRootNode();
}
}