changeset 22404:23d2b5513c83

Fixing API error: GraphPrintVisitor shouldn't expose internal API class in an API method. When at it deprecating all protected methods, as GraphPrintVisitor usages don't indicate somebody should be subclassing it at all.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Fri, 20 Nov 2015 17:27:42 +0100
parents 5033b980cc68
children fd53ccebb10b
files truffle/com.oracle.truffle.api/snapshot.sigtest truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java
diffstat 2 files changed, 46 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api/snapshot.sigtest	Fri Nov 20 17:13:09 2015 +0100
+++ b/truffle/com.oracle.truffle.api/snapshot.sigtest	Fri Nov 20 17:27:42 2015 +0100
@@ -596,7 +596,7 @@
 innr public abstract interface static !annotation CustomGraphPrintHandler
 innr public abstract interface static !annotation NullGraphPrintHandler
 innr public abstract interface static GraphPrintHandler
-meth protected org.w3c.dom.Element getElementByObject(java.lang.Object)
+meth protected java.lang.Object getElementByObject(java.lang.Object)
 meth protected void connectNodes(java.lang.Object,java.lang.Object,java.lang.String)
 meth protected void createElementForNode(java.lang.Object)
 meth protected void setNodeProperty(java.lang.Object,java.lang.String,java.lang.Object)
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java	Fri Nov 20 17:13:09 2015 +0100
+++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java	Fri Nov 20 17:27:42 2015 +0100
@@ -142,7 +142,7 @@
         private static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newInstance();
         private final XMLStreamWriter xmlstream;
 
-        protected XMLImpl(OutputStream outputStream) {
+        XMLImpl(OutputStream outputStream) {
             try {
                 this.xmlstream = XML_OUTPUT_FACTORY.createXMLStreamWriter(outputStream);
             } catch (XMLStreamException | FactoryConfigurationError e) {
@@ -435,25 +435,37 @@
         }
     }
 
-    protected NodeElement getElementByObject(Object obj) {
+    /**
+     * @deprecated to be removed
+     */
+    @Deprecated
+    protected Object getElementByObject(Object obj) {
+        return getElementByObjectImpl(obj);
+    }
+
+    final NodeElement getElementByObjectImpl(Object obj) {
         return nodeMap.get(obj);
     }
 
+    /**
+     * @deprecated to be removed
+     */
+    @Deprecated
     protected void createElementForNode(Object node) {
         boolean exists = nodeMap.containsKey(node);
         if (!exists) {
             int nodeId = !exists ? oldOrNextId(node) : nextId();
             nodeMap.put(node, new NodeElement(nodeId));
 
-            setNodeProperty(node, "name", node.getClass().getSimpleName().replaceFirst("Node$", ""));
+            setNodePropertyImpl(node, "name", node.getClass().getSimpleName().replaceFirst("Node$", ""));
             NodeInfo nodeInfo = node.getClass().getAnnotation(NodeInfo.class);
             if (nodeInfo != null) {
-                setNodeProperty(node, "cost", nodeInfo.cost());
+                setNodePropertyImpl(node, "cost", nodeInfo.cost());
                 if (!nodeInfo.shortName().isEmpty()) {
-                    setNodeProperty(node, "shortName", nodeInfo.shortName());
+                    setNodePropertyImpl(node, "shortName", nodeInfo.shortName());
                 }
             }
-            setNodeProperty(node, "class", node.getClass().getSimpleName());
+            setNodePropertyImpl(node, "class", node.getClass().getSimpleName());
             if (node instanceof Node) {
                 readNodeProperties((Node) node);
                 copyDebugProperties((Node) node);
@@ -461,15 +473,23 @@
         }
     }
 
+    /**
+     * @deprecated to be removed
+     */
+    @Deprecated
     protected void setNodeProperty(Object node, String propertyName, Object value) {
-        NodeElement nodeElem = getElementByObject(node);
+        setNodePropertyImpl(node, propertyName, value);
+    }
+
+    final void setNodePropertyImpl(Object node, String propertyName, Object value) {
+        NodeElement nodeElem = getElementByObjectImpl(node);
         nodeElem.getProperties().put(propertyName, value);
     }
 
     private void copyDebugProperties(Node node) {
         Map<String, Object> debugProperties = node.getDebugProperties();
         for (Map.Entry<String, Object> property : debugProperties.entrySet()) {
-            setNodeProperty(node, property.getKey(), property.getValue());
+            setNodePropertyImpl(node, property.getKey(), property.getValue());
         }
     }
 
@@ -478,17 +498,25 @@
         for (NodeFieldAccessor field : fields) {
             if (field.getKind() == NodeFieldKind.DATA) {
                 String key = field.getName();
-                if (!getElementByObject(node).getProperties().containsKey(key)) {
+                if (!getElementByObjectImpl(node).getProperties().containsKey(key)) {
                     Object value = field.loadValue(node);
-                    setNodeProperty(node, key, value);
+                    setNodePropertyImpl(node, key, value);
                 }
             }
         }
     }
 
+    /**
+     * @deprecated to be removed
+     */
+    @Deprecated
     protected void connectNodes(Object a, Object b, String label) {
-        NodeElement fromNode = getElementByObject(a);
-        NodeElement toNode = getElementByObject(b);
+        connectNodesImpl(a, b, label);
+    }
+
+    final void connectNodesImpl(Object a, Object b, String label) {
+        NodeElement fromNode = getElementByObjectImpl(a);
+        NodeElement toNode = getElementByObjectImpl(b);
         if (fromNode == null || toNode == null) {
             return;
         }
@@ -510,7 +538,7 @@
         }
 
         // if node is visited once again, skip
-        if (getElementByObject(node) != null) {
+        if (getElementByObjectImpl(node) != null) {
             return this;
         }
 
@@ -593,19 +621,19 @@
         }
 
         public void connectNodes(Object node, Object child) {
-            GraphPrintVisitor.this.connectNodes(node, child, null);
+            GraphPrintVisitor.this.connectNodesImpl(node, child, null);
         }
 
         public void connectNodes(Object node, Object child, String label) {
-            GraphPrintVisitor.this.connectNodes(node, child, label);
+            GraphPrintVisitor.this.connectNodesImpl(node, child, label);
         }
 
         public void setNodeProperty(Object node, String propertyName, Object value) {
-            GraphPrintVisitor.this.setNodeProperty(node, propertyName, value);
+            GraphPrintVisitor.this.setNodePropertyImpl(node, propertyName, value);
         }
 
         public boolean visited(Object node) {
-            return GraphPrintVisitor.this.getElementByObject(node) != null;
+            return GraphPrintVisitor.this.getElementByObjectImpl(node) != null;
         }
     }