package io.github.ibuildthecloud.gdapi.condition;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.commons.lang3.builder.ToStringBuilder;
public class Condition {
List<Object> values;
ConditionType conditionType;
Condition left, right;
public Condition(Condition left, Condition right) {
this(ConditionType.OR);
this.left = left;
this.right = right;
}
public Condition(ConditionType conditionType, List<Object> values) {
this.values = values;
this.conditionType = conditionType;
}
public Condition(ConditionType conditionType, Object value) {
this.values = Arrays.asList(value);
this.conditionType = conditionType;
}
public Condition(ConditionType conditionType) {
super();
this.values = Collections.emptyList();
this.conditionType = conditionType;
}
@XmlTransient
public List<Object> getValues() {
return values;
}
public Object getValue() {
return values.size() == 0 ? null : values.get(0);
}
@XmlTransient
public ConditionType getConditionType() {
return conditionType;
}
public String getModifier() {
return conditionType.getExternalForm();
}
@XmlTransient
public Condition getLeft() {
return left;
}
@XmlTransient
public Condition getRight() {
return right;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("values", values)
.append("conditionType", conditionType)
.append("left", left)
.append("right", right)
.toString();
}
}