com.feingto.cloud.dto.monitor.Rule Maven / Gradle / Ivy
package com.feingto.cloud.dto.monitor;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 规则
*
* @author longfei
*/
@Data
@Accessors(chain = true)
public class Rule implements Serializable {
private static final long serialVersionUID = 4761866288675060103L;
/**
* 属性名
*/
private String property;
/**
* 属性名标签
*/
private String propertyLabel;
/**
* 要素(值/大小/长度/平均值/最大值/最小值等等)
*/
private GetValue element;
/**
* 要素标签
*/
private String elementLabel;
/**
* 操作符
*/
private Operator op;
/**
* 操作符标签
*/
private String opLabel;
/**
* 阈值
*/
private String threshold;
/**
* 备注
*/
private String remark;
/**
* 过滤规则组
*/
private List groups = new ArrayList<>();
/**
* 属性取值
*/
public enum GetValue {
VALUE,
LENGTH,
SIZE,
SUM,
AVG,
MAX,
MIN;
@JsonValue
public String getName() {
return name();
}
@JsonCreator
public static GetValue setName(String op) {
for (GetValue item : values()) {
if (item.name().equalsIgnoreCase(op)) {
return item;
}
}
return null;
}
}
/**
* 运算符
*/
public enum Operator {
/**
* 等于
*/
EQ,
/**
* 不等于
*/
NEQ,
/**
* 以此开始
*/
SLIKE,
/**
* 以此结束
*/
ELIKE,
/**
* 包含
*/
LIKE,
/**
* 大于
*/
GT,
/**
* 小于
*/
LT,
/**
* 大于或等于
*/
GTE,
/**
* 小于或等于
*/
LTE,
/**
* 包括
*/
IN,
/**
* 不包括
*/
NIN,
/**
* 空
*/
ISEMPTY,
/**
* 非空
*/
ISNOTEMPTY,
/**
* true
*/
ISTRUE,
/**
* false
*/
ISFALSE;
@JsonValue
public String getName() {
return name();
}
@JsonCreator
public static Operator setName(String op) {
for (Operator item : values()) {
if (item.name().equalsIgnoreCase(op)) {
return item;
}
}
return null;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy