package rocks.inspectit.ui.rcp.editor.search.criteria;
import org.eclipse.core.runtime.Assert;
/**
* POJO that holds the information about a search.
*
* @author Ivan Senic
*
*/
public class SearchCriteria {
/**
* String to be search for.
*/
private String searchString = "";
/**
* Upper case of searched string.
*/
private String searchStringUpperCase = "";
/**
* If search is case sensitive.
*/
private boolean caseSensitive;
/**
* Default constructor.
*
* @param searchString
* String to search.
*/
public SearchCriteria(String searchString) {
this(searchString, false);
}
/**
* Secondary constructor.
*
* @param searchString
* String to search.
* @param caseSensitive
* Should search be case sensitive.
*/
public SearchCriteria(String searchString, boolean caseSensitive) {
Assert.isNotNull(searchString);
this.caseSensitive = caseSensitive;
this.searchString = searchString;
this.searchStringUpperCase = searchString.toUpperCase();
}
/**
* @return the searchString
*/
public String getSearchString() {
return searchString;
}
/**
* @param searchString
* the searchString to set
*/
public void setSearchString(String searchString) {
this.searchString = searchString;
if (null != searchString) {
searchStringUpperCase = searchString.toUpperCase();
} else {
searchStringUpperCase = null; // NOPMD
}
}
/**
* @return the searcgStringUpperCase
*/
public String getSearchStringUpperCase() {
return searchStringUpperCase;
}
/**
* @return the caseSensitive
*/
public boolean isCaseSensitive() {
return caseSensitive;
}
/**
* @param caseSensitive
* the caseSensitive to set
*/
public void setCaseSensitive(boolean caseSensitive) {
this.caseSensitive = caseSensitive;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = (prime * result) + (caseSensitive ? 1231 : 1237);
result = (prime * result) + ((searchString == null) ? 0 : searchString.hashCode());
result = (prime * result) + ((searchStringUpperCase == null) ? 0 : searchStringUpperCase.hashCode());
return result;
}
/**
* {@inheritDoc}
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
SearchCriteria other = (SearchCriteria) obj;
if (caseSensitive != other.caseSensitive) {
return false;
}
if (searchString == null) {
if (other.searchString != null) {
return false;
}
} else if (!searchString.equals(other.searchString)) {
return false;
}
if (searchStringUpperCase == null) {
if (other.searchStringUpperCase != null) {
return false;
}
} else if (!searchStringUpperCase.equals(other.searchStringUpperCase)) {
return false;
}
return true;
}
}