package com.tap5.hotelbooking.data;
import java.io.Serializable;
/**
* This class has been extracted from JBoss seam example applications
*/
public class SearchCriteria implements Serializable
{
private static final long serialVersionUID = 6022601867962992033L;
private static final char SQL_WILDCARD_CHAR = '%';
private static final String SQL_WILDCARD_STR = String.valueOf(SQL_WILDCARD_CHAR);
private static final String REPEAT_SQL_WIDCARD_REGEX = SQL_WILDCARD_STR + "+";
private static final char HUMAN_WILDCARD_CHAR = '*';
private String query = null;
private int rowsPerPage = 10;
public String getSearchPattern()
{
if (query == null || query.trim().length() == 0) { return null; }
StringBuilder pattern = new StringBuilder();
pattern.append(query.toLowerCase().replace(HUMAN_WILDCARD_CHAR, SQL_WILDCARD_CHAR)
.replaceAll(REPEAT_SQL_WIDCARD_REGEX, SQL_WILDCARD_STR));
if (pattern.length() == 0 || pattern.charAt(0) != SQL_WILDCARD_CHAR)
{
pattern.insert(0, SQL_WILDCARD_CHAR);
}
if (pattern.length() > 1 && pattern.charAt(pattern.length() - 1) != SQL_WILDCARD_CHAR)
{
pattern.append(SQL_WILDCARD_CHAR);
}
return pattern.toString();
}
public String getQuery()
{
return query;
}
public void setQuery(String query)
{
this.query = (query != null ? query.trim() : null);
}
public int getRowsPerPage()
{
return rowsPerPage;
}
public void setRowsPerPage(int rowsPerPage)
{
this.rowsPerPage = rowsPerPage;
}
}