java.lang.Object
ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria
All Implemented Interfaces:
Serializable

@JsonObject("SearchCriteria") public class SearchCriteria extends Object implements Serializable
A (mutable) object representing the specification of a search. A search is specified by MatchClause objects and an operator for combining match clauses. Additionally sub criteria can be added for entities connected with the main entity object.

A MatchClause is made up of a property or attribute to compare against and a desired value for that property or attribute.

Example:

Match all of the following clauses:
  • Attribute('TYPE') = [desired value]
  • Property('PROPERTY_CODE') = [desired value]

Looks like this:

SearchCriteria sc = new SearchCriteria();
sc.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE, "A_TYPE_CODE"));
sc.addMatchClause(MatchClause.createPropertyMatch("PROPERTY_CODE", "a property value"));

Extension of the previous example with with experiment criteria:

SearchCriteria ec = new SearchCriteria();
ec.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, "EXP_CODE"));
sc.addSubCriteria(SearchSubCriteria.createExperimentCriteria(ec));

For other sub criteria types see SearchSubCriteria.

See Also: