Skip to content
Snippets Groups Projects
Commit 129d61f7 authored by Amanda Yli-Talonen's avatar Amanda Yli-Talonen
Browse files

Upload New File

parent 525f4bde
No related branches found
No related tags found
No related merge requests found
import java.util.ArrayList;
import java.util.HashMap;
public class Verkkokauppa {
private HashMap<String, Asiakas> asiakkaat;
private HashMap<String,Tuote> tuotteet;
private HashMap<String, Myyja> myyjat;
private ArrayList<Ostotapahtuma> tapahtumat;
public Verkkokauppa() {
asiakkaat = new HashMap<>();
tuotteet = new HashMap<>();
myyjat = new HashMap<>();
tapahtumat = new ArrayList<>();
}
public void lisaaAsiakas(String avain, Asiakas asiakas) {
asiakkaat.put(avain, asiakas);
}
public void lisaaTuote(String avain, Tuote tuote) {
tuotteet.put(avain, tuote);
}
public void lisaaMyyja(String avain, Myyja myyja) {
myyjat.put(avain, myyja);
}
public void lisaaTapahtuma(Ostotapahtuma tapahtuma) {
tapahtumat.add(tapahtuma);
}
/**
* Yrittää poistaa annetun asiakkaan asiakalistasta.
*
* @param asiakas asiakas, jonka poistoa yritetään
* @return true, jos asiakas löytyi ja poistettiin, muuten false
*/
public boolean poistaAsiakas(String avain) {
if (asiakkaat.containsKey(avain)) {
asiakkaat.remove(avain);
return true;
}
return false;
}
/**
* Yrittää poistaa annetun tuotteen tuotelistasta.
*
* @param tuote tuote, jonka poistoa yritetään
* @return true, jos tuote löytyi ja poistettiin, muuten false
*/
public boolean poistaTuote(String avain) {
if (tuotteet.containsKey(avain)) {
tuotteet.remove(avain);
return true;
}
return false;
}
/**
* Yrittää poistaa annetun myyjän myyjalistasta.
*
* @param myyja myyja, jonka poistoa yritetään
* @return true, jos myyjä löytyi ja poistettiin, muuten false
*/
public boolean poistaMyyja(String avain) {
if (myyjat.containsKey(avain)) {
myyjat.remove(avain);
return true;
}
return false;
}
/**
* Yrittää poistaa annetun tapahtuman ostotapahtumalistasta.
*
* @param tapahtuma ostotapahtuma, jonka poistoa yritetään
* @return true, jos ostotapahtuma löytyi ja poistettiin, muuten false
*/
public boolean poistaOstotapahtuma(Ostotapahtuma tapahtuma) {
if (tapahtumat.contains(tapahtuma)) {
tapahtumat.remove(tapahtuma);
return true;
}
return false;
}
/**
* Palauttaa annetun asiakasnumeron mukaisen asiakkaan tai
* <code>null</code>, jos asiakasta ei löydy
*
* @param asiakasnumero halutun asiakkaan asiakasnumero
* @return pyydetyn asiakkaan tai null, jos asiakasta ei löydy
*/
public Asiakas annaAsiakas(String asiakasnumero) {
for (String avain : asiakkaat.keySet()) {
if (asiakkaat.get(avain).getAsiakasNumero().equals(asiakasnumero)) {
return asiakkaat.get(avain);
}
}
return null;
}
/**
* Palauttaa annetun nimen mukaisen tuotteen tai
* <code>null</code>, jos tuotetta ei löydy
*
* @param nimi halutun tuotteen nimi
* @return pyydetyn tuotteen tai null, jos tuotetta ei löydy
*/
public Tuote annaTuote(String nimi) {
for (String avain : tuotteet.keySet()) {
if (tuotteet.get(avain).getNimi().equals(nimi)) {
return tuotteet.get(avain);
}
}
return null;
}
/**
* Palauttaa annetun tunnisteen mukaisen myyjän tai
* <code>null</code>, jos myyjää ei löydy
*
* @param tunniste halutun myyjän tunniste
* @return pyydetyn myyjän tai null, jos myyjää ei löydy
*/
public Myyja annaMyyja(String tunniste) {
for (String avain : myyjat.keySet()) {
if (myyjat.get(avain).getTunniste().equals(tunniste)) {
return myyjat.get(avain);
}
}
return null;
}
/**
* Palauttaa annetun indeksin mukaisen ostotapahtuman listasta.
* Huomaa, että indeksointi alkaa nollasta, mutta tapahtumien listaamisessa
* indeksit on ilmoitettu alkaen ykkösestä.
*
* @param indeksi indeksi jonka kohdalta tapahtuma palautetaan
* @return annetun indeksin mukaisen ostotapahtuman
*/
public Ostotapahtuma annaTapahtuma(int indeksi) {
if (tapahtumat.size() > indeksi) {
return tapahtumat.get(indeksi);
}
return null;
}
/**
* Palauttaa kaikki asiakkaat yhtenä merkkijonona.
*
* @return asiakalistan merkkijonona
*/
public String listaaAsiakkaat() {
// Tekee otsikkorivin
// \t on tabulaattori, joka tasaa tulosteen
// sarakkeisiin; \n tekee rivinvaihdon
StringBuilder s = new StringBuilder("Asiakasnumero\tNimi\t\t\tOstoja\tKanta-asiakas\n");
for (String avain : asiakkaat.keySet()) {
s.append(asiakkaat.get(avain).getAsiakasNumero() + "\t\t\t");
s.append(asiakkaat.get(avain).getNimi() + "\t");
s.append(asiakkaat.get(avain).getOstojaTehty() + "\t\t");
if (asiakkaat.get(avain) instanceof KantaAsiakas) {
s.append("On\n");
} else {
s.append("Ei\n");
}
}
return s.toString();
}
/**
* Palauttaa kaikki myyjät yhtenä merkkijonona
*
* @return myyjät merkkijonona
*/
public String listaaMyyjat() {
// Tekee otsikkorivin
// \t on tabulaattori, joka tasaa tulosteen
// sarakkeisiin; \n tekee rivinvaihdon
StringBuilder s = new StringBuilder("Tunniste\tNimi\t\t\tProvisiot\n");
for (String avain : myyjat.keySet()) {
s.append(myyjat.get(avain).getTunniste() + "\t\t");
s.append(myyjat.get(avain).getNimi() + "\t\t");
s.append(myyjat.get(avain).getProvisiot() + "\n");
}
return s.toString();
}
/**
* Palautta kaikki tuotteet yhtenä merkkijonona.
*
* @return tuotteet merkkijonona
*/
public String listaaTuotteet() {
// Tekee otsikkorivin
// \t on tabulaattori, joka tasaa tulosteen
// sarakkeisiin; \n tekee rivinvaihdon
StringBuilder s = new StringBuilder("Nimi\tSaldo\t\t\tHinta\tVirtuaalinen\n");
for (String avain : tuotteet) {
s.append(tuotteet.get(avain).getNimi() + "\t");
s.append(tuotteet.get(avain).getSaldo() + "\t\t");
s.append(tuotteet.get(avain).getHinta() + "\t");
if (tuotteet.get(avain) instanceof VirtuaalinenTuote) {
s.append("Kyllä\n");
} else {
s.append("Ei\n");
}
}
return s.toString();
}
/**
* Palauttaa kaikki tapahtumat yhtenä merkkijonona.
*
* @return tapahtumat merkkijonona
*/
public String listaaTapahtumat() {
StringBuilder s = new StringBuilder("Numero\tTuote\tAsiakas\tMyyjä\tKpl\tHinta\n");
int n = 1;
for (Ostotapahtuma tapahtuma : tapahtumat) {
s.append(n++ + "\t");
s.append(tapahtuma.getTuote().getNimi() + "\t");
s.append(tapahtuma.getAsiakas().getNimi() + "\t");
s.append(tapahtuma.getMyyja().getNimi() + "\t");
s.append(tapahtuma.getMaara() + "\t");
s.append(tapahtuma.getHinta() + "\n");
}
return s.toString();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment