1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.nodes;
18
19 import java.util.List;
20
21 import org.yaml.snakeyaml.error.Mark;
22
23
24
25
26
27
28
29 public class MappingNode extends CollectionNode {
30 private List<NodeTuple> value;
31 private boolean merged = false;
32
33 public MappingNode(Tag tag, boolean resolved, List<NodeTuple> value, Mark startMark,
34 Mark endMark, Boolean flowStyle) {
35 super(tag, startMark, endMark, flowStyle);
36 if (value == null) {
37 throw new NullPointerException("value in a Node is required.");
38 }
39 this.value = value;
40 this.resolved = resolved;
41 }
42
43 public MappingNode(Tag tag, List<NodeTuple> value, Boolean flowStyle) {
44 this(tag, true, value, null, null, flowStyle);
45 }
46
47 @Override
48 public NodeId getNodeId() {
49 return NodeId.mapping;
50 }
51
52
53
54
55
56
57 public List<NodeTuple> getValue() {
58 return value;
59 }
60
61 public void setValue(List<NodeTuple> merge) {
62 value = merge;
63 }
64
65 public void setOnlyKeyType(Class<? extends Object> keyType) {
66 for (NodeTuple nodes : value) {
67 nodes.getKeyNode().setType(keyType);
68 }
69 }
70
71 public void setTypes(Class<? extends Object> keyType, Class<? extends Object> valueType) {
72 for (NodeTuple nodes : value) {
73 nodes.getValueNode().setType(valueType);
74 nodes.getKeyNode().setType(keyType);
75 }
76 }
77
78 @Override
79 public String toString() {
80 String values;
81 StringBuilder buf = new StringBuilder();
82 for (NodeTuple node : getValue()) {
83 buf.append("{ key=");
84 buf.append(node.getKeyNode());
85 buf.append("; value=");
86 if (node.getValueNode() instanceof CollectionNode) {
87
88 buf.append(System.identityHashCode(node.getValueNode()));
89 } else {
90 buf.append(node.toString());
91 }
92 buf.append(" }");
93 }
94 values = buf.toString();
95 return "<" + this.getClass().getName() + " (tag=" + getTag() + ", values=" + values + ")>";
96 }
97
98
99
100
101
102 public void setMerged(boolean merged) {
103 this.merged = merged;
104 }
105
106
107
108
109 public boolean isMerged() {
110 return merged;
111 }
112 }