// ITI1120 (Fall 2011), Assignment 5, Question 2

// This program performs simple actions on Item objets.

class A5Q2
{
   public static void main (String[] args)
   { 
    // VARIABLES DECLARATIONS
       Item book;
       Item dvd;
       Item game;
       boolean result;

    // PRINTS IDENTIFICATION LINE
       System.out.println();
       System.out.println("A5Q2: Test ot the class Item");
       System.out.println();

    // ALGORITHM BODY
       book = new Item(Item.BOOK, "Superman I", 24, 3);
       dvd = new Item(Item.DVD, "Harry Potter VI", 35, 5);
       game = new Item(Item.GAME, "HALO 3", 40, 2);
       
       System.out.println( book.getTitle() + ": " 
                           + Item.typeToString(book.getType())
                           + ", " + book.getPrice() 
                           + ", " + book.getCopiesAvailable() );
       System.out.println( dvd.getTitle() + ": " 
                           + Item.typeToString(dvd.getType())
                           + ", " + dvd.getPrice() 
                           + ", " + dvd.getCopiesAvailable() );

       game.setPrice(38);
       result = game.decrementCopies();
       System.out.println( game.getTitle() + ": " 
                           + Item.typeToString(game.getType())
                           + ", " + game.getPrice() 
                           + ", " + game.getCopiesAvailable()
                           + ". Result: " + result );

       result = game.decrementCopies(); // should be 0
       result = game.decrementCopies(); // should produce an error!
       System.out.println( game.getTitle() + ": " 
                           + Item.typeToString(game.getType())
                           + ", " + game.getPrice() 
                           + ", " + game.getCopiesAvailable()
                           + ". Result: " + result );
       

       game.incrementCopies();            // should be 1
       System.out.println( game.getTitle() + ": " 
                           + Item.typeToString(game.getType())
                           + ", " + game.getPrice() 
                           + ", " + game.getCopiesAvailable()
                           + ".");

   }
}
