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();
13: /**
14: Formats a line item of the invoice.
15: @return the formatted line item
16: */
17: String formatLineItem(LineItem item);
19: /**
20: Formats the footer of the invoice.
21: @return the invoice footer
22: */
23: String formatFooter();
24: }