# All Classes and Interfaces

Class
Description
CfrDriver
Main driver for CFR API.
CfrDriver.Builder
Builder for `CfrDriver` Note that *all* parameters are optional.
ClassFileSource
Implementing your own `ClassFileSource` allows you to override CFR's sourcing of byte code.
ClassFileSource.Factory
Helper to construct "Standard" `ClassFileSource`, which may be useful for delegating to.
OutputSinkFactory
OutputSinkFactory.Sink<T>
NB Sink as opposed to a stream, means that implementor has the choice of when to close.
OutputSinkFactory.SinkClass
Defines the kind of object that will arrive on your sink.
All consumers should accept at least STRING.
Not all classes are appropriate to all sink types.
`OutputSinkFactory.Sink` instances are constructed, and used in terms of sink classes so as to ensure easy future expansion of capabilities without breaking the ABI, and without being entirely weakly typed.
OutputSinkFactory.SinkType
Defines the kind of sink this is.
SinkReturns
Sinks will accept (as defined by `OutputSinkFactory.SinkClass` various types of messages.
SinkReturns.Decompiled
Fuller decompilation than simply accepting STRING.
SinkReturns.DecompiledMultiVer
Extends `SinkReturns.Decompiled` to describe which version of JVM this class is visible from.
SinkReturns.ExceptionMessage
An exception message with more detail.
SinkReturns.LineNumberMapping
SinkReturns.Token
SinkReturns.TokenType
SinkReturns.TokenTypeFlags