< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphStructure.java

Print this page

        

*** 36,48 **** * @param <C> the type of node classes * @param <P> the type of node ports */ public interface GraphStructure<G, N, C, P> { /** ! * Casts the provided object to graph, if possible. If the given object <code>obj</code> can be ! * seen as a graph or sub-graph of a graph, then return the properly typed instance. Otherwise ! * return <code>null</code> * * @param currentGraph the currently processed graph * @param obj an object to check and view as a graph * @return appropriate graph object or <code>null</code> if the object doesn't represent a graph */ --- 36,48 ---- * @param <C> the type of node classes * @param <P> the type of node ports */ public interface GraphStructure<G, N, C, P> { /** ! * Casts {@code obj} to graph, if possible. If the given object <code>obj</code> can be seen as ! * a graph or sub-graph of a graph, then return the properly typed instance. Otherwise return ! * <code>null</code> * * @param currentGraph the currently processed graph * @param obj an object to check and view as a graph * @return appropriate graph object or <code>null</code> if the object doesn't represent a graph */
*** 67,78 **** * @return the number of nodes that will be returned by {@link #nodes(java.lang.Object)} */ int nodesCount(G graph); /** ! * Id of a node. Each node in the graph is uniquely identified by a integer value. If two nodes ! * have the same id, then they shall be <code>==</code> to each other. * * @param node the node to query for an id * @return the id of the node */ int nodeId(N node); --- 67,78 ---- * @return the number of nodes that will be returned by {@link #nodes(java.lang.Object)} */ int nodesCount(G graph); /** ! * Id of {@code node}. Each node in the graph is uniquely identified by an integer value. If two ! * nodes have the same id, then they shall be <code>==</code> to each other. * * @param node the node to query for an id * @return the id of the node */ int nodeId(N node);
*** 94,113 **** * @param properties the map to put the properties to */ void nodeProperties(G graph, N node, Map<String, ? super Object> properties); /** ! * Finds the node class for the provided object, if possible. If the given object ! * <code>obj</code> can be seen as an instance of node class or it is a node in this graph, ! * return the properly typed instance of the node class. Otherwise return <code>null</code> * * @param obj an object to find node class for ! * @return appropriate graph object or <code>null</code> if the object doesn't represent a graph */ C nodeClass(Object obj); /** * The template used to build the name of nodes of this class. The template may use references * to inputs ({i#inputName}) and its properties ({p#propertyName}). * * @param nodeClass the node class to find name template for * @return the string representing the template --- 94,132 ---- * @param properties the map to put the properties to */ void nodeProperties(G graph, N node, Map<String, ? super Object> properties); /** ! * Finds a node for {@code obj}, if possible. If the given object <code>obj</code> can be seen ! * as an instance of node return the properly typed instance of the node class. Otherwise return ! * <code>null</code>. ! * ! * @param obj an object to find node for ! * @return appropriate graph object or <code>null</code> if the object doesn't represent a node ! */ ! N node(Object obj); ! ! /** ! * Finds a node class for {@code obj}, if possible. If the given object <code>obj</code> can be ! * seen as an instance of node class return the properly typed instance of the node class. ! * Otherwise return <code>null</code>. * * @param obj an object to find node class for ! * @return appropriate graph object or <code>null</code> if the object doesn't represent a node ! * class */ C nodeClass(Object obj); /** + * Finds a node class for {@code node}. + * + * @param node an instance of node in this graph + * @return the node's node class, never <code>null</code> + */ + C classForNode(N node); + + /** * The template used to build the name of nodes of this class. The template may use references * to inputs ({i#inputName}) and its properties ({p#propertyName}). * * @param nodeClass the node class to find name template for * @return the string representing the template
< prev index next >