org.hl7.elm.r1.ParameterDef Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elm Show documentation
Show all versions of elm Show documentation
The elm library for the Clinical Quality Language Java reference implementation
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.4.0-b180830.0438
// See https://javaee.github.io/jaxb-v2/
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2023.03.28 at 04:17:15 PM MDT
//
package org.hl7.elm.r1;
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.hl7.cql_annotations.r1.CqlToElmBase;
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 ParameterDef type defines a parameter that can be referenced by name anywhere within an expression.
*
* Parameters are defined at the artifact level, and may be provided as part of the payload for an evaluation request.
*
* If no parameter value is provided, the default element is used to provide the value for the parameter.
*
* If no parameter or default is provided, the parameter is defined to be null.
*
* Note that the expression specified in the default element must be able to be evaluated at compile-time (i.e. without reference to any run-time capabilities such as data, terminology, and library references, both local and included).
*
* Java class for ParameterDef complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="ParameterDef">
* <complexContent>
* <extension base="{urn:hl7-org:elm:r1}Element">
* <sequence>
* <element name="default" type="{urn:hl7-org:elm:r1}Expression" minOccurs="0"/>
* <element name="parameterTypeSpecifier" type="{urn:hl7-org:elm:r1}TypeSpecifier" minOccurs="0"/>
* </sequence>
* <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="parameterType" type="{http://www.w3.org/2001/XMLSchema}QName" />
* <attribute name="accessLevel" type="{urn:hl7-org:elm:r1}AccessModifier" default="Public" />
* </extension>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ParameterDef", namespace = "urn:hl7-org:elm:r1", propOrder = {
"_default",
"parameterTypeSpecifier"
})
public class ParameterDef
extends Element
implements Equals2, HashCode2, ToString2
{
@XmlElement(name = "default", namespace = "urn:hl7-org:elm:r1")
protected Expression _default;
@XmlElement(namespace = "urn:hl7-org:elm:r1")
protected TypeSpecifier parameterTypeSpecifier;
@XmlAttribute(name = "name")
protected String name;
@XmlAttribute(name = "parameterType")
protected QName parameterType;
@XmlAttribute(name = "accessLevel")
protected AccessModifier accessLevel;
/**
* Gets the value of the default property.
*
* @return
* possible object is
* {@link Expression }
*
*/
public Expression getDefault() {
return _default;
}
/**
* Sets the value of the default property.
*
* @param value
* allowed object is
* {@link Expression }
*
*/
public void setDefault(Expression value) {
this._default = value;
}
/**
* Gets the value of the parameterTypeSpecifier property.
*
* @return
* possible object is
* {@link TypeSpecifier }
*
*/
public TypeSpecifier getParameterTypeSpecifier() {
return parameterTypeSpecifier;
}
/**
* Sets the value of the parameterTypeSpecifier property.
*
* @param value
* allowed object is
* {@link TypeSpecifier }
*
*/
public void setParameterTypeSpecifier(TypeSpecifier value) {
this.parameterTypeSpecifier = 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 parameterType property.
*
* @return
* possible object is
* {@link QName }
*
*/
public QName getParameterType() {
return parameterType;
}
/**
* Sets the value of the parameterType property.
*
* @param value
* allowed object is
* {@link QName }
*
*/
public void setParameterType(QName value) {
this.parameterType = 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 ParameterDef withDefault(Expression value) {
setDefault(value);
return this;
}
public ParameterDef withParameterTypeSpecifier(TypeSpecifier value) {
setParameterTypeSpecifier(value);
return this;
}
public ParameterDef withName(String value) {
setName(value);
return this;
}
public ParameterDef withParameterType(QName value) {
setParameterType(value);
return this;
}
public ParameterDef withAccessLevel(AccessModifier value) {
setAccessLevel(value);
return this;
}
@Override
public ParameterDef withAnnotation(CqlToElmBase... values) {
if (values!= null) {
for (CqlToElmBase value: values) {
getAnnotation().add(value);
}
}
return this;
}
@Override
public ParameterDef withAnnotation(Collection values) {
if (values!= null) {
getAnnotation().addAll(values);
}
return this;
}
@Override
public ParameterDef withResultTypeSpecifier(TypeSpecifier value) {
setResultTypeSpecifier(value);
return this;
}
@Override
public ParameterDef withLocalId(String value) {
setLocalId(value);
return this;
}
@Override
public ParameterDef withLocator(String value) {
setLocator(value);
return this;
}
@Override
public ParameterDef withResultTypeName(QName value) {
setResultTypeName(value);
return this;
}
@Override
public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy2 strategy) {
if ((object == null)||(this.getClass()!= object.getClass())) {
return false;
}
if (this == object) {
return true;
}
if (!super.equals(thisLocator, thatLocator, object, strategy)) {
return false;
}
final ParameterDef that = ((ParameterDef) object);
{
Expression lhsDefault;
lhsDefault = this.getDefault();
Expression rhsDefault;
rhsDefault = that.getDefault();
if (!strategy.equals(LocatorUtils.property(thisLocator, "_default", lhsDefault), LocatorUtils.property(thatLocator, "_default", rhsDefault), lhsDefault, rhsDefault, (this._default!= null), (that._default!= null))) {
return false;
}
}
{
TypeSpecifier lhsParameterTypeSpecifier;
lhsParameterTypeSpecifier = this.getParameterTypeSpecifier();
TypeSpecifier rhsParameterTypeSpecifier;
rhsParameterTypeSpecifier = that.getParameterTypeSpecifier();
if (!strategy.equals(LocatorUtils.property(thisLocator, "parameterTypeSpecifier", lhsParameterTypeSpecifier), LocatorUtils.property(thatLocator, "parameterTypeSpecifier", rhsParameterTypeSpecifier), lhsParameterTypeSpecifier, rhsParameterTypeSpecifier, (this.parameterTypeSpecifier!= null), (that.parameterTypeSpecifier!= null))) {
return false;
}
}
{
String lhsName;
lhsName = this.getName();
String rhsName;
rhsName = that.getName();
if (!strategy.equals(LocatorUtils.property(thisLocator, "name", lhsName), LocatorUtils.property(thatLocator, "name", rhsName), lhsName, rhsName, (this.name!= null), (that.name!= null))) {
return false;
}
}
{
QName lhsParameterType;
lhsParameterType = this.getParameterType();
QName rhsParameterType;
rhsParameterType = that.getParameterType();
if (!strategy.equals(LocatorUtils.property(thisLocator, "parameterType", lhsParameterType), LocatorUtils.property(thatLocator, "parameterType", rhsParameterType), lhsParameterType, rhsParameterType, (this.parameterType!= null), (that.parameterType!= null))) {
return false;
}
}
{
AccessModifier lhsAccessLevel;
lhsAccessLevel = this.getAccessLevel();
AccessModifier rhsAccessLevel;
rhsAccessLevel = that.getAccessLevel();
if (!strategy.equals(LocatorUtils.property(thisLocator, "accessLevel", lhsAccessLevel), LocatorUtils.property(thatLocator, "accessLevel", rhsAccessLevel), lhsAccessLevel, rhsAccessLevel, (this.accessLevel!= null), (that.accessLevel!= null))) {
return false;
}
}
return true;
}
@Override
public boolean equals(Object object) {
final EqualsStrategy2 strategy = JAXBEqualsStrategy.getInstance();
return equals(null, null, object, strategy);
}
@Override
public int hashCode(ObjectLocator locator, HashCodeStrategy2 strategy) {
int currentHashCode = super.hashCode(locator, strategy);
{
Expression theDefault;
theDefault = this.getDefault();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "_default", theDefault), currentHashCode, theDefault, (this._default!= null));
}
{
TypeSpecifier theParameterTypeSpecifier;
theParameterTypeSpecifier = this.getParameterTypeSpecifier();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "parameterTypeSpecifier", theParameterTypeSpecifier), currentHashCode, theParameterTypeSpecifier, (this.parameterTypeSpecifier!= null));
}
{
String theName;
theName = this.getName();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "name", theName), currentHashCode, theName, (this.name!= null));
}
{
QName theParameterType;
theParameterType = this.getParameterType();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "parameterType", theParameterType), currentHashCode, theParameterType, (this.parameterType!= null));
}
{
AccessModifier theAccessLevel;
theAccessLevel = this.getAccessLevel();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "accessLevel", theAccessLevel), currentHashCode, theAccessLevel, (this.accessLevel!= null));
}
return currentHashCode;
}
@Override
public int hashCode() {
final HashCodeStrategy2 strategy = JAXBHashCodeStrategy.getInstance();
return this.hashCode(null, strategy);
}
@Override
public String toString() {
final ToStringStrategy2 strategy = JAXBToStringStrategy.getInstance();
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
@Override
public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
@Override
public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
super.appendFields(locator, buffer, strategy);
{
Expression theDefault;
theDefault = this.getDefault();
strategy.appendField(locator, this, "_default", buffer, theDefault, (this._default!= null));
}
{
TypeSpecifier theParameterTypeSpecifier;
theParameterTypeSpecifier = this.getParameterTypeSpecifier();
strategy.appendField(locator, this, "parameterTypeSpecifier", buffer, theParameterTypeSpecifier, (this.parameterTypeSpecifier!= null));
}
{
String theName;
theName = this.getName();
strategy.appendField(locator, this, "name", buffer, theName, (this.name!= null));
}
{
QName theParameterType;
theParameterType = this.getParameterType();
strategy.appendField(locator, this, "parameterType", buffer, theParameterType, (this.parameterType!= null));
}
{
AccessModifier theAccessLevel;
theAccessLevel = this.getAccessLevel();
strategy.appendField(locator, this, "accessLevel", buffer, theAccessLevel, (this.accessLevel!= null));
}
return buffer;
}
}