org.jacoco.report.internal

## Class AbstractGroupVisitor

- java.lang.Object
- - org.jacoco.report.internal.AbstractGroupVisitor

All Implemented Interfaces:
  IReportGroupVisitor

Direct Known Subclasses:
  HTMLGroupVisitor, XMLGroupVisitor

    public abstract class AbstractGroupVisitor
    extends Object
    implements IReportGroupVisitor

Internal base visitor to calculate group counter summaries for hierarchical reports.

### Field Summary

Fields
`protected CoverageNodeImpl` `total` coverage node for this group to total counters

### Constructor Summary

Constructors
`protected` `AbstractGroupVisitor(String name)` Creates a new group with the given name.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract void` `handleBundle(IBundleCoverage bundle, ISourceFileLocator locator)` Called to handle the given bundle in a specific way.
`protected abstract void` `handleEnd()` Called to handle the end of this group in a specific way.
`protected abstract AbstractGroupVisitor` `handleGroup(String name)` Called to handle a group with the given name in a specific way.
`void` `visitBundle(IBundleCoverage bundle, ISourceFileLocator locator)` Called to add a bundle to the the report.
`void` `visitEnd()` Must be called at the end of every group.
`IReportGroupVisitor` `visitGroup(String name)` Called to add a new group to the report.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### total

    protected final CoverageNodeImpl total

coverage node for this group to total counters

### Constructor Detail

#### AbstractGroupVisitor

    protected AbstractGroupVisitor(String name)

Creates a new group with the given name.

Parameters:
  `name` - name for the coverage node created internally

### Method Detail

#### visitBundle

    public final void visitBundle(IBundleCoverage bundle,
                                  ISourceFileLocator locator)
                           throws IOException

Description copied from interface: `IReportGroupVisitor`
Called to add a bundle to the the report.

Specified by:
  `visitBundle` in interface `IReportGroupVisitor`
Parameters:
  `bundle` - a bundle to include in the report
  `locator` - source locator for this bundle
Throws:
  `IOException` - in case of IO problems with the report writer

#### handleBundle

    protected abstract void handleBundle(IBundleCoverage bundle,
                                         ISourceFileLocator locator)
                                  throws IOException

Called to handle the given bundle in a specific way.

Parameters:
  `bundle` - analyzed bundle
  `locator` - source locator
Throws:
  `IOException` - if the report can't be written

#### visitGroup

    public final IReportGroupVisitor visitGroup(String name)
                                         throws IOException

Description copied from interface: `IReportGroupVisitor`
Called to add a new group to the report. The returned `IReportGroupVisitor` instance can be used to add nested bundles or groups. The content of the group has to be completed before this or any parent visitor can be used again ("deep first").

Specified by:
  `visitGroup` in interface `IReportGroupVisitor`
Parameters:
  `name` - name of the group
Returns:
  visitor for the group's content
Throws:
  `IOException` - in case of IO problems with the report writer

#### handleGroup

    protected abstract AbstractGroupVisitor handleGroup(String name)
                                                 throws IOException

Called to handle a group with the given name in a specific way.

Parameters:
  `name` - name of the group
Returns:
  created child group
Throws:
  `IOException` - if the report can't be written

#### visitEnd

    public final void visitEnd()
                        throws IOException

Must be called at the end of every group.

Throws:
  `IOException` - if the report can't be written

#### handleEnd

    protected abstract void handleEnd()
                               throws IOException

Called to handle the end of this group in a specific way.

Throws:
  `IOException` - if the report can't be written