The expense report application contains three business logic classes, shown in Figure 5-2. These classes have no dependencies on JSF (or any other presentation technology, for that matter).
Report instances are saved in a
ReportRegistry, which is an abstract class with
concrete subclasses for different storage medias. The
FileReportRegistry implements a simple
filesystem-based storage facility.