@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((hinflug == null) ? 0 : hinflug.hashCode()); result = prime * result + ((rueckflug == null) ? 0 : rueckflug.hashCode()); return result; }
public ToFroFlug(DirektFlug hinflug, DirektFlug rueckflug) { if (Duration.between(hinflug.getEnde(), rueckflug.getBeginn()).getSeconds() >= 2 * 60 * 60) { this.hinflug = hinflug; this.rueckflug = rueckflug; } else { throw new IllegalArgumentException(); } }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ToFroFlug other = (ToFroFlug) obj; if (hinflug == null) { if (other.hinflug != null) return false; } else if (!hinflug.equals(other.hinflug)) return false; if (rueckflug == null) { if (other.rueckflug != null) return false; } else if (!rueckflug.equals(other.rueckflug)) return false; return true; }
@Override public Ort getStartOrt() { return hinflug.getStartOrt(); }
@Override public Ort getEndOrt() { return rueckflug.getEndOrt(); }
@Override public GeldBetrag getPreis() { return hinflug.getPreis().add(rueckflug.getPreis()); }
@Override public LocalDateTime getEnde() { return rueckflug.getEnde(); }
@Override public LocalDateTime getBeginn() { return hinflug.getBeginn(); }
@Override public Flug delayDays(int numDays) { return new ToFroFlug( hinflug.getAirline(), hinflug.delayDays(numDays), rueckflug.delayDays(numDays)); }