Package y1.pos

Source Code of y1.pos.Order

package y1.pos;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import y1.wms.Item;

/**
* Tellimuse klass.
*
* Tellimuse infot hoitakse hashmap struktuuris, kus key on kauba nimi
* ning value on kauba kogus integerina.
* Andmestruktuuri andmete lisamiseks on meetod add.
* Igal tellimusel on unikaalne kood, esimesel tellimusel 1, teisel 2 jne.
* Realiseeritud on toString meetod, mis tagastab tellimuse ID ja seal
* sisalduvad tooted ja nende hulga.
* Loodud on avalikud getQty ja getItem meetodid, et andmed oleks loetavad
* teises klassis Iterator'it kasutades.
*
* @author Jaak Laanpere
*
*/
public class Order {
 
  private HashMap<Item, Integer> orderItems;
  private static int lastOutputId = 0;
  private int orderId;
 
 
  /**
   * Tellimuse klassi konstruktor.
   * Väärtustab tellimuse unikaalse ID ja loob uue
   * HashMap andmestruktuuri, millega kaupu hoida.
   *
   */
  public Order(){
    this.orderId = ++lastOutputId;
    this.orderItems = new HashMap<Item, Integer>();
  }
 
 
  /**
   * Tellimusele kaupade lisamise meetod.
   * Parameetritena võtab kauba ning lisatava koguse integerina.
   * Kui lisatav kaup on tellimuses juba olemas, kasvatab lihtsalt selle kogust.
   *
   * Tagastab true/false vastavalt sellele, kas kaup lisati tellimusele või mitte.
   *
   * @param item — kaup
   * @param quantity — kauba hulk
   * @return true/false — lisamine õnnestus/lisamine ebaõnnestus
   */
  public boolean add(Item item, int quantity){
    if(item!=null && quantity>0){
      if(this.orderItems.containsKey(item)){
        orderItems.put(item, orderItems.get(item)+quantity);
      }else{
        orderItems.put(item, quantity);
      }
      return true;
    }else{
      return false;
    }
  }
 
  /**
   * Meetod, mis tagastab kõik kaubad ühes tellimuses.
   *
   * @return kõik kauba tellimused
   */
  public Set<Item> getItem(){
    return orderItems.keySet();
  }

  /**
   *  Meetod, mis tagastab kõik eri kaupade kogused ühes tellimuses.
   *
   * @return kõik eri kaupade tellimused
   *
   */
  public Collection<Integer> getQty(){
    return orderItems.values();
  }
 
  /**
   * Tagastab loetaval kujul esitatava info tellimuse kohta string'ina.
   *
   */
  public String toString(){
    String order = "Tellimus nr: " + this.orderId + "  sisaldab ";
   
    Iterator<Item> iterator = this.orderItems.keySet().iterator();
    while(iterator.hasNext()){
      Item item = iterator.next();     
      if(order != "Tellimus nr: " + this.orderId + "  sisaldab "){
        order += ", ";
      }
     
      order += this.orderItems.get(item) + "x " + "(" + item + ")";
    }
    return order;
 
 

}
TOP

Related Classes of y1.pos.Order

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.