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) {