package com.nurkiewicz.jdbcrepository.repositories;
import org.springframework.data.domain.Persistable;
import static com.nurkiewicz.jdbcrepository.JdbcRepository.pk;
/**
* @author Tomasz Nurkiewicz
* @since 1/20/13, 10:04 AM
*/
public class BoardingPass implements Persistable<Object[]> {
private transient boolean persisted;
private String flightNo;
private int seqNo;
private String passenger;
private String seat;
public BoardingPass() {
}
public BoardingPass(String flightNo, int seqNo, String passenger, String seat) {
this.flightNo = flightNo;
this.seqNo = seqNo;
this.passenger = passenger;
this.seat = seat;
}
public String getFlightNo() {
return flightNo;
}
public void setFlightNo(String flightNo) {
this.flightNo = flightNo;
}
public int getSeqNo() {
return seqNo;
}
public void setSeqNo(int seqNo) {
this.seqNo = seqNo;
}
public String getPassenger() {
return passenger;
}
public void setPassenger(String passenger) {
this.passenger = passenger;
}
public String getSeat() {
return seat;
}
public void setSeat(String seat) {
this.seat = seat;
}
@Override
public Object[] getId() {
return pk(flightNo, seqNo);
}
@Override
public boolean isNew() {
return !persisted;
}
public BoardingPass withPersisted(boolean persisted) {
this.persisted = persisted;
return this;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof BoardingPass)) return false;
BoardingPass that = (BoardingPass) o;
if (seqNo != that.seqNo) return false;
if (flightNo != null ? !flightNo.equals(that.flightNo) : that.flightNo != null) return false;
if (passenger != null ? !passenger.equals(that.passenger) : that.passenger != null) return false;
return !(seat != null ? !seat.equals(that.seat) : that.seat != null);
}
@Override
public int hashCode() {
int result = flightNo != null ? flightNo.hashCode() : 0;
result = 31 * result + seqNo;
result = 31 * result + (passenger != null ? passenger.hashCode() : 0);
result = 31 * result + (seat != null ? seat.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "BoardingPass{flightNo='" + flightNo + '\'' + ", seqNo=" + seqNo + ", passenger='" + passenger + '\'' + ", seat='" + seat + '\'' + '}';
}
}