UNB/ CS/ David Bremner/ teaching/ java/ Product.java
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.IOException;

public class Product
{  /**
      Constructs a product with empty name and 0 price and
      score.
   */
   public Product()
   {  name = "";
      price = 0;
      score = 0;
   }
   
   /**
      Constructs a product with the given name, price and 
      score.
      @param aName product name
      @param aPrice product price
      @param aScore product score between 0...100
   */
   public Product(String aName, double aPrice, int aScore)
   {  name = aName;
      price = aPrice;
      score = aScore;
   }

   /**
      Reads a product from a buffered reader.
      @param in the reader
      @return true if a product was successfully read, false
      if end of input was detected
   */
   public boolean read(BufferedReader in) 
      throws IOException
   {  // read product name
      
      name = in.readLine();
      if (name == null) return false; 

      // read product price

      String inputLine = in.readLine();
      if (inputLine == null)
         throw new EOFException
            ("EOF when reading price");
      price = Double.parseDouble(inputLine);

      // read product score

      inputLine = in.readLine();
      if (inputLine == null)
         throw new EOFException
            ("EOF when reading score");
      score = Integer.parseInt(inputLine);
      return true;
   }

   /**
      Returns the product name.
      @return the product name
   */
   public String getName()
   {  return name;
   }
   
   /**
      Returns the product price.
      @return the product price
   */
   public double getPrice()
   {  return price;
   }
   
   /**
      Returns the product score.
      @return the product score
   */
   public int getScore()
   {  return score;
   }
   
   /**
      Sets the product price.
      @param newPrice the new product price
   */
   public void setPrice(double newPrice)
   {  price = newPrice;
   }
   
   private String name;
   private double price;
   private int score;
}