# Class: com.pnfsoftware.jeb.core.units.code.CFGUtil.DotFileGenerator

GraphViz generator for CFG objects. The edge labels are customizable via protected methods.

## Constructor: DotFileGenerator
- parameter: `cfg`, type: `com.pnfsoftware.jeb.core.units.code.IControlFlowGraph<?,?>`

Description: Create a dot file generator.
parameter: cfg: control flow graph

## Method: generate
- return type: `java.lang.String`

Description: Generate the dot file contents.
return: dot file contents

## Protected Method: generateEdgeLabel
- parameter: `src`, type: `com.pnfsoftware.jeb.core.units.code.IBasicBlock<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- parameter: `outEdgeIndex`, type: `int`
- return type: `java.lang.String`

Description: Generate a regular edge label.
parameter: src: source block
parameter: outEdgeIndex: output edge index
return: edge label, or null

## Protected Method: generateIrregularEdgeLabel
- parameter: `src`, type: `com.pnfsoftware.jeb.core.units.code.IBasicBlock<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- parameter: `outEdgeIndex`, type: `int`
- return type: `java.lang.String`

Description: Generate an irregular edge label.
parameter: src: source block
parameter: outEdgeIndex: output edge index
return: edge label, or null

## Protected Method: generateNodeBackgroundColor
- parameter: `blk`, type: `com.pnfsoftware.jeb.core.units.code.IBasicBlock<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- return type: `java.lang.String`

Description: Generate a node background color.
parameter: blk: basic block
return: background color, or null

## Protected Method: generateNodeTextColor
- parameter: `blk`, type: `com.pnfsoftware.jeb.core.units.code.IBasicBlock<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- return type: `java.lang.String`

Description: Generate a node text color.
parameter: blk: basic block
return: text color, or null

## Method: setBlockHeaders
- parameter: `blockHeaders`, type: `java.util.Map<java.lang.Long,java.lang.String>`

Description: Set optional block headers.
parameter: blockHeaders: block headers

## Method: setGenerateBlockIndices
- parameter: `nodeIndexingStartValue`, type: `int`

Description: Set the first generated block index.
parameter: nodeIndexingStartValue: first block index

## Method: setLineLimit
- parameter: `lineLimit`, type: `int`

Description: Set the line limit.
parameter: lineLimit: line limit

## Method: setTitle
- parameter: `title`, type: `java.lang.String`

Description: Set the graph title.
parameter: title: graph title

