SearchForm.java
package org.xandercat.pmdb.form.imdb;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import org.springframework.validation.annotation.Validated;
/**
* Form for IMDB searches. Hash code for this form hashes on user criteria excluding page number.
* By excluding page number, search hashes can be compared to determine if search criteria
* has changed.
*
* Only the title, year, and page are meant to be manipulated by the user. linkMovieId,
* linkImdbId, and linkAll flag are for use internally for link processing.
*
* @author Scott Arnold
*/
@Validated
public class SearchForm {
@NotBlank
private String title;
private String year;
@Range(min=1)
private int page = 1;
private String linkMovieId;
private String linkImdbId;
private boolean linkAll;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getLinkMovieId() {
return linkMovieId;
}
public void setLinkMovieId(String linkMovieId) {
this.linkMovieId = linkMovieId;
}
public String getLinkImdbId() {
return linkImdbId;
}
public void setLinkImdbId(String linkImdbId) {
this.linkImdbId = linkImdbId;
}
public boolean isLinkAll() {
return linkAll;
}
public void setLinkAll(boolean linkAll) {
this.linkAll = linkAll;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((title == null) ? 0 : title.hashCode());
result = prime * result + ((year == null) ? 0 : year.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SearchForm other = (SearchForm) obj;
if (title == null) {
if (other.title != null)
return false;
} else if (!title.equals(other.title))
return false;
if (year == null) {
if (other.year != null)
return false;
} else if (!year.equals(other.year))
return false;
return true;
}
}