import java.io.*;
import java.util.*;
import javax.xml.bind.*;
import javax.xml.marshal.*;
import java.math.BigDecimal;

public class TestClient2
{
    public static void showKsiążki( List książkaList )
    {
        for( Iterator i=książkaList.iterator(); i.hasNext(); )
        {
            Książka książka = ( Książka )i.next();
            System.out.println( "Książka: " + 
                                książka.getTytuł() + ", " + 
                                książka.getAutor() + ", " +
                                książka.getCena() + ", " +
                                książka.getKategoria() );
        }
    }
    
    public static void main( String[] args )
    {
        try
        {
	    // Otwórz plik book.xml
            File plik = new File( "książka.xml" );
            if( !plik.exists() )
            {
                System.out.println( "Nie znaleziono pliku..." );
                return;
            }
            FileInputStream fis = new FileInputStream( plik );
            Książki Książki = Książki.unmarshal( fis );
            fis.close();

	    // Pokaż pierwotną zawartość pliku
            showKsiążki( Książki.getKsiążka() );

            // Dołącz książkę
            System.out.println( "\nDodawanie książki" );
            Książka książka = new Książka();
            książka.setTytuł( "Java w komercyjnych usługach sieciowych" );
            książka.setAutor( "Kilku facetów" );
            książka.setCena( new BigDecimal( 49.95 ) );
            książka.setKategoria( KategoriaType.COMPUTER_PROGRAMMING );
            Książki.getKsiążka().add( książka );

	    // Pokaż zaktualizowaną zawartość dokumentu XML
            showKsiążki( Książki.getKsiążka() );

	    // Wyświetl na ekranie kompletny dokument XML
            XMLWriter writer = new XMLWriter( System.out, "US-ASCII", true );
            Książki.validate();
            Książki.marshal( writer );
        }
        catch( Exception e )
        {
            e.printStackTrace();
        }
        
    }
}

