All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiongyingqi.common.logic.config.vo.Conditions Maven / Gradle / Ivy

package com.xiongyingqi.common.logic.config.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xiongyingqi.common.logic.config.constants.LogicalOperation;
import com.xiongyingqi.common.utils.JacksonHelper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author xiongyingqi
 * @since 20171018//
 */
@Data
@EqualsAndHashCode
@ToString
public class Conditions {
  /**
   * 条件1,集合内的所有条件都必须满足该集合成为true
   */
  private List conditions;
  /**
   * 条件2
   */
  private Conditions subConditions;
  /**
   * 条件1和条件2的逻辑运算
   */
  private LogicalOperation logicalOperation;
  /**
   * 当前条件是否可用,如果available=false,那么当前对象的结果是false
   */
  private boolean available = true;

  public void addCondition(Condition condition) {
    if (conditions == null) {
      synchronized (this) {
        List conditionsTmp = new ArrayList();
        if (this.conditions != null) {
          conditionsTmp.addAll(this.conditions);
        }
        this.conditions = conditionsTmp;
      }
    }
    conditions.add(condition);
  }

  @JsonIgnore
  public String toJsonString() {
    return JacksonHelper.getJsonString(this);
  }

  @JsonIgnore
  public static Conditions fromJsonString(String json) throws IOException {
    Conditions conditions = JacksonHelper.convertJsonByClass(json, Conditions.class);
    return conditions;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy