public void showGraph(AttributedGraph graph) {
		try {
			PluginTool tool = this.getPlugin().getTool();
			GraphDisplayBroker service = tool.getService(GraphDisplayBroker.class);
			boolean append = getPlugin().appendToGraph();
			GraphDisplay display = service.getDefaultGraphDisplay(append, null);
			GraphDisplayOptions graphOptions = new GraphDisplayOptions(new EmptyGraphType());
			graphOptions.setMaxNodeCount(getPlugin().getGraphSize());

			if (getPlugin().displayGraphs()) {
				display.setGraph(graph, graphOptions, graph.getDescription(), append, null);
				SarifGraphDisplayListener listener =
					new SarifGraphDisplayListener(this, display, graph);
				display.setGraphDisplayListener(listener);
				graphs.add(display);
			}
		}
		catch (GraphException | CancelledException e) {
			Msg.error(this, "showGraph failed " + e.getMessage());
		}
	}
Controller for handling interactions between the SARIF log file and Ghidra
Ghidra/Features/Sarif/src/main/java/sarif/SarifController.java