org.oxerr.viagogo.model.Seating Maven / Gradle / Ivy
package org.oxerr.viagogo.model;
import java.io.Serializable;
import org.apache.commons.lang3.builder.CompareToBuilder;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.math.NumberUtils;
/**
* Represents the seating information for a ticket(s) in a Venue.
*
* Seating
*/
public class Seating implements Comparable, Serializable {
private static final long serialVersionUID = 2023021301L;
/**
* The section of the ticket(s).
*/
private String section;
/**
* The row of the ticket(s).
*/
private String row;
/**
* The first in a contiguous block of seats to which the tickets have been allocated.
*/
private String seatFrom;
/**
* The last in a contiguous block of seats to which the tickets have been allocated.
*/
private String seatTo;
public Seating() {
}
public Seating(String section, String row, String seatFrom, String seatTo) {
this.section = section;
this.row = row;
this.seatFrom = seatFrom;
this.seatTo = seatTo;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
public String getRow() {
return row;
}
public void setRow(String row) {
this.row = row;
}
public String getSeatFrom() {
return seatFrom;
}
public void setSeatFrom(String seatFrom) {
this.seatFrom = seatFrom;
}
public String getSeatTo() {
return seatTo;
}
public void setSeatTo(String seatTo) {
this.seatTo = seatTo;
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
Seating rhs = (Seating) obj;
return EqualsBuilder.reflectionEquals(this, rhs);
}
@Override
public String toString() {
return String.format("%s | Row %s | Seat %s-%s",
this.section.trim(),
this.row.trim(),
this.seatFrom.trim(),
this.seatTo.trim()
);
}
@Override
public int compareTo(Seating o) {
return new CompareToBuilder()
.append(this.section, o.section)
.append(this.row, o.row)
.append(NumberUtils.toInt(this.seatFrom), NumberUtils.toInt(o.seatFrom))
.append(NumberUtils.toInt(this.seatTo), NumberUtils.toInt(o.seatTo))
.toComparison();
}
}