![JAR search and dependency download from the Maven repository](/logo.png)
org.dmg.pmml.DerivedField Maven / Gradle / Ivy
package org.dmg.pmml;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElements;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.dmg.pmml.adapters.FieldNameAdapter;
import org.jpmml.model.MissingAttributeException;
import org.jpmml.model.MissingElementException;
import org.jpmml.model.annotations.Removed;
import org.jpmml.model.annotations.Required;
import org.jpmml.model.annotations.ValueConstructor;
@XmlRootElement(name = "DerivedField", namespace = "http://www.dmg.org/PMML-4_4")
@XmlType(name = "", propOrder = {
"extensions",
"expression",
"intervals",
"values"
})
@JsonRootName("DerivedField")
@JsonPropertyOrder({
"name",
"displayName",
"opType",
"dataType",
"extensions",
"expression",
"intervals",
"values"
})
public class DerivedField
extends Field
implements HasContinuousDomain , HasDiscreteDomain , HasExpression , HasExtensions
{
@XmlAttribute(name = "name")
@XmlJavaTypeAdapter(FieldNameAdapter.class)
@JsonProperty("name")
private String name;
@XmlAttribute(name = "displayName")
@JsonProperty("displayName")
private String displayName;
@XmlAttribute(name = "optype", required = true)
@Required((org.dmg.pmml.Version.PMML_3_1))
@JsonProperty("optype")
private OpType opType;
@XmlAttribute(name = "dataType", required = true)
@JsonProperty("dataType")
private DataType dataType;
@XmlElement(name = "Extension", namespace = "http://www.dmg.org/PMML-4_4")
@JsonProperty("Extension")
private List extensions;
@XmlElements({
@XmlElement(name = "Constant", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.Constant.class),
@XmlElement(name = "FieldRef", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.FieldRef.class),
@XmlElement(name = "NormContinuous", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.NormContinuous.class),
@XmlElement(name = "NormDiscrete", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.NormDiscrete.class),
@XmlElement(name = "Discretize", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.Discretize.class),
@XmlElement(name = "MapValues", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.MapValues.class),
@XmlElement(name = "TextIndex", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.TextIndex.class),
@XmlElement(name = "Apply", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.Apply.class),
@XmlElement(name = "Aggregate", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.Aggregate.class),
@XmlElement(name = "Lag", namespace = "http://www.dmg.org/PMML-4_4", type = org.dmg.pmml.Lag.class)
})
@JsonProperty("Expression")
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@JsonSubTypes({
@JsonSubTypes.Type(name = "Constant", value = org.dmg.pmml.Constant.class),
@JsonSubTypes.Type(name = "FieldRef", value = org.dmg.pmml.FieldRef.class),
@JsonSubTypes.Type(name = "NormContinuous", value = org.dmg.pmml.NormContinuous.class),
@JsonSubTypes.Type(name = "NormDiscrete", value = org.dmg.pmml.NormDiscrete.class),
@JsonSubTypes.Type(name = "Discretize", value = org.dmg.pmml.Discretize.class),
@JsonSubTypes.Type(name = "MapValues", value = org.dmg.pmml.MapValues.class),
@JsonSubTypes.Type(name = "TextIndex", value = org.dmg.pmml.TextIndex.class),
@JsonSubTypes.Type(name = "Apply", value = org.dmg.pmml.Apply.class),
@JsonSubTypes.Type(name = "Aggregate", value = org.dmg.pmml.Aggregate.class),
@JsonSubTypes.Type(name = "Lag", value = org.dmg.pmml.Lag.class)
})
private Expression expression;
@XmlElement(name = "Interval", namespace = "http://www.dmg.org/PMML-4_4")
@Removed((org.dmg.pmml.Version.PMML_3_1))
@JsonProperty("Interval")
private List intervals;
@XmlElement(name = "Value", namespace = "http://www.dmg.org/PMML-4_4")
@JsonProperty("Value")
private List values;
private final static long serialVersionUID = 67371270L;
public DerivedField() {
}
@ValueConstructor
public DerivedField(
@org.jpmml.model.annotations.Property("name")
String name,
@org.jpmml.model.annotations.Property("opType")
OpType opType,
@org.jpmml.model.annotations.Property("dataType")
DataType dataType,
@org.jpmml.model.annotations.Property("expression")
Expression expression) {
this.name = name;
this.opType = opType;
this.dataType = dataType;
this.expression = expression;
}
@Override
public String requireName() {
if (this.name == null) {
throw new MissingAttributeException(this, PMMLAttributes.DERIVEDFIELD_NAME);
}
return this.name;
}
@Override
public String getName() {
return name;
}
@Override
public DerivedField setName(
@org.jpmml.model.annotations.Property("name")
String name) {
this.name = name;
return this;
}
@Override
public String getDisplayName() {
return displayName;
}
@Override
public DerivedField setDisplayName(
@org.jpmml.model.annotations.Property("displayName")
String displayName) {
this.displayName = displayName;
return this;
}
@Override
public OpType requireOpType() {
if (this.opType == null) {
throw new MissingAttributeException(this, PMMLAttributes.DERIVEDFIELD_OPTYPE);
}
return this.opType;
}
@Override
public OpType getOpType() {
return opType;
}
@Override
public DerivedField setOpType(
@org.jpmml.model.annotations.Property("opType")
OpType opType) {
this.opType = opType;
return this;
}
@Override
public DataType requireDataType() {
if (this.dataType == null) {
throw new MissingAttributeException(this, PMMLAttributes.DERIVEDFIELD_DATATYPE);
}
return this.dataType;
}
@Override
public DataType getDataType() {
return dataType;
}
@Override
public DerivedField setDataType(
@org.jpmml.model.annotations.Property("dataType")
DataType dataType) {
this.dataType = dataType;
return this;
}
@Override
public boolean hasExtensions() {
return ((this.extensions!= null)&&(!this.extensions.isEmpty()));
}
@Override
public List getExtensions() {
if (extensions == null) {
extensions = new ArrayList();
}
return this.extensions;
}
@Override
public DerivedField addExtensions(Extension... extensions) {
getExtensions().addAll(Arrays.asList(extensions));
return this;
}
@Override
public Expression requireExpression() {
if (this.expression == null) {
throw new MissingElementException(this, PMMLElements.DERIVEDFIELD_EXPRESSION);
}
return this.expression;
}
@Override
public Expression getExpression() {
return expression;
}
@Override
public DerivedField setExpression(
@org.jpmml.model.annotations.Property("expression")
Expression expression) {
this.expression = expression;
return this;
}
@Override
public boolean hasIntervals() {
return ((this.intervals!= null)&&(!this.intervals.isEmpty()));
}
@Override
public List getIntervals() {
if (intervals == null) {
intervals = new ArrayList();
}
return this.intervals;
}
@Override
public DerivedField addIntervals(Interval... intervals) {
getIntervals().addAll(Arrays.asList(intervals));
return this;
}
@Override
public boolean hasValues() {
return ((this.values!= null)&&(!this.values.isEmpty()));
}
@Override
public List getValues() {
if (values == null) {
values = new ArrayList();
}
return this.values;
}
@Override
public DerivedField addValues(Value... values) {
getValues().addAll(Arrays.asList(values));
return this;
}
@Override
public VisitorAction accept(Visitor visitor) {
VisitorAction status = visitor.visit(this);
if (status == VisitorAction.CONTINUE) {
visitor.pushParent(this);
if ((status == VisitorAction.CONTINUE)&&hasExtensions()) {
status = PMMLObject.traverse(visitor, getExtensions());
}
if (status == VisitorAction.CONTINUE) {
status = PMMLObject.traverse(visitor, getExpression());
}
if ((status == VisitorAction.CONTINUE)&&hasIntervals()) {
status = PMMLObject.traverse(visitor, getIntervals());
}
if ((status == VisitorAction.CONTINUE)&&hasValues()) {
status = PMMLObject.traverse(visitor, getValues());
}
visitor.popParent();
}
if (status == VisitorAction.TERMINATE) {
return VisitorAction.TERMINATE;
}
return VisitorAction.CONTINUE;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy