10
|
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
|
|
2
|
23
|
3 import java.nio.ByteBuffer;
|
|
4 import java.util.Iterator;
|
|
5
|
|
6 import fj.Ord;
|
|
7 import fj.data.List;
|
|
8 import fj.data.Option;
|
|
9 import fj.data.TreeMap;
|
10
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
|
22
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren;
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
|
23
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
|
10
|
15
|
22
|
16 public class DefaultNode implements EditableNode
|
10
|
17 {
|
23
|
18 public List<DefaultNode> children;
|
|
19 public TreeMap<String,ByteBuffer> attrs;
|
|
20
|
|
21 private static final List<DefaultNode> NIL_LIST = List.nil();
|
|
22 private static final TreeMap<String,ByteBuffer> NIL_MAP = TreeMap.empty(Ord.stringOrd);
|
10
|
23
|
12
|
24 public DefaultNode()
|
10
|
25 {
|
23
|
26 this(NIL_LIST,NIL_MAP);
|
13
|
27 }
|
|
28
|
23
|
29 public DefaultNode(List<DefaultNode> _children,TreeMap<String,ByteBuffer> _attrs)
|
13
|
30 {
|
|
31 attrs = _attrs;
|
|
32 children = _children;
|
10
|
33 }
|
|
34
|
|
35 @Override
|
22
|
36 public EditableChildren getChildren()
|
10
|
37 {
|
23
|
38 return new DefaultChildren(children,attrs);
|
10
|
39 }
|
|
40
|
|
41 @Override
|
22
|
42 public EditableAttributes getAttributes()
|
10
|
43 {
|
23
|
44 return new DefaultAttributes(children,attrs);
|
10
|
45 }
|
|
46 }
|