code: public BooleanOperation WHERE(IPredicateOperand1 value) {
  		IPredicateOperand1 pVal = value;
  		if (value instanceof DomainObjectMatch<?>) {
  			DomainObjectMatch<?> delegate = APIAccess.getDelegate((DomainObjectMatch<?>) value);
  			if (delegate != null) // generic model
  				pVal = delegate;
  		}
  		PredicateExpression pe = new PredicateExpression(pVal, this.astObjectsContainer);
  		this.astObjectsContainer.addAstObject(pe);
  		BooleanOperation ret = APIAccess.createBooleanOperation(pe);
  		QueryRecorder.recordInvocation(this, "WHERE", ret, QueryRecorder.placeHolder(pVal));
  		return ret;
  	}
docs: Start formulating a predicate expression.
  A predicate expression yields a boolean value.
  <br/>Takes an expression like 'person.stringAttribute("name")', yielding an attribute,
  <br/>e.g. WHERE(person.stringAttribute("name")).EQUALS(...)
  @param value the value(expression) to formulate the predicate expression upon.
  @return