17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package org.graalvm.graphio; 24 25 import java.io.IOException; 26 import java.nio.channels.WritableByteChannel; 27 import java.util.Collection; 28 import java.util.Map; 29 30 final class ProtocolImpl<Graph, Node, NodeClass, Port, Block, ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> 31 extends GraphProtocol<Graph, Node, NodeClass, Port, Block, ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> { 32 private final GraphStructure<Graph, Node, NodeClass, Port> structure; 33 private final GraphTypes types; 34 private final GraphBlocks<Graph, Block, Node> blocks; 35 private final GraphElements<ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> elements; 36 37 ProtocolImpl(GraphStructure<Graph, Node, NodeClass, Port> structure, GraphTypes enums, GraphBlocks<Graph, Block, Node> blocks, 38 GraphElements<ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> elements, WritableByteChannel channel) throws IOException { 39 super(channel); 40 this.structure = structure; 41 this.types = enums; 42 this.blocks = blocks; 43 this.elements = elements; 44 } 45 46 @Override 47 protected Graph findGraph(Graph current, Object obj) { 48 return structure.graph(current, obj); 49 } 50 51 @Override 52 protected NodeClass findNodeClass(Object obj) { 53 return structure.nodeClass(obj); 54 } 55 56 @Override 57 protected String findNameTemplate(NodeClass clazz) { 58 return structure.nameTemplate(clazz); 59 } 60 61 @Override 62 protected int findNodeId(Node n) { 63 return structure.nodeId(n); 64 } 65 66 @Override 67 protected boolean hasPredecessor(Node node) { 68 return structure.nodeHasPredecessor(node); 69 } 70 71 @Override 72 protected int findNodesCount(Graph info) { 73 return structure.nodesCount(info); | 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package org.graalvm.graphio; 24 25 import java.io.IOException; 26 import java.nio.channels.WritableByteChannel; 27 import java.util.Collection; 28 import java.util.Map; 29 30 final class ProtocolImpl<Graph, Node, NodeClass, Port, Block, ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> 31 extends GraphProtocol<Graph, Node, NodeClass, Port, Block, ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> { 32 private final GraphStructure<Graph, Node, NodeClass, Port> structure; 33 private final GraphTypes types; 34 private final GraphBlocks<Graph, Block, Node> blocks; 35 private final GraphElements<ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> elements; 36 37 ProtocolImpl(int major, int minor, GraphStructure<Graph, Node, NodeClass, Port> structure, GraphTypes enums, GraphBlocks<Graph, Block, Node> blocks, 38 GraphElements<ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> elements, WritableByteChannel channel) throws IOException { 39 super(channel, major, minor); 40 this.structure = structure; 41 this.types = enums; 42 this.blocks = blocks; 43 this.elements = elements; 44 } 45 46 ProtocolImpl(GraphProtocol<?, ?, ?, ?, ?, ?, ?, ?, ?> parent, GraphStructure<Graph, Node, NodeClass, Port> structure, GraphTypes enums, GraphBlocks<Graph, Block, Node> blocks, 47 GraphElements<ResolvedJavaMethod, ResolvedJavaField, Signature, NodeSourcePosition> elements) { 48 super(parent); 49 this.structure = structure; 50 this.types = enums; 51 this.blocks = blocks; 52 this.elements = elements; 53 } 54 55 @Override 56 protected Graph findGraph(Graph current, Object obj) { 57 return structure.graph(current, obj); 58 } 59 60 @Override 61 protected Node findNode(Object obj) { 62 return structure.node(obj); 63 } 64 65 @Override 66 protected NodeClass findNodeClass(Object obj) { 67 return structure.nodeClass(obj); 68 } 69 70 @Override 71 protected NodeClass findClassForNode(Node obj) { 72 return structure.classForNode(obj); 73 } 74 75 @Override 76 protected String findNameTemplate(NodeClass clazz) { 77 return structure.nameTemplate(clazz); 78 } 79 80 @Override 81 protected int findNodeId(Node n) { 82 return structure.nodeId(n); 83 } 84 85 @Override 86 protected boolean hasPredecessor(Node node) { 87 return structure.nodeHasPredecessor(node); 88 } 89 90 @Override 91 protected int findNodesCount(Graph info) { 92 return structure.nodesCount(info); |