All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.jcr.query.qom.Comparison Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*
 * Copyright 2009 Day Management AG, Switzerland. All rights reserved.
 */
package javax.jcr.query.qom;

/**
 * Filters node-tuples based on the outcome of a binary operation.
 * 

* For any comparison, {@link #getOperand2 operand2} always evaluates to a * scalar value. In contrast, {@link #getOperand1 operand1} may evaluate to an * array of values (for example, the value of a multi-valued property), in which * case the comparison is separately performed for each element of the array, * and the Comparison constraint is satisfied as a whole if the * comparison against any element of the array is satisfied. *

* If {@link #getOperand1 operand1} and {@link #getOperand2 operand2} evaluate * to values of different property types, the value of {@link #getOperand2 * operand2} is converted to the property type of the value of {@link * #getOperand1 operand1}. If the type conversion fails, the query is invalid. *

* If {@link #getOperator operator} is not supported for the property type of * {@link #getOperand1 operand1}, the query is invalid. *

* If {@link #getOperand1 operand1} evaluates to null (for example, if the * operand evaluates the value of a property which does not exist), the * constraint is not satisfied. *

* The JCR_OPERATOR_EQUAL_TO operator is satisfied only if * the value of {@link #getOperand1 operand1} equals the value of {@link * #getOperand2 operand2}. *

* The JCR_OPERATOR_NOT_EQUAL_TO operator is satisfied * unless the value of {@link #getOperand1 operand1} equals the value of * {@link #getOperand2 operand2}. *

* The JCR_OPERATOR_LESSS_THAN operator is satisfied only if * the value of {@link #getOperand1 operand1} is ordered before the value * of {@link #getOperand2 operand2}. *

* The JCR_OPERATOR_LESS_THAN_OR_EQUAL_TO operator is satisfied * unless the value of {@link #getOperand1 operand1} is ordered * after the value of {@link #getOperand2 operand2}. *

* The JCR_OPERATOR_GREATER_THAN operator is satisfied only * if the value of {@link #getOperand1 operand1} is ordered after the * value of {@link #getOperand2 operand2}. *

* The JCR_OPERATOR_GREATER_THAN_OR_EQUAL_TO operator is satisfied * unless the value of {@link #getOperand1 operand1} is ordered * before the value of {@link #getOperand2 operand2}. *

* The JCR_OPERATOR_LIKE operator is satisfied only if the value of * {@link #getOperand1 operand1} matches the pattern specified by the * value of {@link #getOperand2 operand2}, where in the pattern:

  • the * character "%" matches zero or more characters, and
  • the * character "_" (underscore) matches exactly one character, * and
  • the string "\x" matches the character * "x", and
  • all other characters match * themselves.
* * @since JCR 2.0 */ public interface Comparison extends Constraint { /** * Gets the first operand. * * @return the operand; non-null */ public DynamicOperand getOperand1(); /** * Gets the operator. * * @return either
  • {@link QueryObjectModelConstants#JCR_OPERATOR_EQUAL_TO},
  • *
  • {@link QueryObjectModelConstants#JCR_OPERATOR_NOT_EQUAL_TO},
  • *
  • {@link QueryObjectModelConstants#JCR_OPERATOR_LESS_THAN},
  • *
  • {@link QueryObjectModelConstants#JCR_OPERATOR_LESS_THAN_OR_EQUAL_TO},
  • *
  • {@link QueryObjectModelConstants#JCR_OPERATOR_GREATER_THAN},
  • *
  • {@link QueryObjectModelConstants#JCR_OPERATOR_GREATER_THAN_OR_EQUAL_TO}, * or
  • {@link QueryObjectModelConstants#JCR_OPERATOR_LIKE}
  • *
*/ public String getOperator(); /** * Gets the second operand. * * @return the operand; non-null */ public StaticOperand getOperand2(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy