org.cqframework.cql.elm.execution.ExpressionDef 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.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
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;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
/**
* The ExpressionDef type defines an expression and an associated name that can be referenced by any expression in the artifact. The name must be unique within the artifact.
* The context attribute specifies the context of the execution and is used by the environment to determine whether or not to filter the data returned from retrieves based on the current context.
*
* Java class for ExpressionDef complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="ExpressionDef">
* <complexContent>
* <extension base="{urn:hl7-org:elm:r1}Element">
* <sequence>
* <element name="expression" type="{urn:hl7-org:elm:r1}Expression" minOccurs="0"/>
* </sequence>
* <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="context" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="accessLevel" type="{urn:hl7-org:elm:r1}AccessModifier" default="Public" />
* </extension>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ExpressionDef", namespace = "urn:hl7-org:elm:r1", propOrder = {
"expression"
})
@XmlSeeAlso({
FunctionDef.class
})
@SuppressWarnings({
"all"
})
public class ExpressionDef
extends Element
implements Equals2, HashCode2, ToString2
{
@XmlElement(namespace = "urn:hl7-org:elm:r1")
protected Expression expression;
@XmlAttribute(name = "name")
protected String name;
@XmlAttribute(name = "context")
protected String context;
@XmlAttribute(name = "accessLevel")
protected AccessModifier accessLevel;
/**
* Gets the value of the expression property.
*
* @return
* possible object is
* {@link Expression }
*
*/
public Expression getExpression() {
return expression;
}
/**
* Sets the value of the expression property.
*
* @param value
* allowed object is
* {@link Expression }
*
*/
public void setExpression(Expression value) {
this.expression = value;
}
/**
* Gets the value of the name property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getName() {
return name;
}
/**
* Sets the value of the name property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setName(String value) {
this.name = value;
}
/**
* Gets the value of the context property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getContext() {
return context;
}
/**
* Sets the value of the context property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setContext(String value) {
this.context = value;
}
/**
* Gets the value of the accessLevel property.
*
* @return
* possible object is
* {@link AccessModifier }
*
*/
public AccessModifier getAccessLevel() {
if (accessLevel == null) {
return AccessModifier.PUBLIC;
} else {
return accessLevel;
}
}
/**
* Sets the value of the accessLevel property.
*
* @param value
* allowed object is
* {@link AccessModifier }
*
*/
public void setAccessLevel(AccessModifier value) {
this.accessLevel = value;
}
public ExpressionDef withExpression(Expression value) {
setExpression(value);
return this;
}
public ExpressionDef withName(String value) {
setName(value);
return this;
}
public ExpressionDef withContext(String value) {
setContext(value);
return this;
}
public ExpressionDef withAccessLevel(AccessModifier value) {
setAccessLevel(value);
return this;
}
@Override
public ExpressionDef withAnnotation(Object... values) {
if (values!= null) {
for (Object value: values) {
getAnnotation().add(value);
}
}
return this;
}
@Override
public ExpressionDef withAnnotation(Collection