protected void writeVertexSet( ProcessModel processModel, ElementGraph parentGraph, ElementGraph currentGraph, PrintWriter out, Set<FlowElement> spansClusters, boolean onlySpans, Set<FlowElement> duplicatedElements, Set<FlowElement> identityElements ) { boolean isIdentityGraph = false; if( processModel != null ) isIdentityGraph = ProcessModels.isIdentity( processModel, Tap.class ); for( FlowElement flowElement : currentGraph.vertexSet() ) { boolean spans = spansClusters.contains( flowElement ); boolean isIdentity = identityElements.contains( flowElement ); if( isIdentity && isIdentityGraph ) continue; if( isIdentity ) spans = false; if( spans != onlySpans ) continue; out.print( INDENT + getVertexID( isIdentity ? parentGraph : currentGraph, flowElement ) ); String labelName = null; if( vertexLabelProvider != null ) labelName = vertexLabelProvider.getVertexName( flowElement ); Map<String, String> attributes = new HashMap<>(); if( duplicatedElements.contains( flowElement ) ) attributes.put( "color", getHSBColorFor( flowElement ) ); if( vertexAttributeProvider != null ) attributes.putAll( vertexAttributeProvider.getComponentAttributes( flowElement ) ); renderAttributes( out, labelName, attributes ); out.println( ";" ); } }