12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import java.util.HashMap;
-
- class Person {
- public String navn;
-
- public HashMap<String, DVD> arkiv = new HashMap<String, DVD>();
- public HashMap<String, DVD> laante = new HashMap<String, DVD>();
- public HashMap<String, DVD> utlaante = new HashMap<String, DVD>();
-
- Person(String navn) {
- this.navn = navn;
- }
-
- public void leggTilArkiv(DVD dvd) {
- arkiv.put(dvd.navn, dvd);
- }
-
- public void laanUt(DVD dvd, Person laaner) throws Exception {
- if (!arkiv.containsKey(dvd.navn)) {
- throw new Exception(this.navn+" har ikke DVDen "+dvd.navn+".");
- }
-
- arkiv.remove(dvd.navn);
- utlaante.put(dvd.navn, dvd);
- dvd.laaner = laaner;
- laaner.laante.put(dvd.navn, dvd);
- }
-
- public void returner(DVD dvd) throws Exception {
- if (!laante.containsKey(dvd.navn)) {
- throw new Exception(this.navn+" laaner ikke DVDen "+dvd.navn+".");
- }
- if (!dvd.eier.utlaante.containsKey(dvd.navn)) {
- throw new Exception(dvd.eier.navn+" laaner ikke ut DVDen "+dvd.navn+".");
- }
-
- laante.remove(dvd.navn);
- dvd.laaner = null;
- dvd.eier.utlaante.remove(dvd.navn);
- dvd.eier.leggTilArkiv(dvd);
- }
-
- public DVD finnDvd(String navn) {
- return arkiv.get(navn);
- }
-
- public String prettyPrintStats() {
- String res;
- res = "Person '"+navn+"'\n";
-
- res += " Antall DVDer i arkiv: "+arkiv.size()+"\n";
- res += " Antall DVDer laant: "+laante.size()+"\n";
- res += " Antall DVDer utlaant: "+utlaante.size();
-
- return res;
- }
-
- public String prettyPrint() {
- String res;
- res = "Person '"+navn+"'\n";
-
- if (arkiv.size() == 0) {
- res += " Eier ingen DVDer.\n";
- } else {
- res += " Eier:\n";
- for (DVD dvd: arkiv.values()) {
- res += " "+dvd.prettyPrint(false)+"\n";
- }
- }
-
- if (laante.size() == 0) {
- res += " Laaner ingen DVDer.\n";
- } else {
- res += " Laaner:\n";
- for (DVD dvd: laante.values()) {
- res += " "+dvd.prettyPrint(false)+"\n";
- }
- }
-
- if (utlaante.size() == 0) {
- res += " Laaner ikke ut noen DVDer.";
- } else {
- res += " Laaner ut:\n";
- for (DVD dvd: utlaante.values()) {
- res += " "+dvd.prettyPrint(true)+"\n";
- }
- }
-
- //Remove last newline
- res = res.substring(0, res.length() - 1);
-
- return res;
- }
- }
|