Class GmlExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.temp.explain.GraphExporter<N,E>
-
- com.apple.foundationdb.record.query.plan.temp.explain.GmlExporter<N,E>
-
- Type Parameters:
N
- the network node typeE
- the network edge type
public class GmlExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge> extends GraphExporter<N,E>
Exports a graph into a DOT file.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.apple.foundationdb.record.query.plan.temp.explain.GraphExporter
GraphExporter.ClusterProvider<N,E>, GraphExporter.ComponentAttributeProvider<T>, GraphExporter.ComponentIdProvider<T>, GraphExporter.ExporterContext
-
-
Constructor Summary
Constructors Constructor Description GmlExporter(GraphExporter.ComponentIdProvider<N> vertexIDProvider, GraphExporter.ComponentAttributeProvider<N> vertexAttributeProvider, GraphExporter.ComponentIdProvider<E> edgeIDProvider, GraphExporter.ComponentAttributeProvider<E> edgeAttributeProvider, Map<String,Attribute> graphAttributes)
Constructs a new GmlExporter object with the given ID, label, attribute, and graph ID providers.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
isValidId(String idCandidate)
Test if the ID candidate is a valid ID.protected void
renderCluster(GraphExporter.ExporterContext context, String clusterId, N head, Set<N> nodeSet, Map<String,Attribute> attributes)
Render a sub cluster.protected void
renderEdge(GraphExporter.ExporterContext context, boolean isDirected, N source, N target, Map<String,Attribute> attributes)
Render an edge.protected void
renderFooter(GraphExporter.ExporterContext context)
Render the footer.protected void
renderGraphAttributes(GraphExporter.ExporterContext context, Map<String,Attribute> attributes)
Render the global graph attributes.protected void
renderHeader(GraphExporter.ExporterContext context, com.google.common.graph.ImmutableNetwork<N,E> graph)
Render the header.protected void
renderNode(GraphExporter.ExporterContext context, N node, Map<String,Attribute> attributes)
Render a node.-
Methods inherited from class com.apple.foundationdb.record.query.plan.temp.explain.GraphExporter
exportGraph, getClusterAttributeProvider, getClusterProvider, getEdgeAttributeProvider, getEdgeID, getEdgeIDProvider, getGraphAttributes, getVertexAttributeProvider, getVertexID, getVertexIDProvider, getVertexIds, renderClusters, renderEdges, renderNodes
-
-
-
-
Constructor Detail
-
GmlExporter
public GmlExporter(@Nonnull GraphExporter.ComponentIdProvider<N> vertexIDProvider, @Nonnull GraphExporter.ComponentAttributeProvider<N> vertexAttributeProvider, @Nonnull GraphExporter.ComponentIdProvider<E> edgeIDProvider, @Nonnull GraphExporter.ComponentAttributeProvider<E> edgeAttributeProvider, @Nonnull Map<String,Attribute> graphAttributes)
Constructs a new GmlExporter object with the given ID, label, attribute, and graph ID providers. Note that if a label provider conflicts with a label-supplying attribute provider, the label provider is given precedence.- Parameters:
vertexIDProvider
- for generating vertex IDs. Must not be null.vertexAttributeProvider
- for generating vertex attributes. If null, vertex attributes will not be written to the file.edgeIDProvider
- for generating edge IDs. Must not be null.edgeAttributeProvider
- for generating edge attributes. If null, edge attributes will not be written to the file.graphAttributes
- map of global graph-wide attributes
-
-
Method Detail
-
isValidId
protected boolean isValidId(@Nonnull String idCandidate)
Test if the ID candidate is a valid ID.- Specified by:
isValidId
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
idCandidate
- the ID candidate.- Returns:
true
if it is valid;false
otherwise.
-
renderHeader
protected void renderHeader(@Nonnull GraphExporter.ExporterContext context, @Nonnull com.google.common.graph.ImmutableNetwork<N,E> graph)
Description copied from class:GraphExporter
Render the header. To be implemented by subclass.- Specified by:
renderHeader
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the contextgraph
- the graph
-
renderGraphAttributes
protected void renderGraphAttributes(@Nonnull GraphExporter.ExporterContext context, @Nonnull Map<String,Attribute> attributes)
Description copied from class:GraphExporter
Render the global graph attributes. To be implemented by subclass.- Specified by:
renderGraphAttributes
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the contextattributes
- the attributes of the graph
-
renderNode
protected void renderNode(@Nonnull GraphExporter.ExporterContext context, @Nonnull N node, @Nonnull Map<String,Attribute> attributes)
Description copied from class:GraphExporter
Render a node. To be implemented by subclass.- Specified by:
renderNode
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the contextnode
- the node to be renderedattributes
- the attributes of the node
-
renderEdge
protected void renderEdge(@Nonnull GraphExporter.ExporterContext context, boolean isDirected, @Nonnull N source, @Nonnull N target, @Nonnull Map<String,Attribute> attributes)
Description copied from class:GraphExporter
Render an edge. To be implemented by subclass.- Specified by:
renderEdge
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the contextisDirected
- true iff edge is directedsource
- the source node of the edgetarget
- the target node of the edgeattributes
- the attributes of the edge
-
renderCluster
protected void renderCluster(@Nonnull GraphExporter.ExporterContext context, @Nonnull String clusterId, @Nonnull N head, @Nonnull Set<N> nodeSet, @Nonnull Map<String,Attribute> attributes)
Description copied from class:GraphExporter
Render a sub cluster. To be implemented by subclass.- Specified by:
renderCluster
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the contextclusterId
- id of the cluster, can be used for naming purposeshead
- head node representative of the clusternodeSet
- set of nodes making up the clusterattributes
- the attributes of the sub cluster
-
renderFooter
protected void renderFooter(@Nonnull GraphExporter.ExporterContext context)
Description copied from class:GraphExporter
Render the footer.- Specified by:
renderFooter
in classGraphExporter<N extends PlannerGraph.Node,E extends PlannerGraph.Edge>
- Parameters:
context
- the context
-
-