org.cqframework.cql.elm.execution.Property 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.03.24 at 04:05:23 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.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.namespace.QName;
import org.jvnet.jaxb2_commons.lang.Equals;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
import org.jvnet.jaxb2_commons.lang.HashCode;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
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.ToString;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
/**
* The Property operator returns the value of the property on source specified by the path attribute.
*
* If the result of evaluating source is null, the result is null.
*
* The path attribute may include qualifiers (.) and indexers ([x]). Indexers must be literal integer values.
*
* If the path attribute contains qualifiers or indexers, each qualifier or indexer is traversed to obtain the actual value. If the object of the property access at any point in traversing the path is null, the result is null.
*
* If a scope is specified, the name is used to resolve the scope in which the path will be resolved. Scopes can be named by operators such as Filter and ForEach.
*
* Property expressions can also be used to access the individual points and closed indicators for interval types using the property names low, high, lowClosed, and highClosed.
*
* Java class for Property complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="Property">
* <complexContent>
* <extension base="{urn:hl7-org:elm:r1}Expression">
* <sequence>
* <element name="source" type="{urn:hl7-org:elm:r1}Expression" minOccurs="0"/>
* </sequence>
* <attribute name="path" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="scope" type="{http://www.w3.org/2001/XMLSchema}string" />
* </extension>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Property", namespace = "urn:hl7-org:elm:r1", propOrder = {
"source"
})
public class Property
extends Expression
implements Equals, HashCode, ToString
{
@XmlElement(namespace = "urn:hl7-org:elm:r1")
protected Expression source;
@XmlAttribute(name = "path", required = true)
protected String path;
@XmlAttribute(name = "scope")
protected String scope;
/**
* Gets the value of the source property.
*
* @return
* possible object is
* {@link Expression }
*
*/
public Expression getSource() {
return source;
}
/**
* Sets the value of the source property.
*
* @param value
* allowed object is
* {@link Expression }
*
*/
public void setSource(Expression value) {
this.source = value;
}
/**
* Gets the value of the path property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getPath() {
return path;
}
/**
* Sets the value of the path property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setPath(String value) {
this.path = value;
}
/**
* Gets the value of the scope property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getScope() {
return scope;
}
/**
* Sets the value of the scope property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setScope(String value) {
this.scope = value;
}
public Property withSource(Expression value) {
setSource(value);
return this;
}
public Property withPath(String value) {
setPath(value);
return this;
}
public Property withScope(String value) {
setScope(value);
return this;
}
@Override
public Property withAnnotation(Object... values) {
if (values!= null) {
for (Object value: values) {
getAnnotation().add(value);
}
}
return this;
}
@Override
public Property withAnnotation(Collection