public static boolean printProcessGraph( String filename, final ElementGraph graph, final ProcessGraph<? extends ProcessModel> processGraph ) { try { File parentFile = new File( filename ).getParentFile(); if( parentFile != null && !parentFile.exists() ) parentFile.mkdirs(); Writer writer = new FileWriter( filename ); DOTProcessGraphWriter graphWriter = new DOTProcessGraphWriter( new IntegerNameProvider<>(), new FlowElementVertexNameProvider( graph, null ), new ScopeEdgeNameProvider(), new VertexAttributeProvider(), new EdgeAttributeProvider(), new ProcessGraphNameProvider(), new ProcessGraphLabelProvider() ); graphWriter.writeGraph( writer, graph, processGraph ); writer.close(); return true; } catch( IOException exception ) { LOG.error( "failed printing graph to: {}, with exception: {}", filename, exception ); } return false; }