1 /**
2 This interface describes the tasks that an invoice
3 formatter needs to carry out.
4 */
5 public interface InvoiceFormatter
6 {
7 /**
8 Formats the header of the invoice.
9 @return the invoice header
10 */
11 String formatHeader();
12
13 /**
14 Formats a line item of the invoice.
15 @return the formatted line item
16 */
17 String formatLineItem(LineItem item);
18
19 /**
20 Formats the footer of the invoice.
21 @return the invoice footer
22 */
23 String formatFooter();
24 }