/**
* @author Timotius Wirawan
* @version 26 Oktober 2020
*/
import java.util.ArrayList;
public class Auction
{
private ArrayList<Lot> daftarlot; //daftar barang lelang
private int no_Lot; //untuk nomor lelang barang
//lelang baru
public Auction()
{
daftarlot = new ArrayList<Lot>(); //list barangnya
no_Lot = 1; //nomor lelang barang
}
//memasukkan barang ke list barang lelang
public void enterLot(String nama_barang)
{
daftarlot.add(new Lot(no_Lot, nama_barang));
no_Lot++;
}
//menampilkan semua barang yang dilelang
public void showLot()
{
for(Lot lot : daftarlot)
{
System.out.println(lot.toString());
}
System.out.println();
}
public void MakeBid(int CurrentlotNumber, Person bidder, long price)
{
Lot selectedLot = getLot(CurrentlotNumber);
if(selectedLot != null)
{
boolean successful = selectedLot.bidFor(new Bid(bidder, price));
//cek dengan penawaran sebelumnya, apakah lebih besar atau tidak
if(successful)
{
System.out.println("Bid untuk lot nomor " +
CurrentlotNumber + " berhasil dilakukan");
System.out.println("Bid dilakukan oleh " + bidder.getNamaOrang()+
" dengan harga " +"Rp."+ price);
}
else
{
//bila penawaran sebelumnya lebih besar, maka penawaran ini gagal
Bid highestBid = selectedLot.getHighestBid();
System.out.println("Bid untuk Lot Nomor "+ CurrentlotNumber +
" gagal dilakukan");
System.out.println("Lot nomor "+ CurrentlotNumber+
" memiliki penawaran tertinggi sebesar "+"Rp."+ highestBid.getBid());
}
}
}
public Lot getLot(int CurrentlotNumber)
{
if((CurrentlotNumber >= 1) && (CurrentlotNumber < no_Lot))
{
Lot selectedLot = daftarlot.get(CurrentlotNumber - 1);
if(selectedLot.getid_barang() != CurrentlotNumber)
{
System.out.println("Internal error : Lot nomor " +
selectedLot.getid_barang() +
"telah dikembalikan, bukan lot nomor " +
CurrentlotNumber);
selectedLot = null;
}
return selectedLot;
}
else
{
System.out.println("Lot nomor " + CurrentlotNumber + " tidak tersedia.");
return null;
}
}
//bid akan berhenti
public void bidstop()
{
System.out.println("Pelelangan telah berakhir.");
for(Lot lot : daftarlot)
{
System.out.print(lot.getid_barang() + ". " +lot.getDescription());
Bid bid = lot.getHighestBid();
if (bid==null)
{
System.out.print(" : Tidak ada penawaran untuk lot ini");
System.out.println();
}
else
{
System.out.println(" : Barang ini terjual kepada " +
bid.getBidder().getNamaOrang() + " dengan harga : Rp." + bid.getBid());
}
}
}
}