Package y1.pos

Source Code of y1.pos.Cart

package y1.pos;

import java.util.HashMap;
import java.util.Iterator;

import y1.wms.Item;


/**
* Ostukorvi klass.
*
* Ostukorv on realiseeritud, kasutades andmete hoidmiseks hashmap andmestruktuuri, kus key
* on kaup ning value on kauba hulk ostukorvis.
*
* Realiseeritud on kauba lisamise, kauba eemaldamise, ostukorvis oleva kauba hulga muutmise,
* ostukorvi tühjendamise, ostukorvist tellimuse koostamise, ostukorvi maksumuse arvutamise ning
* toString meetodid.
*
* @author Jaak Laanpere
*
*/
public class Cart {
 
  private HashMap<Item, Integer> shoppingCart;
 
 
  /**
   * Ostukorvi klassi konstruktor, mis loob uue hashmap andmestruktuuri nimega shoppingCart.
   *
   */
  public Cart(){
    this.shoppingCart = new HashMap<Item, Integer>();
  }
 
  /**
   * Meetod, mis lisab kaupa ostukorvi. Kauba hulk ei saa olla negatiivne.
   * Kui ostukorvis on juba antud kaupa, siis lisab olemasolevale hulgale
   * parameetrina sisestatud hulga juurde.
   *
   * @param pickedItem — ostukorvi lisatav kaup
   * @param quantity – ostukorvi lisatava kauba hulk
   * @return true/false – kauba lisamine ostukorvi õnnestus/ebaõnnestus
   */
  public boolean add(Item pickedItem, int quantity){
    if(quantity>0){
      if(this.shoppingCart.containsKey(pickedItem)){
        this.shoppingCart.put(pickedItem, this.shoppingCart.get(pickedItem) + quantity);
      }else{
        this.shoppingCart.put(pickedItem, quantity);
      }
      return true;
    }
    return false;
  }
 
  /**
   * Meetod, mis lisab sisendparameetrina antud kauba, kogusega 1, ostukorvi.
   *
   * @param pickedItem — ostukorvi lisatav kaup
   */
  public void add(Item pickedItem){   
    add(pickedItem,1);
  }
 
  /**
   * Meetod kauba eemaldamiseks ostukorvist. Sisendparameetriks kaup.
   * Eemaldab kogu selle kauba koguse ostukorvist.
   *
   * @param pickedItem — valitud kaup ostukorvist, mida soovitakse eemaldada
   */
  public void remove(Item pickedItem){
    if(this.shoppingCart.containsKey(pickedItem)){
      this.shoppingCart.remove(pickedItem);
    }
  }
 
  /**
   * Meetod ostukorvis oleva kindla kauba hulga muutmiseks.
   * Meetodi õnnestumise korral on ostukorvis lõpetades sisendparameetrina
   * sisestatud hulk antud kaupa.
   *
   * @param pickedItem — valitud kaup ostukorvis, mille hulka soovitakse muuta.
   * @param quantity – valitud hulk antud kaupa, mida ostukorvi soovitakse
   * @return true/false — ostukorvi sisu muutmine õnnestus/ebaõnnestus
   */
  public boolean change(Item pickedItem, int quantity){
    if(this.shoppingCart.containsKey(pickedItem) && quantity>0){
      this.shoppingCart.put(pickedItem,quantity);
      return true;
    }
    return false;
  }
 
  /**
   * Meetod ostukorvi tühjendamiseks.
   * Tühjendab kogu ostukorvi kogu kaubast.
   *
   */
  public void clear(){
    this.shoppingCart.clear();
  }
 
  /**
   * Meetod, mis väljastab stringina ostukorvi sisu loetaval kujul.
   */
  public String toString(){
    String cartItems = "";
   
    Iterator<Item> iterator = this.shoppingCart.keySet().iterator();
    while(iterator.hasNext()){
      Item item = iterator.next();     
      if(cartItems != ""){
        cartItems += ", ";
      }
     
      cartItems += this.shoppingCart.get(item) + "x " + "(" + item + ")";
    }
    return cartItems;
 
 
  /**
   * Meetod, mis loob antud ostukorvi põhjal tellimuse.
   * Tagastab uue tellimuse.
   *
   * @return — tellimus, mis sisaldab antud ostukorvi sisu.
   */
  public Order checkOut(){
    Order newOrder = new Order();
    Iterator<Item> iterator = this.shoppingCart.keySet().iterator();
    while(iterator.hasNext()){
      Item item = iterator.next();
      newOrder.add(item, this.shoppingCart.get(item));
    }   
    return newOrder;   
  }

  /**
   * Meetod, mis tagastab ostukorvi maksumuse.
   *
   * @return – ostukorvi maksumus double'ina.
   */
  public double getTotal(){
    double total = 0;
    Iterator<Item> iterator = this.shoppingCart.keySet().iterator();
    while(iterator.hasNext()){
      Item item = iterator.next();
      total += (item.getPrice())* this.shoppingCart.get(item);
    }
    total = Math.round(total*100.0)/100.0;
    return total;
  }
}
TOP

Related Classes of y1.pos.Cart

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.