Mercurial > hg > Members > shoshi > TreeCMSv2
diff src/treecms/api/NodeData.java @ 4:f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
author | shoshi |
---|---|
date | Thu, 24 Feb 2011 21:30:18 +0900 |
parents | 4a5ee88f02cf |
children | 12604eb6b615 |
line wrap: on
line diff
--- a/src/treecms/api/NodeData.java Fri Feb 18 02:14:10 2011 +0900 +++ b/src/treecms/api/NodeData.java Thu Feb 24 21:30:18 2011 +0900 @@ -1,14 +1,63 @@ package treecms.api; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Set; -public interface NodeData +public class NodeData { - public String get(); - public void set(String _str); + LinkedList<Node> m_children; + HashMap<byte[],byte[]> m_attrs; + + public NodeData() + { + m_children = new LinkedList<Node>(); + m_attrs = new HashMap<byte[],byte[]>(); + } + + public NodeData deepCopy() + { + NodeData copy = new NodeData(); + copy.m_children.addAll(m_children); + copy.m_attrs.putAll(m_attrs); + + return copy; + } + + public Set<byte[]> keys() + { + return m_attrs.keySet(); + } - public List<Node> list(); - public void add(List<Node> _child); - public void del(List<Node> _child); - public void clear(); + public byte[] get(byte[] _name) + { + return m_attrs.get(_name); + } + + public void set(byte[] _name,byte[] _value) + { + m_attrs.put(_name,_value); + } + + public List<Node> list() + { + return Collections.unmodifiableList(m_children); + } + + public void add(List<Node> _child) + { + m_children.addAll(_child); + } + + public void del(List<Node> _child) + { + m_children.removeAll(_child); + } + + public void clear() + { + m_children.clear(); + } }