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( ";" );
}
}