Materiály k semináři
Úkoly
Úkol odevzdejte emailem do 2. 3. 2022 17:00 CET na email roman.vyjidacek@upol.cz s předmětem JJ2_01.
Uvažujme následující typ XML souboru:
<?xml version="1.0" ?>
<receipt total="1642">
<name>ACME corp.</name>
<itin>CZ12345678</itin>
<items>
<item amount="50" unitPrice="24">Nitroglycerin</item>
<item amount="4" unitPrice="100">Jet Propelled Pogo Stick</item>
<item amount="1" unitPrice="42">Hen Grenade</item>
</items>
</receipt>
Navrhněte třídu Receipt, do které bude možné uložit všechna data z daného XML souboru, přečíst hodnoty a vypsat je.
Uvažujme rozhraní:
public interface ReceiptReaderWriter {
/**
* Nacte ze streamu XML soubor a dle nej vytvori prislusny objekt reprezentujici uctenku
*/
public Receipt loadReceipt(InputStream input) throws Exception;
/**
* Ulozi do prislusneho streamu XML soubor predstavujici danou uctenku
*/
public void storeReceipt(OutputStream output, Receipt receipt) throws Exception;
}
Implementujte příslušné rozhraní jako třídy:
- DOMReceiptReaderWriter -- aby využívalo DOM API
- SAXReceiptReaderWriter -- aby využívalo SAX API (pokus o zápis v tomto případě skončí vždy výjimkou)
- StAXReceiptReaderWriter -- aby využívalo StAX API