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

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 values) { if (values!= null) { getAnnotation().addAll(values); } return this; } @Override public Property withResultTypeSpecifier(TypeSpecifier value) { setResultTypeSpecifier(value); return this; } @Override public Property withLocalId(String value) { setLocalId(value); return this; } @Override public Property withLocator(String value) { setLocator(value); return this; } @Override public Property withResultTypeName(QName value) { setResultTypeName(value); return this; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof Property)) { return false; } if (this == object) { return true; } if (!super.equals(thisLocator, thatLocator, object, strategy)) { return false; } final Property that = ((Property) object); { Expression lhsSource; lhsSource = this.getSource(); Expression rhsSource; rhsSource = that.getSource(); if (!strategy.equals(LocatorUtils.property(thisLocator, "source", lhsSource), LocatorUtils.property(thatLocator, "source", rhsSource), lhsSource, rhsSource)) { return false; } } { String lhsPath; lhsPath = this.getPath(); String rhsPath; rhsPath = that.getPath(); if (!strategy.equals(LocatorUtils.property(thisLocator, "path", lhsPath), LocatorUtils.property(thatLocator, "path", rhsPath), lhsPath, rhsPath)) { return false; } } { String lhsScope; lhsScope = this.getScope(); String rhsScope; rhsScope = that.getScope(); if (!strategy.equals(LocatorUtils.property(thisLocator, "scope", lhsScope), LocatorUtils.property(thatLocator, "scope", rhsScope), lhsScope, rhsScope)) { return false; } } return true; } public boolean equals(Object object) { final EqualsStrategy strategy = JAXBEqualsStrategy.INSTANCE; return equals(null, null, object, strategy); } public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) { int currentHashCode = super.hashCode(locator, strategy); { Expression theSource; theSource = this.getSource(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "source", theSource), currentHashCode, theSource); } { String thePath; thePath = this.getPath(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "path", thePath), currentHashCode, thePath); } { String theScope; theScope = this.getScope(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "scope", theScope), currentHashCode, theScope); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public String toString() { final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE; final StringBuilder buffer = new StringBuilder(); append(null, buffer, strategy); return buffer.toString(); } public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) { strategy.appendStart(locator, this, buffer); appendFields(locator, buffer, strategy); strategy.appendEnd(locator, this, buffer); return buffer; } public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) { super.appendFields(locator, buffer, strategy); { Expression theSource; theSource = this.getSource(); strategy.appendField(locator, this, "source", buffer, theSource); } { String thePath; thePath = this.getPath(); strategy.appendField(locator, this, "path", buffer, thePath); } { String theScope; theScope = this.getScope(); strategy.appendField(locator, this, "scope", buffer, theScope); } return buffer; } }