org.cqframework.cql.elm.execution.Equal Maven / Gradle / Ivy
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0
// See https://javaee.github.io/jaxb-v2/
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2020.09.30 at 08:06:11 PM UTC
//
package org.cqframework.cql.elm.execution;
import java.util.Collection;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.namespace.QName;
import org.jvnet.jaxb2_commons.lang.Equals2;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy2;
import org.jvnet.jaxb2_commons.lang.HashCode2;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy2;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.ToString2;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy2;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
/**
* The Equal operator returns true if the arguments are equal; false if the arguments are known unequal, and null otherwise. Equality semantics are defined to be value-based.
*
* For simple types, this means that equality returns true if and only if the result of each argument evaluates to the same value.
*
* For string values, equality is strictly lexical based on the Unicode values for the individual characters in the strings.
*
* For decimal values, trailing zeroes are ignored.
*
* For quantities, this means that the dimensions of each quantity must be the same, but not necessarily the unit. For example, units of 'cm' and 'm' are comparable, but units of 'cm2' and 'cm' are not. Attempting to operate on quantities with invalid units will result in a run-time error.
*
* For ratios, this means that the numerator and denominator must be the same, using quantity equality semantics.
*
* For tuple types, this means that equality returns true if and only if the tuples are of the same type, and the values for all elements that have values, by name, are equal.
*
* For list types, this means that equality returns true if and only if the lists contain elements of the same type, have the same number of elements, and for each element in the lists, in order, the elements are equal using equality semantics, with the exception that null elements are considered equal.
*
* For interval types, equality returns true if and only if the intervals are over the same point type, and they have the same value for the starting and ending points of the interval as determined by the Start and End operators.
*
* For Date, Time, and DateTime values, the comparison is performed by considering each precision in order, beginning with years (or hours for time values). If the values are the same, comparison proceeds to the next precision; if the values are different, the comparison stops and the result is false. If one input has a value for the precision and the other does not, the comparison stops and the result is null; if neither input has a value for the precision or the last precision has been reached, the comparison stops and the result is true. For the purposes of comparison, seconds and milliseconds are combined as a single precision using a decimal, with decimal equality semantics.
*
* If either argument is null, the result is null.
*
* Java class for Equal complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="Equal">
* <complexContent>
* <extension base="{urn:hl7-org:elm:r1}BinaryExpression">
* </extension>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Equal", namespace = "urn:hl7-org:elm:r1")
@SuppressWarnings({
"all"
})
public class Equal
extends BinaryExpression
implements Equals2, HashCode2, ToString2
{
@Override
public Equal withOperand(Expression... values) {
if (values!= null) {
for (Expression value: values) {
getOperand().add(value);
}
}
return this;
}
@Override
public Equal withOperand(Collection values) {
if (values!= null) {
getOperand().addAll(values);
}
return this;
}
@Override
public Equal withSignature(TypeSpecifier... values) {
if (values!= null) {
for (TypeSpecifier value: values) {
getSignature().add(value);
}
}
return this;
}
@Override
public Equal withSignature(Collection values) {
if (values!= null) {
getSignature().addAll(values);
}
return this;
}
@Override
public Equal withAnnotation(Object... values) {
if (values!= null) {
for (Object value: values) {
getAnnotation().add(value);
}
}
return this;
}
@Override
public Equal withAnnotation(Collection