/** * */ package org.topicquests.topicmap.json.util; import java.util.*; import org.topicquests.topicmap.json.model.api.ITreeNode; /** * @author park * */ public class TreeNode implements ITreeNode { private String locator = ""; private String label = "no label"; private List<ITreeNode>subs = null; private List<ITreeNode>instances = null; /** * */ public TreeNode() { } public TreeNode(String locator) { setNodeLocator(locator); } public TreeNode(String locator, String label) { setNodeLocator(locator); setNodeLabel(label); } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#setNodeLocator(java.lang.String) */ @Override public void setNodeLocator(String locator) { this.locator = locator; } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#getNodeLocator() */ @Override public String getNodeLocator() { return locator; } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#setNodeLabel(java.lang.String) */ @Override public void setNodeLabel(String label) { this.label = label; } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#getNodeLabel() */ @Override public String getNodeLabel() { return label; } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#addSubclassChild(org.topicquests.topicmap.json.model.api.ITreeNode) */ @Override public void addSubclassChild(ITreeNode c) { if (subs == null) subs = new ArrayList<ITreeNode>(); subs.add(c); } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#addInstanceChild(org.topicquests.topicmap.json.model.api.ITreeNode) */ @Override public void addInstanceChild(ITreeNode c) { if (instances == null) instances = new ArrayList<ITreeNode>(); instances.add(c); } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#listSubclassChildNodes() */ @Override public List<ITreeNode> listSubclassChildNodes() { return subs; } /* (non-Javadoc) * @see org.topicquests.topicmap.json.model.api.ITreeNode#listInstanceChildNodes() */ @Override public List<ITreeNode> listInstanceChildNodes() { return instances; } @Override public String simpleToXML() { StringBuilder buf = new StringBuilder(); buf.append("<node locator=\""+locator+"\">\n"); ITreeNode k; Iterator<ITreeNode>itr; if (subs != null) { buf.append("<subs>\n"); itr = subs.iterator(); while (itr.hasNext()) { k = itr.next(); buf.append(k.simpleToXML()); } buf.append("</subs>\n"); } if (instances != null) { buf.append("<instances>\n"); itr = instances.iterator(); while (itr.hasNext()) { k = itr.next(); buf.append(k.simpleToXML()); } buf.append("</instances>\n"); } buf.append("</node>"); return buf.toString(); } @Override public int getSubclassCount() { if (this.subs != null) return subs.size(); return 0; } @Override public int getInstanceCount() { if (this.instances != null) return instances.size(); return 0; } }