Mercurial > hg > truffle
comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java @ 20129:5b7db8941fd7
Truffle: make NodeClass and NodeField a top-level class.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Thu, 02 Apr 2015 01:22:41 +0200 |
parents | 7735bac1f781 |
children | 8dc73c226c63 |
comparison
equal
deleted
inserted
replaced
20128:7ad60a16bbb0 | 20129:5b7db8941fd7 |
---|---|
34 import javax.xml.transform.dom.*; | 34 import javax.xml.transform.dom.*; |
35 import javax.xml.transform.stream.*; | 35 import javax.xml.transform.stream.*; |
36 | 36 |
37 import org.w3c.dom.*; | 37 import org.w3c.dom.*; |
38 | 38 |
39 import com.oracle.truffle.api.nodes.NodeUtil.NodeClass; | 39 import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; |
40 import com.oracle.truffle.api.nodes.NodeUtil.NodeField; | |
41 import com.oracle.truffle.api.nodes.NodeUtil.NodeFieldKind; | |
42 | 40 |
43 /** | 41 /** |
44 * Utility class for creating output for the ideal graph visualizer. | 42 * Utility class for creating output for the ideal graph visualizer. |
45 */ | 43 */ |
46 public class GraphPrintVisitor { | 44 public class GraphPrintVisitor { |
262 setNodeProperty(node, property.getKey(), property.getValue()); | 260 setNodeProperty(node, property.getKey(), property.getValue()); |
263 } | 261 } |
264 } | 262 } |
265 | 263 |
266 private void readNodeProperties(Node node) { | 264 private void readNodeProperties(Node node) { |
267 NodeField[] fields = NodeClass.get(node.getClass()).getFields(); | 265 NodeFieldAccessor[] fields = NodeClass.get(node.getClass()).getFields(); |
268 for (NodeField field : fields) { | 266 for (NodeFieldAccessor field : fields) { |
269 if (field.getKind() == NodeFieldKind.DATA) { | 267 if (field.getKind() == NodeFieldKind.DATA) { |
270 String key = field.getName(); | 268 String key = field.getName(); |
271 if (getPropertyElement(node, key) == null) { | 269 if (getPropertyElement(node, key) == null) { |
272 Object value = field.loadValue(node); | 270 Object value = field.loadValue(node); |
273 setNodeProperty(node, key, value); | 271 setNodeProperty(node, key, value); |
341 | 339 |
342 private static LinkedHashMap<String, Node> findNamedNodeChildren(Node node) { | 340 private static LinkedHashMap<String, Node> findNamedNodeChildren(Node node) { |
343 LinkedHashMap<String, Node> nodes = new LinkedHashMap<>(); | 341 LinkedHashMap<String, Node> nodes = new LinkedHashMap<>(); |
344 NodeClass nodeClass = NodeClass.get(node.getClass()); | 342 NodeClass nodeClass = NodeClass.get(node.getClass()); |
345 | 343 |
346 for (NodeField field : nodeClass.getFields()) { | 344 for (NodeFieldAccessor field : nodeClass.getFields()) { |
347 NodeFieldKind kind = field.getKind(); | 345 NodeFieldKind kind = field.getKind(); |
348 if (kind == NodeFieldKind.CHILD || kind == NodeFieldKind.CHILDREN) { | 346 if (kind == NodeFieldKind.CHILD || kind == NodeFieldKind.CHILDREN) { |
349 Object value = field.loadValue(node); | 347 Object value = field.loadValue(node); |
350 if (value != null) { | 348 if (value != null) { |
351 if (kind == NodeFieldKind.CHILD) { | 349 if (kind == NodeFieldKind.CHILD) { |