import java.util.ArrayList;
class B?t {
private String navn;
private final int maksVekt;
private final double maksVolum;
private ArrayList lasteliste;
private boolean ferdigLastet = false;
B?t(String navn, int maksVekt, double maksVolum) {
this.navn = navn;
this.maksVekt = maksVekt;
this.maksVolum = maksVolum;
this.lasteliste = new ArrayList<>();
}
String hentNavn() {
return navn;
}
boolean leggTilLast(Lastbar last) {
if (
beregnVekt() + last.hentVekt() > maksVekt ||
beregnVolum() + last.hentVolum() > maksVolum
) {
return false;
} else {
lasteliste.add(last);
return true;
}
}
int beregnVekt() {
int vekt = 0;
for (Lastbar last : lasteliste) {
vekt += last.hentVekt();
}
return vekt;
}
int hentMaksVekt() {
return maksVekt;
}
double hentMaksVolum() {
return maksVolum;
}
double beregnVolum() {
double volum = 0.0;
for (Lastbar last : lasteliste) {
volum += last.hentVolum();
}
return volum;
}
boolean klar() {
return ferdigLastet;
}
void klarTilReise() {
ferdigLastet = true;
}
void skrivLasteManifest() {
System.out.println(navn + " er lastet med:");
for (Lastbar last : lasteliste) {
if (last instanceof Levende) {
System.out.printf(
"%-30s %5d kg %5.1f m3 (levende)%n",
last.hentBeskrivelse(),
last.hentVekt(),
last.hentVolum()
);
} else {
System.out.printf(
"%-30s %5d kg %5.1f m3%n",
last.hentBeskrivelse(),
last.hentVekt(),
last.hentVolum()
);
}
}
}
}