01: /**
02: This interface describes the tasks that an invoice
03: formatter needs to carry out.
04: */
05: public interface InvoiceFormatter
06: {
07: /**
08: Formats the header of the invoice.
09: @return the invoice header
10: */
11: String formatHeader();
12: /**
13: Formats a line item of the invoice.
14: @return the formatted line item
15: */
16: String formatLineItem(LineItem item);
17: /**
18: Formats the footer of the invoice.
19: @return the invoice footer
20: */
21: String formatFooter();
22: }